Cloud Run くらうどらん
簡単に言うとこんな感じ!
「コンテナ(アプリの箱詰めパッケージ)を渡すだけで、サーバーの管理なしにGoogleのクラウドで動かせるサービス」だよ!アクセスがゼロのときは料金もゼロ、急増したら自動で増えるって感じで、とにかく「面倒なインフラ管理を全部おまかせ」できるんだ!
Cloud Runとは
Cloud Runは、Googleが提供するフルマネージドのサーバーレスコンテナ実行プラットフォームです。開発者はアプリケーションをコンテナイメージとしてパッケージ化して渡すだけで、サーバーのセットアップ・OSのパッチ当て・負荷分散・スケーリングといったインフラ管理を一切行わずにアプリを動かせます。
最大の特徴はリクエストベースの課金とゼロへのスケールダウンです。誰もアクセスしていないときはインスタンス数がゼロになり、費用も発生しません。逆に急激にアクセスが集中すると自動でインスタンスを増やして対応します。「夜間はほぼ使われないが、キャンペーン時に急増する」といった用途に非常にマッチします。
Cloud RunはオープンソースのKubernetes拡張仕様であるKnativeをベースに構築されており、特定クラウドへの依存(ベンダーロックイン)を抑えた設計になっています。Google Cloud(旧GCP)の他サービス——BigQuery・Cloud Pub/Sub・Cloud Storageなど——とも緊密に連携できるため、データパイプラインやAPIバックエンドの構築にも広く使われています。
Cloud Runの仕組みと主要概念
| 概念 | 説明 |
|---|---|
| コンテナイメージ | アプリ本体+依存ライブラリをひとまとめにした「箱」。Docker形式が標準 |
| サービス (Service) | 常時リクエストを受け付けるデプロイ単位。HTTPエンドポイントが発行される |
| ジョブ (Job) | バッチ処理など一定時間で完了するタスク向けの実行単位 |
| リビジョン (Revision) | デプロイのたびに作成されるスナップショット。トラフィック分割でカナリアリリース可能 |
| オートスケール | リクエスト数に応じてインスタンスを0〜N台に自動調整 |
| 最小インスタンス数 | ゼロ起動の遅延(コールドスタート)を避けるため常時1台以上を維持する設定 |
覚え方:「箱を渡してあとはGoogle」
Cloud Runを一言で覚えるなら「コンテナ箱を渡してあとはGoogleにおまかせ」。
コンテナ(箱)さえ作れれば、サーバー・ネットワーク・スケールは全自動——これがCloud Runの本質です。
リクエスト処理の流れ
ユーザー
│ HTTPリクエスト
▼
Cloud Run フロントエンド(Googleが管理)
│ ルーティング・ロードバランシング
▼
コンテナインスタンス(自動増減)
│ アプリの処理
▼
レスポンス返却
コールドスタート(初回起動の遅延)が気になる場合は「最小インスタンス数=1」に設定することで常時1台をウォームアップ状態に保てます。
歴史と背景
- 2014年: GoogleがKubernetesをオープンソース公開。コンテナオーケストレーションの概念が普及し始める
- 2018年: GoogleがKnativeをオープンソース公開。Kubernetes上でサーバーレスなコンテナ実行を実現する仕様
- 2019年3月: Cloud RunがGoogle Cloud Next ‘19でパブリックベータとして発表・公開
- 2019年11月: Cloud RunがGA(一般提供)へ。同時にCloud Run for Anthos(自社Kubernetesクラスタ上で動かす版)も提供開始
- 2020年〜: Cloud Storageイベント・Pub/Subトリガーなど、イベントドリブン連携が強化される
- 2022年: Cloud Run Jobs(バッチジョブ向け機能)がGAへ。バッチ処理ユースケースもカバー
- 2023年〜: GPU対応・サイドカーコンテナ・Direct VPC egressなど大規模・エンタープライズ向け機能が続々追加
AWS Lambdaに代表される「関数単位のサーバーレス(FaaS)」とは異なり、コンテナ単位で動かせる点がCloud Runの差別化ポイントとして注目を集め、急速に採用が広がりました。
類似サービスとの比較
Cloud Runとよく比較されるサービスを整理します。
| サービス | 提供元 | 実行単位 | 特徴 |
|---|---|---|---|
| Cloud Run | Google Cloud | コンテナ | 言語・フレームワーク自由。Knativeベース |
| AWS Lambda | AWS | 関数(コード) | FaaS代表格。実行時間15分制限あり |
| AWS App Runner | AWS | コンテナ | Cloud Runに近い立ち位置 |
| Azure Container Apps | Azure | コンテナ | KedaベースのAzure版サーバーレスコンテナ |
| Google Kubernetes Engine (GKE) | Google Cloud | Pod(コンテナ群) | より細かい制御が必要な場合に選択 |
| Cloud Functions | Google Cloud | 関数(コード) | 小さなイベント処理向け。FaaS |
Cloud Run vs Cloud Functions:どちらを選ぶか
- Cloud Run:既存のWebアプリ・APIサーバーをそのままコンテナ化して動かしたい場合。実行時間が長い処理・複雑な依存関係がある場合
- Cloud Functions:Webhookの受信・ファイルアップロードのトリガーなど、小さくシンプルなイベント処理を素早く書きたい場合
関連する規格・RFC
| 規格・仕様 | 内容 |
|---|---|
| Knative Serving | Cloud RunのベースとなるKubernetes拡張仕様。サーバーレスコンテナの標準的な実行モデルを定義 |
| OCI (Open Container Initiative) | Dockerなどコンテナイメージのフォーマット・実行仕様を標準化する業界規格 |
| gRPC / HTTP/2 | Cloud Runがサポートするプロトコル。REST APIだけでなくgRPCサービスも動かせる |
| Cloud Events | イベントドリブン連携で使われるイベントデータの標準フォーマット仕様 |
関連用語
- コンテナ — アプリとその実行環境をひとまとめにパッケージ化する技術
- Docker — コンテナを作成・管理するための代表的なツール・プラットフォーム
- サーバーレス — サーバーの管理をクラウドに任せ、コードや処理の実行に集中できるアーキテクチャ
- Kubernetes — 多数のコンテナを自動管理・オーケストレーションするOSSプラットフォーム
- Google Kubernetes Engine (GKE) — GoogleのマネージドKubernetesサービス。より細かい制御が必要な場合の選択肢
- オートスケール — 負荷に応じてサーバー台数を自動的に増減する仕組み