このページでは、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 の上限を設定できます。
コンソール
デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[Container, Networking, Security] をクリックしてサービス構成ページを開きます。
[コンテナ] タブをクリックします。
- プルダウン リストから目的の CPU の上限を選択します。使用する CPU が 1 未満の場合は、[カスタム] を使用します。CPU 数には
1
、2
、4
、6
、8
のいずれかの値を選択します。CPU が 1 未満の場合は、0.08 から 1.00 までの範囲の値を 0.01 単位で指定します(必要な設定については、CPU の上限の設定と更新の表を参照)。
- プルダウン リストから目的の CPU の上限を選択します。使用する CPU が 1 未満の場合は、[カスタム] を使用します。CPU 数には
[作成] または [デプロイ] をクリックします。
コマンドライン
次のコマンドを使用して、特定のサービスの CPU の上限を更新します。
gcloud run services update SERVICE --cpu CPU
次のように置き換えます。
- SERVICE は、実際のサービスの名前に置き換えます。
- CPU は、目的の CPU の上限値に置き換えます。
1
、2
、4
、6
、8
のいずれかの値を指定します。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
という形式になります。. - CPU は
1
、2
、4
、6
、8
のいずれかの値に置き換えます。CPU が 1 未満の場合は、0.08 から 1.00 までの範囲の値を 0.01 単位で指定します(必要な設定については、CPU の上限の設定と更新の表を参照)。
YAML
既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export
コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順に沿ってフィールドを変更し、gcloud run services replace
コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。
次のコマンドで、構成を表示してダウンロードします。
gcloud run services describe SERVICE --format export > service.yaml
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 の上限値に置き換えます。
1
、2
、4
、6
、8
のいずれかの値を指定します。CPU が 1 未満の場合は 0.08 から 1.00 までの範囲の値を 0.01 単位で指定します(必要な設定については、CPU の上限の設定と更新の表を参照)。 - REVISION を新しいリビジョン名に置き換えるか、削除(存在する場合)します。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります。
SERVICE-
で始まる- 小文字、数字、
-
のみが使用されている - 末尾が
-
ではない - 63 文字以内である
次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud run services replace service.yaml
Terraform
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
次の google_cloud_run_service
リソースでは、CPU の上限を template.spec.containers.resources.limits
の下に指定します。1000m
は、目的の CPU 数に置き換えます。
Cloud Run ジョブの場合
Cloud Run ジョブには 1 個以上の CPU を設定する必要があります。
Cloud Run ジョブの CPU を指定するには:
コンソール
新しいジョブを構成する場合は、[ジョブ] タブをクリックし、必要に応じて初期ジョブ設定ページを入力します。既存のジョブを構成する場合は、ジョブをクリックして [編集] をクリックします。
[コンテナ、変数とシークレット、接続、セキュリティ] をクリックして、ジョブのプロパティ ページを開きます。
[全般] タブをクリックします。
- プルダウン リストから目的の CPU の上限を選択します。
1
、2
、4
、6
、または8
個の CPU を選択します。ジョブには 1 個以上の CPU が必要です(必要な設定については、CPU の上限の設定と更新の表を参照)。
- プルダウン リストから目的の CPU の上限を選択します。
[作成] または [更新] をクリックします。
コマンドライン
次のコマンドを使用して、特定のジョブの CPU の上限を更新します。
gcloud run jobs update JOB_NAME --cpu CPU
次のように置き換えます。
- JOB_NAME は、ジョブの名前に置き換えます。
- CPU は、目的の CPU の上限値に置き換えます。CPU の値は
1
、2
、4
、6
、8
のいずれかに指定します。ジョブには 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 の値は
1
、2
、4
、6
、8
のいずれかに指定します。ジョブには 1 個以上の CPU が必要です(必要な設定については、CPU の上限の設定と更新の表を参照)。
YAML
gcloud run jobs describe --format export
コマンドを使用して既存のジョブ構成をダウンロードして表示します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記のフィールドを変更して、gcloud run jobs replace
コマンドで変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。
次のコマンドで、構成を表示してダウンロードします。
gcloud run jobs describe JOB_NAME --format export > job.yaml
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 の値は
1
、2
、4
、6
、8
のいずれかに指定します。ジョブには 1 個以上の CPU が必要です(必要な設定については、CPU の上限の設定と更新の表を参照)。環境変数やメモリ上限など他の構成を指定することもできます。
既存のジョブ構成を更新します。
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 ブーストを有効または無効にできます。
コンソール
デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[Container, Networking, Security] をクリックしてサービス構成ページを開きます。
[コンテナ] タブをクリックします。
- 起動時の CPU ブーストを有効にするには、[起動時の CPU ブースト] チェックボックスをオンにします。この機能を無効にするには、このチェックボックスをオフにします。
[作成] または [デプロイ] をクリックします。
コマンドライン
次のコマンドを使用して、特定のサービスで起動時の 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
という形式になります。.次のコマンドを使用して、特定のサービスで起動時の 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 ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。
次のコマンドで、構成を表示してダウンロードします。
gcloud run services describe SERVICE --format export > service.yaml
起動 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 サービスの名前に置き換えます。
次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud run services replace service.yaml
CPU 設定を表示する
Cloud Run サービスの現在の CPU の設定を表示するには:
コンソール
目的のサービスをクリックして、[サービスの詳細] ページを開きます。
[変更内容] タブをクリックします。
右側の詳細パネルの [コンテナ] タブに、CPU 設定が表示されます。
コマンドライン
次のコマンドを使用します。
gcloud run services describe SERVICE
返された構成で、CPU 設定を見つけます。
Cloud Run ジョブの現在の CPU の設定を表示するには:
コンソール
目的のジョブをクリックして、[ジョブの詳細] ページを開きます。
[構成] タブをクリックします。
構成の詳細で CPU の設定を見つけます。
コマンドライン
次のコマンドを使用します。
gcloud run jobs describe JOB_NAME
返された構成で、CPU 設定を見つけます。