CPU の上限

このページでは、Cloud Run インスタンスごとに使用する CPU の数を指定する方法について説明します。デフォルトでは、Cloud Run コンテナ インスタンスは 1 つの CPU に制限されています。この値は、このページの説明に従って増減できます。

このページでは、起動時の CPU ブーストを有効または無効にする方法についても説明します。これは、起動レイテンシを短縮するために、インスタンスの起動時に一時的に CPU 割り当てを増やす機能です。

CPU 上限の設定と更新

Cloud Run のサービスとジョブの CPU 上限を設定できます。

デフォルトでは、各インスタンスの CPU は 1 つに制限されています。任意の整数値を使用して、CPU を最大 8 つまで増やすことができます。

CPU とメモリ

CPU の最小メモリ要件は次のとおりです。

CPU 最小メモリ
4 2 GiB
6 3 GiB
8 4 GiB

または、Cloud Run サービスでのみ、使用する CPU が 1 未満の場合、0.08 から 1 までの任意の値を 0.01 単位で選択できます。1 より大きい値は整数値にする必要があります。使用する CPU が 1 未満の場合は、次の要件が適用されます。

設定 要件
メモリ メモリ上限に 512 MiB を超える値を設定するには、0.5 以上の CPU が必要です。
メモリ上限に 1 GiB を超える値を設定するには、1 以上の CPU が必要です。
同時実行 最大同時実行数1 に設定する必要があります。
割り当てられている CPU CPU 割り当ては、リクエストの処理中にのみ CPU を割り当てるように設定する必要があります。
実行環境 第 1 世代の実行環境を使用する必要があります。

Cloud Run サービスの場合

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

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

コンソール

  1. Cloud Run に移動します

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

  3. 新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[Container, Networking, Security] をクリックしてサービス構成ページを開きます。

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

    画像

    • プルダウン リストから目的の CPU の上限を選択します。使用する CPU が 1 未満の場合は、[カスタム] を使用します。CPU 数には 12468 のいずれかの値を選択します。CPU が 1 未満の場合は、0.08 から 1.00 までの範囲の値を 0.01 単位で指定します(必要な設定については、CPU の上限の設定と更新の表を参照)。
  5. [作成] または [デプロイ] をクリックします。

コマンドライン

次のコマンドを使用して、特定のサービスの CPU の上限を更新します。

gcloud run services update SERVICE --cpu CPU

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

  • SERVICE は、実際のサービスの名前に置き換えます。
  • CPU は、目的の CPU の上限値に置き換えます。12468 のいずれかの値を指定します。CPU が 1 未満の場合は 0.08 から 1.00 までの範囲の値を 0.01 単位で指定します(必要な設定については、CPU の上限の設定と更新の表を参照)。

次のコマンドを使用して、デプロイ中に CPU を設定することもできます。

gcloud run deploy --image IMAGE_URL --cpu CPU

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

  • IMAGE_URL は、コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latest など)に置き換えます。Artifact Registry を使用する場合、URL は REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG という形式になります。.
  • CPU12468 のいずれかの値に置き換えます。CPU が 1 未満の場合は、0.08 から 1.00 までの範囲の値を 0.01 単位で指定します(必要な設定については、CPU の上限の設定と更新の表を参照)。

YAML

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

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

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

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
            resources:
              limits:
                cpu: CPU

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

    • SERVICE は、Cloud Run サービスの名前に置き換えます。
    • IMAGE_URL は、コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latest など)に置き換えます。Artifact Registry を使用する場合、URL は REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG という形式になります。
    • CPU は、目的の CPU の上限値に置き換えます。12468 のいずれかの値を指定します。CPU が 1 未満の場合は 0.08 から 1.00 までの範囲の値を 0.01 単位で指定します(必要な設定については、CPU の上限の設定と更新の表を参照)。
    • REVISION を新しいリビジョン名に置き換えるか、削除(存在する場合)します。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります
      • SERVICE- で始まる
      • 小文字、数字、- のみが使用されている
      • 末尾が - ではない
      • 63 文字以内である
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

    gcloud run services replace service.yaml

Terraform

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

次の google_cloud_run_service リソースでは、CPU の上限を template.spec.containers.resources.limits の下に指定します。1000m は、目的の CPU 数に置き換えます。

resource "google_cloud_run_service" "default" {
  name     = "cloudrun-service-cpu"
  location = "us-central1"

  template {
    spec {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/hello"
        resources {
          limits = {
            # CPU usage limit
            # https://cloud.google.com/run/docs/configuring/cpu
            cpu = "1000m" # 1 vCPU
          }
        }
      }
    }
  }
  lifecycle {
    ignore_changes = [
      template[0].spec[0].containers[0].resources[0].limits,
    ]
  }
}

Cloud Run ジョブの場合

Cloud Run ジョブには 1 個以上の CPU を設定する必要があります。

Cloud Run ジョブの CPU を指定するには:

