このページでは、Cloud Run インスタンスごとに使用する CPU の数を指定する方法について説明します。デフォルトでは、Cloud Run コンテナ インスタンスは 1 つの CPU に制限されています。この値は、このページの説明に従って増減できます。
このページでは、起動時の CPU ブーストを有効または無効にする方法についても説明します。これは、起動レイテンシを短縮するために、インスタンスの起動時に一時的に CPU 割り当てを増やす機能です。
CPU 上限の設定と更新
デフォルトでは、各インスタンスの CPU は 1 つに制限されています。任意の整数値を使用して、CPU を最大 8 つまで増やすことができます。
CPU とメモリ
CPU の最小メモリ要件は次のとおりです。
CPU | 最小メモリ |
---|---|
4 | 2 GiB |
6 | 4 GiB |
8 | 4 GiB |
また、使用する 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 サービスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Run サービスに対する Cloud Run デベロッパー(
roles/run.developer
) -
サービス ID に対するサービス アカウント ユーザー(
roles/iam.serviceAccountUser
)
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run サービスが Google Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
CPU 上限を構成する
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
新しいサービスを作成するとき、または新しいリビジョンをデプロイするときに、Google Cloud コンソール、gcloud コマンドライン、または YAML ファイルを使用して CPU の上限を設定できます。
コンソール
Google Cloud コンソールで、[Cloud Run] に移動します。
デプロイ先の新しいサービスを構成する場合は、[サービスを作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてサービス構成ページを開きます。
[コンテナ] タブをクリックします。
- プルダウン リストから目的の 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 を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-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
新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その 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 を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-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_v2_service
リソースでは、CPU の上限を template.containers.resources.limits
の下に指定します。1
は、目的の CPU 数に置き換えます。
起動時の 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 ブーストを有効または無効にできます。
コンソール
Google Cloud コンソールで、[Cloud Run] に移動します。
デプロイ先の新しいサービスを構成する場合は、[サービスを作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてサービス構成ページを開きます。
[コンテナ] タブをクリックします。
- 起動時の 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 を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-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
新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その 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 の設定を表示するには:
コンソール
Google Cloud コンソールで、[Cloud Run] に移動します。
目的のサービスをクリックして、[サービスの詳細] ページを開きます。
[変更内容] タブをクリックします。
右側の詳細パネルの [コンテナ] タブに、CPU 設定が表示されます。
コマンドライン
次のコマンドを使用します。
gcloud run services describe SERVICE
返された構成で、CPU 設定を見つけます。