このページでは、Cloud Run インスタンスごとに使用する vCPU の数を指定する方法について説明します。デフォルトでは、Cloud Run コンテナ インスタンスは 2 vCPU に制限されています。このページで説明するように、この値を増減できます。
vCPU の上限を設定、更新する
デフォルトでは、各インスタンスは 2 vCPU と 2 GiB のメモリに設定されています。これは、次の表に示す任意の値に変更できます。
同時実行は構成できません。80 に設定されています。
vCPU とメモリの表
vCPU のメモリ要件は次のとおりです。
| CPU | 必要なメモリ |
|---|---|
| 1 vCPU | 512 MiB ~ 4 GiB |
| 2 vCPU | 512 MiB ~ 8 GiB |
| 4 vCPU | 2~16 GiB |
| 6 vCPU | 4~24 GiB |
| 8 vCPU | 4 ~ 32 GiB |
1 より大きい値は整数値にする必要があります。
vCPU の最大数
構成できる vCPU の最大数は 8 vCPU です。
vCPU の最小数
インスタンスの最小 vCPU は 1 vCPU です。各コンテナはフラクショナル CPU で構成できますが、インスタンス内のすべてのコンテナの合計は 1 vCPU 以上にする必要があります。
費用に関する考慮事項
Cloud Run リソースの費用は、CPU 構成やリソースがアクティブな期間など、さまざまな要因によって影響を受けます。 リソースを過剰にプロビジョニングすると、費用が増加する可能性があります。リソースに最適な CPU 構成を判断するには:
- CPU 使用率と費用のバランスが取れた CPU 上限の初期ベースライン構成を確立します。
- 負荷がかかった状態でシステムをテストしながら、Cloud Monitoring で CPU 使用率指標をモニタリングします。
- 必要に応じて CPU 構成を調整します。
ピーク時の負荷で CPU 使用率が常に低い場合は、vCPU の割り当てを減らすことを検討してください。レイテンシが高い場合は、vCPU の割り当てを増やすことを検討してください。
リソースの費用の概要データ、使用率データ、費用最適化に関する 推奨事項は、[Cloud Hub Optimization page]で確認できます。 詳細については、Cloud Run の料金を確認するか、 料金計算ツールで費用を見積もります 。
CPU バーストとスロットリング
Cloud Run インスタンスは、Linux スケジューラ cgroup の割り当てと同様に管理される、ベースライン割り当てとバースト機能を備えた共有 CPU 割り当てモデルを使用します。
Cloud Run インスタンスの vCPU 上限を構成すると、CPU の動作は次のメカニズムで構成されます。
- ベースライン割り当て: 各インスタンスには、構成された vCPU ごとに 6.25%(1/16)の連続ベースラインが割り当てられます。このベースライン内でインスタンスを無期限に実行できます。
- バースト容量: インスタンスがベースライン容量を下回って実行されると、未使用の CPU 時間がバースト バランス バジェット(最大 500 秒)に継続的に蓄積されます。ワークロードによって計算量の多いタスクがトリガーされると、インスタンスは蓄積されたバースト バランスが使い果たされるまで、構成された vCPU 割り当ての最大 100% まで自動的にバーストします。
- スロットリング: CPU 使用率が高いときにバースト バランスが使い果たされると、追加のバースト バランスが蓄積されるまで、インスタンスはベースライン割り当て(構成された vCPU ごとに 6.25%)にスロットリングされます。
- 補充: CPU 使用率が 6.25% のベースラインを下回ると、バースト バジェットが補充されます。
必要なロール
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 API(Cloud クライアント ライブラリなど)と連携している場合は、 サービス ID の構成ガイドをご覧ください。 ロールの付与の詳細については、 デプロイ権限 とアクセスの管理をご覧ください。
CPU 上限を構成する
Google Cloud CLI または YAML を使用して、Cloud Run インスタンスの CPU 上限を設定できます。
gcloud
次のコマンドを使用して、特定のインスタンスの CPU の上限を更新 します。
gcloud beta run instances update INSTANCE --cpu CPU
次のように置き換えます。
- INSTANCE: インスタンスの名前。
- CPU: CPU の上限。CPU とメモリの表に示されている要件に沿って、
1、2、4、6、8のいずれかの値を指定します。
次のコマンドを使用して、 デプロイメント中に CPU を設定することもできます。
gcloud beta run instances deploy --image IMAGE_URL --cpu CPU
次のように置き換えます。
IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latestなど)。- CPU:CPU とメモリの表に示されている要件に沿って、
1、2、4、6、8CPU のいずれかの値。
YAML
新しいインスタンスを作成する場合は、この手順をスキップします。 既存のインスタンスを更新する場合は、その YAML 構成をダウンロードします。
gcloud beta run instances describe INSTANCE --format export > instance.yaml
次の例には、YAML 構成が含まれています。
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: — image: IMAGE_URL resources: limits: cpu: `CPU`
次のように置き換えます。
- INSTANCE: Cloud Run インスタンスの名前。
IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latestなど)。- CPU:CPU の上限値。
1、2、4、6、8のいずれかの値を指定します。CPU が 1 未満の場合は 0.08 から 1.00 までの範囲の値を 0.01 単位で指定します(必要な設定については、 CPU の上限の設定と更新の表を参照)。
次のコマンドを使用して、インスタンスを作成または更新します。
gcloud beta run instances replace instance.yaml
シナリオの例: 2 vCPU インスタンス
インスタンスが 2 vCPU の上限で構成されている場合:
- ベースライン オペレーション: インスタンスは、最大 0.125 vCPU(2 vCPU の 6.25%)を消費して一貫して実行できます。このベースラインで動作している間、バースト バランスが蓄積されます。
- フルバースト: ワークロードに追加の処理能力が必要な場合、インスタンスは最大 2 vCPU(使用率 100%)までバーストし、蓄積されたバースト バジェットを消費します。
- スロットリング: バースト バランス バジェットが使い果たされると、新しいバースト バランスが蓄積されるまで、インスタンスは 0.125 vCPU のベースラインにスロットリングされます。
インスタンスの CPU 構成を表示する
Google Cloud CLI コマンド gcloud beta run instances describe を使用して、構成の詳細を確認できます。