インスタンスの最大数を設定する(サービス)

このページでは、Cloud Run サービスで使用できるインスタンスの最大数を設定する方法について説明します。Cloud Run でインスタンスの最大数を指定すると、受信リクエストに応じてサービスのスケーリングを制限できますが、トラフィックの急増などの環境的な要因により、少しの間この上限設定を超過する可能性があります。この設定を使用して、コストの制御や、データベースなどのバッキング サービスへの接続数を制限できます。

サービスに適用される最大インスタンスの上限については、インスタンスの最大数をご覧ください。

Cloud Run がコンテナ インスタンスを自動スケーリングする方法については、インスタンスの自動スケーリングをご覧ください。

必要なロール

Cloud Run サービスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールCloud Run IAM 権限をご覧ください。Cloud Run サービスが Google Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限アクセスの管理をご覧ください。

最大インスタンス数の設定と更新

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

デフォルトでは、Cloud Run サービスは最大 100 個のインスタンスにスケールアウトするように構成されています。

新しいサービスを作成するとき、または新しいリビジョンをデプロイするときに、Google Cloud コンソール、gcloud コマンドライン、または YAML ファイルを使用して、最大インスタンス数の設定を変更できます。

コンソール

  1. Google Cloud コンソールで、[Cloud Run] に移動します。

    Cloud Run に移動

  2. [コンテナをデプロイ] をクリックし、[サービス] を選択して、新しいサービスを構成します。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. 新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてサービス構成ページを開きます。

  4. [コンテナ] タブをクリックします。

    画像

    • [インスタンスの最大数] フィールドで、インスタンスの最大数を指定します。1 から上限までの任意の整数値を使用します。
  5. [作成] または [デプロイ] をクリックします。

gcloud

次のコマンドを使用して、特定のサービスのインスタンスの最大数を更新できます。

gcloud run services update SERVICE --max-instances MAX-VALUE

次のように置き換えます。

  • SERVICE は、サービスの名前に置き換えます。
  • MAX-VALUE は、コンテナ インスタンスの最大数に置き換えます。1 から上限までの任意の整数値を使用できます。最大インスタンス設定を消去して、デフォルトの 100 インスタンスに戻すには、default を指定します。

デプロイの間に、次のコマンドを使用してインスタンスの最大数を設定することもできます。

gcloud run deploy --image IMAGE_URL --max-instances MAX-VALUE

次のように置き換えます。

  • IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latest など)。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式は LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG です。
  • MAX-VALUE は、コンテナ インスタンスの最大数に置き換えます。

YAML

  1. 新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その YAML 構成をダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. autoscaling.knative.dev/maxScale: 属性を更新します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: 'MAX-INSTANCE'
          name: REVISION

    次のように置き換えます。

    • SERVICE は、Cloud Run サービスの名前に置き換えます。
    • MAX-INSTANCE は、目的の最大数に置き換えます。
    • REVISION は、新しいリビジョン名に置き換えるか、削除します(存在する場合)。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります
      • SERVICE- で始まる
      • 小文字、数字、- のみが使用されている
      • 末尾が - ではない
      • 63 文字以内である
  3. 次のコマンドを使用して、サービスを作成または更新します。

    gcloud run services replace service.yaml

Terraform

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

次の google_cloud_run_v2_service リソースは、template.scaling の下にある 10 のインスタンスの最大数を指定します。10 は、目的のインスタンスの最大数に置き換えます。

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-max-instances"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    scaling {
      # Max instances
      max_instance_count = 10
    }
  }
}

最大インスタンス数の上限

Cloud Run サービスのデフォルトの構成では、最大インスタンス数は 100 に設定されています。

上限は、Cloud Run サービスのリージョンと、CPU およびメモリの構成によって異なります。

割り当てページには、リージョン単位のベースライン割り当てが表示されます。

インスタンスの最大数は、以下の最小値によって決まります。

  • リージョン割り当てのベースライン / リクエストされた 1 CPU の倍数値
  • リージョン割り当てのベースライン / リクエストされた 2 GB メモリの倍数値

たとえば、ベースライン割り当てが 1,000 のインスタンスで、4 GB のメモリまたは 2 つの CPU を使用する場合、実質的な上限は 500 になります。

インスタンスの最大数を Cloud Run サービスのリージョンで許可されている最大値よりも大きくする場合は、割り当ての増加をリクエストする必要があります。

最大インスタンスの設定を表示する

Cloud Run サービスの現在の最大インスタンス設定を表示するには:

コンソール

  1. Google Cloud コンソールで、[Cloud Run] に移動します。

    Cloud Run に移動

  2. 目的のサービスをクリックして、[サービスの詳細] ページを開きます。

  3. [変更内容] タブをクリックします。

  4. 右側の詳細パネルの [コンテナ] タブに、最大インスタンス設定が表示されます。

gcloud

  1. 次のコマンドを使用します。

    gcloud run services describe SERVICE
  2. 返された構成で、最大インスタンス設定を見つけます。