このページでは、ワーカープールを手動でスケーリングする方法について説明します。
概要
手動スケーリングでは、再デプロイを必要とすることなく、特定のインスタンスの数を設定できます。これにより、外部システムを使用して独自のスケーリング ロジックを記述できます。例については、Kafka オートスケーラーをご覧ください。
手動スケーリングを使用する場合の課金に関する考慮事項
手動スケーリングを使用する場合、リクエストしたすべてのインスタンスは、アイドル状態であってもアクティブなインスタンスとして課金されます。課金の詳細については、料金ページをご覧ください。
必要なロール
Cloud Run ワーカープールのデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Run サービスに対する Cloud Run デベロッパー(
roles/run.developer
) -
サービス ID に対するサービス アカウント ユーザー(
roles/iam.serviceAccountUser
) -
デプロイされたコンテナ イメージの Artifact Registry リポジトリに対する Artifact Registry 読み取り(
roles/artifactregistry.reader
)(該当する場合)
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run ワーカープールがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
スケーリングを構成する
スケーリング モードまたは手動インスタンス数を変更しても、新しいリビジョンは作成されません。
スケーリング モードを構成するには、 Google Cloud コンソールまたは Google Cloud CLI を使用します。
コンソール
Google Cloud コンソールで Cloud Run に移動します。
新しいワーカープールを構成する場合は、メニューから [ワーカープール] を選択し、[コンテナをデプロイ] をクリックします。既存のワーカープールを構成する場合は、ワーカープールをクリックして詳細ウィンドウを表示し、詳細パネルの右上にある [スケーリング] の横にある鉛筆アイコンをクリックします。
[スケーリング] フォーム(新しいワーカープールの場合)、または [スケーリングの編集] フォーム(既存のワーカープールの場合)を見つけます。
[インスタンス数] フィールドに、サービスのコンテナ インスタンスの数を指定します。
仕様を完成させます。
新しいワーカープールの場合は [作成]、既存のワーカープールの場合は [保存] をクリックします。
gcloud
新しいワーカープールのスケーリングを指定するには、deploy コマンドを使用します。
gcloud beta run worker-pools deploy WORKER_POOL \ --scaling=INSTANCE_COUNT \ --image IMAGE_URL
次のように置き換えます。
- WORKER_POOL: ワーカープールの名前。
- INSTANCE_COUNT: ワーカープールのインスタンス数。これにより、ワーカープールは手動スケーリングに設定されます。ワーカープールを無効にするには、値
0
を指定します。 - IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
など)。
次の update コマンドを使用して、既存のワーカープールのスケーリングを指定します。
gcloud beta run worker-pools update WORKER_POOL \ --scaling=INSTANCE_COUNT
Terraform
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
launch_stage = "BETA"
template {
containers {
image = "IMAGE_URL"
}
}
scaling {
scaling_mode = "MANUAL"
manual_instance_count = "INSTANCE_COUNT"
}
}
次のように置き換えます。
- WORKER_POOL: ワーカープールの名前。
- REGION: Google Cloud リージョン(例:
europe-west1
)。 - IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
など)。 - INSTANCE_COUNT: ワーカープールのインスタンス数。これにより、ワーカープールは手動スケーリングに設定されます。ワーカープールを無効にするには、値
0
を指定します。
ワーカープールのスケーリング構成を表示する
Google Cloud コンソールで Cloud Run に移動します。
[ワーカープール] をクリックして、デプロイされたワーカープールのリストを確認します。
調べるワーカープールをクリックして、詳細ウィンドウを表示します。
現在のスケーリング設定は、ワーカープールのリビジョン リストの上に表示されます([スケーリング: 手動(インスタンス:)])。
ワーカープールを無効にする
ワーカープールを無効にするには、次のコマンドを使用してスケーリングをゼロに設定します。
gcloud beta run worker-pools update WORKER_POOL --scaling=0
WORKER_POOL は、ワーカープールの名前に置き換えます。