Skip to content
Latchkey

Google Cloud Run とは?GCP のサーバーレスコンテナ

Google Cloud Run はコンテナイメージをスケーラブルなサービスまたは job として実行し、スケーリング(ゼロへのスケールを含む)とインフラを処理するため、あなたはイメージを供給するだけで済みます。

Cloud Run は Lambda スタイルの関数とフルの Kubernetes の間のちょうどよい位置にあります。コンテナを渡すと、autoscaling する HTTP サービスまたは batch job として実行します。サーバーや cluster を管理せず、アイドル時にはゼロへスケールするため、リクエストの合間には何も支払いません。

Cloud Run の仕組み

ポートで待ち受けるコンテナイメージをデプロイします。Cloud Run は HTTP(または gRPC)リクエストをインスタンスへルーティングし、トラフィックが来ると立ち上げ、アイドル時にはゼロへ下げます。各リビジョンは immutable で、リビジョン間でトラフィックを分割できます。

サービス vs job

  • サービスは受信リクエストを処理し、トラフィックに応じて autoscaling します。
  • job は batch や定期的な作業のためにコンテナを完了まで実行します。
  • どちらも同じコンテナイメージ形式で動作します。

スケーリングと cold start

Cloud Run は並行数とリクエスト負荷に基づいて水平にスケールします。ゼロへのスケールは費用を節約しますが、次のリクエストで cold start が発生します。レイテンシに敏感なサービスでは、それを避けるためウォームインスタンスの最小数を設定できます。

チームに好まれる理由

任意のコンテナを実行するため、狙うべき独自ランタイムがありません。バースト的なトラフィックでは常時稼働のサーバーより安く、GKE より単純で、イメージ全体を制御できるため関数のみのプラットフォームより柔軟です。

CI/CD での役割

パイプラインはイメージを build し、Artifact Registry へプッシュして、gcloud run deploy を実行し新しいリビジョンを出荷します。Workload Identity Federation を使えば、GitHub Actions は鍵ファイルなしで認証します。canary リリースのため、トラフィックをリビジョン間で段階的にシフトできます。

重要なポイント

  • Cloud Run は任意のコンテナを autoscaling するサービスまたは batch job として実行します。
  • コスト節約のためゼロへスケールし、cold start を避けるためのウォームインスタンスも任意で設定できます。
  • パイプラインはイメージを Artifact Registry へプッシュし、新しいリビジョンをデプロイします。

関連ガイド