LoginSignup
1
0

More than 3 years have passed since last update.

これから始めるCloudRun(フルマネージド)

Last updated at Posted at 2020-11-14
1 / 30

目次

  • はじめに
  • GCPのコンピューティングの歴史
  • Runを使うモチベーション
  • Runの弱点と対策

はじめに

CloudRunには、フルマネージド版とAnthos版があります。
ここでの説明は、フルマネージド版のみです。
また、以降の説明では、フルマネージド版のCloudRunを「Run」と表記します。


GCPのコンピューティングの歴史

GCPのコンピューティングサービスの一つであるGAE。

そもそも 昔はGAEしかなかった。:innocent:


GCP年表

スクリーンショット 2020-09-08 001207.png
画像は以下の記事から
(古い記事なので読まなくて良いです)
GCP誕生から10年、その進化の歴史を振り返る


GAEしか使えないサービス、APIがたくさんあった。


一例を挙げると

  • Cron
  • TaskQueue
  • Images API

などなど


しかし、今では、、

  • Cron => Cloud Scheduler
  • TaskQueue => Cloud Tasks
  • Images API => 移行先なし :innocent:

GAE以外のコンピューティングサービスから利用可能


Runを使うモチベーション

  • サーバーレス
  • フルマネージド
  • 従量課金制
  • コンテナ

サーバーレスのメリット

  • サーバーの管理が不要
  • 柔軟なスケーラビリティ
  • 約束された高可用性
  • 使った分だけの課金

サーバーレスのメリット

  • サーバーの管理が不要! => フルマネージド
  • 柔軟なスケーラビリティ! => サーバーレス
  • 約束された高可用性! => フルマネージド
  • 使った分だけの課金! => 従量課金制

サーバーレス

Q. GCPのサーバーレスのサービスってどれ?


サーバーレス

Q. GCPのサーバーレスのサービスってどれ?

A. GAE, Run, Cloud Functions


じゃあ GAE で良くね?なんで Run 使うの?


コンテナ使えるのは Run だけ


コンテナ

詳細は省くので、ちゃんと知りたい人は各自で調べて!!
仮想化とコンテナの違い
コンテナは起動しているホストPCのOSの「カーネル」を使う


Docker コンテナは、アプリケーションの実行環境の構成を「Dockerイメージ」として保存できる。
開発者は、DockerレジストリーからDockerイメージを取得し、実行環境を再現できるし、本番環境でも同じように再現できる。


コンテナが使えるメリット

自分の経験で言えば、GAE, Cloud Functions は 数年経つと、アプリで使ってる言語のバージョンアップをしないと、デプロイできなくなり、そして動かせなくなる。

そもそも、バージョンアップするしないは、アプリ側で決めることだと思う。サービス側で決められたくはない。

Run ならアプリ側で決められる。
これは、アプリを長期運用する上でかかる、保守の手間を考えると重要なことだと思う。


CloudRunの弱点と対策


弱点はないです。


弱点はないです。(嘘です:bow_tone1:)


コンテナの制限

  • Linux x86_64 ABI
  • PORTの環境変数をListenする
  • リクエストを受信してから4分以内に立ち上げる
  • リクエストタイムアウトは Max 15分(短くない?:no_good_tone1:)

コンテナの制限

  • Linux x86_64 ABI
  • PORTの環境変数をListenする
  • リクエストを受信してから4分以内に立ち上げる
  • リクエストタイムアウトは Max 15分(短くない?:no_good_tone1:)

ただし、βで既にリクエストタイムアウトの Max は 1h :heart_eyes: です。

つまり、弱点はない。:sunglasses:


コールドスタート問題

立ち上げに時間がかかる。今の自分達のプロダクトだと 3分くらい

解決策: Cloud Scheduler を使い、定期的にリクエストを送る。
ちなみに、Cloud On Air を見たら Googleの人曰く、体感5分くらいで 0になるらしいです。


コールドスタート問題

立ち上げに時間がかかる。今の自分達のプロダクトだと 3分くらい

解決策: Cloud Scheduler を使い、定期的にリクエストを送る。
ちなみに、Cloud On Air を見たら Googleの人曰く、体感5分くらいで 0になるらしいです。

ただし、βで既に Minimumインスタンスを設定できる:heart_eyes:
なので、今から開発するなら、気にしなくて良い。

つまり、弱点はない。:sunglasses:


GRPCのストリーミングに未対応

unary といって単発のリクエストとレスポンスを送る形式のみは、対応しているが、ストリーミングが使えません。

解決策: なし。GKE使え。:rage:


GRPCのストリーミングに未対応

unary といって単発のリクエストとレスポンスを送る形式のみは、対応しているが、ストリーミングが使えません。

解決策: なし。GKE使え。:rage:

ただし、βで既に対応済み。

つまり、弱点はない。:sunglasses:


ロードバランサー繋がりません。CDN使えません。IAP使いたいです!!

解決策: なし。GAE使え。:rage:


ロードバランサー繋がりません。CDN使えません。IAP使いたいです!!

解決策: なし。GAE使え。:rage:

ただし、βで使えるようになりました。

つまり、弱点はない。:sunglasses:


まとめ

  • コンテナをサーバーレスで使える
  • GAEとかは、プログラミング言語縛り辛いぞ!
  • まだ GAE で消耗してるの?:smirk:
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0