Cloud Run インスタンスに割り当てるメモリ容量を選択できます。このページでは、インスタンスで使用可能なメモリ量を指定する方法について説明します。
メモリ使用量を把握する
許容されるメモリ上限を超える Cloud Run インスタンスは終了します。
次の用途のために、インスタンスのメモリが十分な量使用可能である必要があります。
- インスタンス実行可能ファイルの実行(実行可能ファイルをメモリに読み込む必要があるため)
- インスタンス プロセスでのメモリの割り当て
- ファイル システムへのファイルの書き込み
デプロイされたコンテナ イメージのサイズは、インスタンスで使用可能なメモリには影響しません。
メモリ上限の設定と更新
Cloud Run インスタンスにはメモリ上限を設定できます。 デフォルトでは、各インスタンスに割り当てられるメモリは 2 GiB です。
CPU 値を設定する際に必要なメモリ
CPU 値を設定する場合は、次のメモリが必要です。
| 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 |
メモリの最大量
構成できるメモリの最大容量は 32 GiB(32 Gi)です。
最小メモリ
最小メモリ設定は 512 MiB です。
費用に関する考慮事項
Cloud Run インスタンスの費用は、メモリ構成やリソースがアクティブな期間など、さまざまな要因によって異なります。 リソースを過剰にプロビジョニングすると、費用が増加する可能性があります。リソースに最適なメモリ構成を判断するには、次の操作を行います。
- 初期ベースライン構成を確立します。
- 負荷テスト中に、Cloud Monitoring でメモリ使用率の指標をモニタリングします。
- 必要に応じて構成を調整します。
メモリ使用率が常に低い場合は、割り当てられたメモリを減らすことを検討してください。 レイテンシが高く、メモリ使用率が 100% に近い場合は、割り当てられたメモリを増やすことを検討してください。メモリ不足(OOM)エラーが発生している場合は、割り当てられたメモリを増やすか、メモリリークを防ぎ、使用するメモリを減らすようにアプリケーションを変更する必要があります。メモリ使用率を把握するには、Cloud Monitoring ダッシュボード をご覧ください。
詳細については、Cloud Run の料金を確認するか、 料金計算ツールで費用を見積もります 。
必要なロール
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 の構成ガイドをご覧ください。 ロールの付与の詳細については、 デプロイ権限 とアクセスの管理をご覧ください。
メモリ上限を構成する
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
Google Cloud CLI または YAML を使用して、Cloud Run インスタンスのメモリ上限を設定できます。
gcloud
次のコマンドを使用して、特定のインスタンスのメモリ割り当て を更新します。
gcloud beta run instances update INSTANCE --memory SIZE
次のように置き換えます。
- INSTANCE: インスタンスの名前
- SIZE:CPU とメモリの表のメモリサイズ。
サイズの書式は、固定小数点または浮動小数点の後に単位が続きます(
G、Mはそれぞれ GB、MB を表します)。また 2 の累乗で表すこともできます(Gi、Miはそれぞれ GiB、MiB を表します)。
デプロイ中にメモリ制限を設定するには、次のコマンドを使用します。
gcloud beta run instances deploy --image IMAGE_URL --memory SIZE
次のように置き換えます。
IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latestなど)。- SIZE:CPU とメモリの表のメモリサイズ。 サイズの書式は、固定小数点または浮動小数点の後に単位が続きます(G、B はそれぞれ GB、MB を表します)。また 2 の累乗で表すこともできます(Gi、Mi はそれぞれ GiB、MiB を表します)。
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: memory: SIZE
次のように置き換えます。
- INSTANCE: Cloud Run インスタンスの名前。
IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latestなど)。- SIZE:選択したメモリサイズ。
書式は、固定小数点または浮動小数点の後に単位が続きます。
GまたはMはそれぞれ GB、MB を表します。 また 2 の累乗で表すこともできます。GiまたはMiはそれぞれ GiB、MiB を表します。
次のコマンドを使用して、インスタンスを作成または更新します。
gcloud beta run instances replace instance.yaml