コンソール

  1. Cloud Run に移動します

  2. 新しいジョブを構成する場合は、[ジョブ] タブをクリックし、必要に応じて初期ジョブ設定ページを入力します。既存のジョブを構成する場合は、ジョブをクリックして [編集] をクリックします。

  3. [コンテナ、変数とシークレット、接続、セキュリティ] をクリックして、ジョブのプロパティ ページを開きます。

  4. [全般] タブをクリックします。

    画像

    • プルダウン リストから目的の CPU の上限を選択します。1246、または 8 個の CPU を選択します。ジョブには 1 個以上の CPU が必要です(必要な設定については、CPU の上限の設定と更新の表を参照)。
  5. [作成] または [更新] をクリックします。

コマンドライン

  1. 次のコマンドを使用して、特定のジョブの CPU の上限を更新します。

    gcloud run jobs update JOB_NAME --cpu CPU

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

    • JOB_NAME は、ジョブの名前に置き換えます。
    • CPU は、目的の CPU の上限値に置き換えます。CPU の値は 12468 のいずれかに指定します。ジョブには 1 個以上の CPU が必要です(必要な設定については、CPU の上限の設定と更新の表を参照)。

    また、次のコマンドを使用してジョブの作成時に CPU を設定することもできます。

    gcloud run jobs create JOB_NAME --image IMAGE_URL --cpu CPU

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

    • JOB_NAME: ジョブの名前。
    • IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/job:latest など)。
    • CPU は、目的の CPU の上限値に置き換えます。CPU の値は 12468 のいずれかに指定します。ジョブには 1 個以上の CPU が必要です(必要な設定については、CPU の上限の設定と更新の表を参照)。

YAML

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

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

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. cpu 属性を更新します。

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE
              resources:
                limits:
                  cpu: CPU

    CPU は、目的の CPU の上限に置き換えます。CPU の値は 12468 のいずれかに指定します。ジョブには 1 個以上の CPU が必要です(必要な設定については、CPU の上限の設定と更新の表を参照)。

    環境変数やメモリ上限など他の構成を指定することもできます。

  3. 既存のジョブ構成を更新します。

    gcloud run jobs replace job.yaml

起動時 CPU ブーストを設定する(サービス)

リビジョンの起動時 CPU のブースト機能は、インスタンスの起動時間中とインスタンス開始後の 10 秒間に追加の CPU を提供します。

実際の CPU ブーストは、CPU 上限の設定によって異なります。

CPU 上限 ブーストされた CPU
0-1 2
2 4
4 8
6 8
8 8

割り当てられたブースト CPU はコンテナの起動中に課金されます。たとえば、コンテナの起動時間が 15 秒で、2 個の CPU を割り当てた場合、起動時の CPU ブーストにより、コンテナの起動終了後 10 秒を含むインスタンスの起動時間(短い場合もある)は 4 CPU、残りのコンテナ ライフサイクルの間は 2 CPU が課金されることになります。

Google Cloud コンソールまたは Google Cloud CLI を使用して、起動時 CPU ブーストを有効または無効にできます。

コンソール

  1. Cloud Run に移動します

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

  3. 新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[Container, Networking, Security] をクリックしてサービス構成ページを開きます。

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

    イメージ

    • 起動時の CPU ブーストを有効にするには、[起動時の CPU ブースト] チェックボックスをオンにします。この機能を無効にするには、このチェックボックスをオフにします。
  5. [作成] または [デプロイ] をクリックします。

コマンドライン

  1. 次のコマンドを使用して、特定のサービスで起動時の CPU ブーストを有効にできます。

    gcloud run services update SERVICE --cpu-boost

    SERVICE は、実際のサービス名に置き換えます。

    デプロイ中に起動時の CPU のブーストを有効にするには、次のコマンドを使用します。

    gcloud run deploy --image IMAGE_URL --cpu-boost

    IMAGE_URL は、コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latest など)に置き換えます。Artifact Registry を使用する場合、URL は REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG という形式になります。.

  2. 次のコマンドを使用して、特定のサービスで起動時の CPU ブーストを無効にできます。

    gcloud run services update SERVICE --no-cpu-boost

    SERVICE は、実際のサービス名に置き換えます。

    デプロイ中に起動時の CPU のブーストを無効にするには、次のコマンドを使用します。

    gcloud run deploy --image IMAGE_URL --no-cpu-boost

YAML

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

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

    gcloud run services describe SERVICE --format export > service.yaml
  2. 起動 CPU ブーストを有効にするには 'true' を指定し、無効にするには 'false' を指定して、run.googleapis.com/startup-cpu-boost 属性を更新します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/startup-cpu-boost: 'true'

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

    • SERVICE は、Cloud Run サービスの名前に置き換えます。
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

    gcloud run services replace service.yaml

CPU 設定を表示する

Cloud Run サービスの現在の CPU の設定を表示するには:

コンソール

  1. Cloud Run に移動します

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

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

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

コマンドライン

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

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

Cloud Run ジョブの現在の CPU の設定を表示するには:

コンソール

  1. Cloud Run ジョブに移動

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

  3. [構成] タブをクリックします。

  4. 構成の詳細で CPU の設定を見つけます。

コマンドライン

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

    gcloud run jobs describe JOB_NAME
  2. 返された構成で、CPU 設定を見つけます。