インスタンスあたりの最大同時リクエスト数を設定する

インスタンスあたりの最大同時リクエスト数の設定については、コンセプト ドキュメントをご覧ください。

必要なロール

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

ソースコードからサービスまたは関数をデプロイする場合は、プロジェクトと Cloud Build サービス アカウントに追加のロールが付与されている必要があります。

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

インスタンスあたりの最大同時リクエスト数を構成する

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

Cloud Run サービスの場合、新しいサービスを作成するとき、または新しいリビジョンをデプロイするときに、 Google Cloud コンソール、gcloud コマンドライン、または .yaml ファイルを使用して、インスタンスあたりの最大同時リクエスト数を設定できます。

コンソール

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

    Cloud Run に移動

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

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

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

    画像

    • [コンテナあたりの最大リクエスト数] テキスト ボックスに、インスタンスあたりの最大同時リクエスト数を設定します。
  5. [作成] または [デプロイ] をクリックします。

gcloud

インスタンスあたりの最大同時リクエスト数を設定するには、次のコマンドを使用します。

gcloud run services update SERVICE --concurrency CONCURRENCY

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

  • SERVICE: サービスの名前。
  • CONCURRENCY: インスタンスあたりの最大同時リクエスト数。たとえば、次の例では同時実行リクエストの最大数を 1 に設定します。

    gcloud run services update SERVICE --concurrency 1

特定のサービスのインスタンスあたりの最大同時リクエスト数を変更すると、この設定が新しいリビジョンで取り込まれます。

デフォルトのインスタンスあたりの最大同時リクエスト数(80)に戻すには、次のコマンドを使用します。

gcloud run services update SERVICE --concurrency default

SERVICE は、構成しているサービスの名前で置き換えます。

YAML

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

    gcloud run services describe SERVICE --format export > service.yaml
  2. containerConcurrency 属性を更新します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containerConcurrency: CONCURRENCY

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

    • SERVICE: Cloud Run サービスの名前
    • 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 の形式です。
    • CONCURRENCY: インスタンスあたりの最大同時リクエスト数。
    • REVISION を新しいリビジョン名に置き換えるか、削除(存在する場合)します。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります
      • SERVICE- で始まる
      • 小文字、数字、- のみが使用されている
      • 末尾が - ではない
      • 63 文字以内である
  3. 次のコマンドを使用して、サービスを作成または更新します。

    gcloud run services replace service.yaml

Terraform

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

Terraform 構成の google_cloud_run_v2_service リソースに次の内容を追加します。

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

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    # Maximum concurrent requests
    max_instance_request_concurrency = 80
  }
}

80 は、必要な同時リクエストの最大数に置き換えます。

同時実行の設定を表示する

Cloud Run サービスの現在の同時実行の設定を表示するには:

コンソール

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

    Cloud Run に移動

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

  3. [リビジョン] タブをクリックします。

  4. 右側の詳細パネルの [コンテナ] タブに、同時実行設定が表示されます。

gcloud

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

    gcloud run services describe SERVICE
  2. 返された構成で、同時実行の設定を見つけます。