インスタンスの最大数(サービス)

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

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

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

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

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

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

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

コンソール

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

    Cloud Run に移動

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

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

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

    イメージ

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

コマンドライン

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

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 の形式は REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG です。
  • MAX-VALUE は、コンテナ インスタンスの最大数に置き換えます。

YAML

既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順でフィールドを変更し、gcloud run services replace コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    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"

  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. 右側の詳細パネルの [コンテナ] タブに、最大インスタンス設定が表示されます。

コマンドライン

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

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