Cloud Runの大きな特徴の一つは、柔軟なデプロイとスケーリング機能です。
しかし、設定画面を見ていると、「サービスのスケーリング」と「リビジョン スケーリング」という似たような言葉が出てきて、混乱する方もいるかもしれません。
今回は、この2つのスケーリング設定が何を示しているのか、そしてどのように使い分けるべきかを解説していきます。
Cloud Runにおける「サービス」と「リビジョン」の基本
まず、Cloud Runの基本的な概念である「サービス」と「リビジョン」について再確認しましょう。
サービス (Service)
外部からアクセス可能なURLを持つ、Cloud Runアプリケーションの最上位の論理的なまとまりです。
常に最新のリビジョンにトラフィックをルーティングしたり、複数のリビジョン間でトラフィックを分割したりする役割を担います。
ウェブサイトのURL(例: my-api.run.app)に相当します。

リビジョン (Revision)
特定のコンテナイメージ、環境変数、CPU/メモリ割り当て、同時実行数など、サービスのある時点での具体的な構成を指します。
サービス設定を変更してデプロイするたびに、新しいリビジョンが作成されます。
各リビジョンには、固有の(外部から直接アクセスできない)タグURLが存在します。
「サービスのスケーリング」と「リビジョン スケーリング」の違い
Cloud RunのコンソールUIを見ると、スケーリングに関する設定が、主に「サービスレベル」と「リビジョンレベル」の2つの場所で提供されていることが分かります。
それぞれの設定が適用される範囲とタイミングが異なります。
1. サービスのスケーリング設定 (Service-level scaling)

これは、Cloud Runサービス全体の挙動に影響を与えるスケーリング設定です。現在、UI上では最小インスタンス数(Min instances)のみがサービスレベルで設定可能になっています。
対象となる設定:
最小インスタンス数 (Min instances): Cloud Runサービス全体として、常に稼働させておくコンテナインスタンスの最小数。
特性:
目的:
2. リビジョン スケーリング設定 (Revision-level scaling)
これは、**特定の「リビジョン」**の挙動に影響を与えるスケーリング設定です。Cloud Runで新しいリビジョンをデプロイする際、この設定を行います。

対象となる設定:
特性:
目的:
サービスレベルとリビジョンレベルの設定の相互作用
Google Cloudの公式ドキュメントによると、以下の重要な相互作用があります。
サービスレベルの最小インスタンス数:
どちらの設定を使うべきか?
まとめ
Cloud Runの「サービスのスケーリング」と「リビジョン スケーリング」は、アプリケーションの運用フェーズで便利なツールとなります。
- サービスのスケーリング: サービス全体に適用される、主に最小インスタンス数の設定(サービス全体のコールドスタート対策)。
- リビジョン スケーリング: 各デプロイバージョン(リビジョン)に固有のスケーリング設定(最大インスタンス数、同時実行数、CPU割り当てなど)であり、トラフィック分割時に特に威力を発揮します。


コメント