割り当てと上限

このドキュメントでは、Compute Engine の割り当てと上限について説明します。

割り当ては、Cloud プロジェクトで使用できる特定の共有 Google Cloud リソース(ハードウェア、ソフトウェア、ネットワーク コンポーネントなど)の量を制限します。

割り当てはシステムの一部で、次の機能があります。

  • Google Cloud のプロダクトとサービスの使用量や消費量をモニタリングする。
  • 公平性の確保や使用量急増の抑制などのため、これらのリソースの消費量を制限する。
  • 規定の制限を自動的に適用する構成を維持する。
  • 割り当ての変更を実施またはリクエストする手段を提供する。

割り当てを超過すると、ほとんどの場合、システムは関連する Google リソースへのアクセスをすぐにブロックするため、ユーザーが試行しているタスクは失敗します。ほとんどの場合、割り当ては各 Cloud プロジェクトに適用され、その Cloud プロジェクトを使用するすべてのアプリケーションと IP アドレスで共有されます。

Compute Engine では、さまざまな理由から、使用できるリソースの割り当て量に上限が設けられています。たとえば、割り当て量を制限して予期しない使用量の急増を防ぐことで Google Cloud ユーザーのコミュニティを保護しています。Google Cloud では、無料トライアルの割り当ても用意されています。この割り当てにより、無料トライアル ベースで Google Cloud を利用できるプロジェクトに対しては、限定的なアクセスが提供されます。

割り当て量はすべてのプロジェクトで同じとは限りません。Google Cloud の使用量が多くなるに伴い、割り当てが引き上げられることがあります。使用量の大幅な増加が見込まれる場合は、事前にコンソールの [割り当て] ページから割り当て調整をリクエストできます。

Compute Engine API でのレート制限に関する割り当てについて詳しくは、API レート制限をご覧ください。

割り当ての確認と編集の権限

割り当て量を表示するには、serviceusage.quotas.get 権限が必要です。

割り当てを変更するには、serviceusage.quotas.update 権限が必要です。

これらの権限は、オーナーと編集者の基本の IAM ロール、および事前定義された割り当て管理者ロールにデフォルトで含まれています。

割り当て量を確認する

リージョンの割り当ては、プロジェクトの割り当てのサブセットではありません。仮想マシン(VM)インスタンスはリージョン割り当ての一部です。

リージョンの割り当て(リージョンに作成できる VM の数など)を確認するには、リージョンの割り当てを確認するをご覧ください。プロジェクトの割り当てを確認するには、Google Cloud Console または Google Cloud CLI を使用します。

割り当てのカテゴリについては、割り当てについてをご覧ください。

リージョン割り当てを確認する

コンソール

Google Cloud Console で、[割り当て] ページに移動します。

[割り当て] に移動

gcloud

リージョン内の割り当てを一覧表示します。

gcloud compute regions describe REGION

REGION は、割り当て情報のリストを表示したいリージョンの名前に置き換えます。

プロジェクトの割り当てを確認する

コンソール

Google Cloud Console で、[割り当て] ページに移動します。

[割り当て] に移動

gcloud

プロジェクト全体の割り当てを確認します。

gcloud compute project-info describe --project PROJECT_ID

PROJECT_ID は、実際のプロジェクト ID に置き換えます。

割り当て量の増加をリクエストする

割り当て増加のリクエストは無料です。料金が発生するのは、リソースの使用量が増えたときのみです。

割り当てを減らすリクエストは、デフォルトでは拒否されます。割り当て量を減らす必要がある場合は、サポートメールへの返信にお客様の要件を記載してリクエストしてください。Compute Engine チームのサポート担当者より 24~48 時間以内に返事が届きます。

リクエストの完了に十分な時間が確保されるように、少なくとも数日前に追加のリソースを計画してリクエストしてください。

Google Cloud Console から割り当てを増やす方法の詳細については、割り当て上限の引き上げをリクエストするをご覧ください。

割り当てとリソースの可用性

リソースの割り当てとは、そのリソースの種類で作成できる最大リソース数のことですが、それだけのリソースが利用可能であることが条件となります。割り当てが適用されていても、そのリソースを常に利用できるわけではありません。あるリソースが利用できない場合、つまり選択したリージョンにはそのリソースが残っていない場合、リージョンまたはプロジェクトに割り当てが残っていても、その種類のリソースを新規作成することはできません。たとえば、us-central1 に外部 IP アドレスを作成できるだけの割り当てが残っていても、そのリージョンには利用可能な IP アドレスがないということもあります。

同様に、リージョンの割り当てが残っていても、特定のゾーンである種類のリソースが利用不可能ということもあります。たとえば、リージョン us-central1 で VM インスタンスを作成できるだけの割り当てが残っていても、ゾーン us-central1-a が枯渇している場合は、このゾーンでは VM インスタンスを作成できない場合があります。そのような場合は、同じリソースを別のゾーン(たとえば us-central1-f)で作成してみてください。ゾーンリソースが枯渇した場合のオプションの詳細については、リソースの可用性のトラブルシューティングのドキュメントをご覧ください。

リソースの割り当て

必要となる VM インスタンスを計画する際は、作成できる VM インスタンス数に影響を与えるいくつかの割り当てを考慮する必要があります。

リージョン割り当てとグローバル割り当て

VM の割り当てはリージョン レベルで管理されます。VM インスタンス、インスタンス グループ、ディスクの割り当て、CPU は、ゾーンに関係なくリージョン内の VM が消費できます。たとえば、CPU 割り当てはリージョン割り当てであるため、上限や使用量はリージョンごとにカウントされます。us-central1 リージョン内の任意のゾーンで n2-standard-16 インスタンスを起動するには、us-central1 に少なくとも CPU 16 個分の割り当てが必要です。

ファイアウォール、ロードバランサ、ネットワーク、VPN を作成するには、ネットワーキングと負荷分散の割り当てが必要です。これらの割り当ては、リージョンに依存しないグローバル割り当てです。グローバル割り当ては任意のリージョンで使用できます。たとえば、ロードバランサと HTTP(S) プロキシに割り当てられている使用 IP アドレスと静的外部 IP アドレスには、グローバル割り当てが消費されます。

VM インスタンス

VM インスタンスの割り当てはリージョン割り当てで、VM が実行されているかどうかに関係なく、特定のリージョンに存在できる VM インスタンスの数が制限されます。この割り当ては、Google Cloud Console の [割り当て] ページで確認できます。Compute Engine は、この割り当てを通常の CPU 割り当ての 10 倍に設定します。この割り当てをリクエストする必要はありません。VM インスタンスの割り当てを増やす必要がある場合は、追加の CPU 割り当てをリクエストしてください。CPU 割り当てを増やすと VM インスタンスの割り当ても増加します。この割り当ては、実行中の VM と実行されていない VM、および通常のインスタンスとプリエンプティブル インスタンスに適用されます。

  1. Google Cloud Console で、[割り当て] ページに移動します。

    [割り当て] に移動

  2. [表のフィルタ] をクリックし、[サービス] を選択します。

  3. [Compute Engine API] を選択します。

  4. [上限名] > [VM instances] を選択します。

  5. リージョンごとの VM インスタンスの割り当てのリストを表示するには、[すべての割り当て量] をクリックします。リージョンの割り当ては、多いものから少ないものの順に一覧表示されます。

  6. 割り当てを変更するリージョンのチェックボックスをオンにします。

  7. [割り当てを編集] をクリックします。

  8. フォームに入力します。

  9. [リクエストを送信] をクリックします。

インスタンス グループ

インスタンス グループを使用するには、グループが使用するすべてのリソース(CPU 割り当てなど)とグループ リソース自体に利用可能な割り当てがある必要があります。作成するグループのタイプによって、以下のグループ リソース割り当てが適用されます。

サービスタイプ サービス割り当て
リージョン(マルチゾーン)マネージド インスタンス グループ Regional instance group managers
ゾーン(シングルゾーン)マネージド インスタンス グループ 以下の両方:
  • Instance group managers
  • Instance groups
非マネージド(シングルゾーン)インスタンス グループ Instance groups
リージョン(マルチゾーン)オートスケーラー Regional autoscalers
ゾーン(シングルゾーン)オートスケーラー Autoscalers

ディスク割り当て

次の永続ディスクとローカル SSD の割り当ては、リージョンごとに適用されます。

  • Local SSD (GB)。この割り当ては、1 つのリージョン内の VM にアタッチできるローカル SSD ディスク パーティションの合計サイズです。ローカル SSD は高速なエフェメラル ディスクです。このディスクは、VM インスタンスの再起動に際して存続することが意図されていないため、スクラッチ、ローカル キャッシュや、フォールト トレランスに優れたジョブの処理に適しています。ローカル SSD パーティションは 375 GB 単位で購入でき、1 つの VM に最大 24 個のローカル SSD パーティションを接続できます。LOCAL_SSD_TOTAL_GB CLI と API では、これを と呼びます。
  • Persistent disk standard (GB)。この割り当ては、1 つのリージョン内に作成できる標準永続ディスクの合計サイズです。永続ディスクとローカル SSD のパフォーマンスの最適化で説明されているように、SSD 永続ディスクやローカル SSD よりも IOPS とスループットが低くなります。これは、ストレージ用の耐久性に優れた大型のディスクやブートディスクとして使用する場合、またはログなどのシリアル書き込みプロセスに対して、コスト効率の高いディスクです。標準永続ディスクは、耐久性に優れ、同じゾーン内の VM にアタッチするために無期限に利用できます。gcloud CLI と API では、これを DISKS_TOTAL_GB と呼びます。この割り当てはリージョン標準永続ディスクにも適用されますが、リージョンのディスクはリージョン内の 2 つのゾーンで複製されるため、1 GB あたりの割り当て消費量が 2 倍になります。
  • Persistent disk SSD (GB)。この割り当ては、1 つのリージョン内に作成できる SSD を使用する永続ディスク パーティションの合計サイズです。SSD を使用する永続ディスクには複数のレプリカがあり、ブロック ストレージのパフォーマンスで説明されているように、標準永続ディスクよりも IOPS とスループットが高くなります。SSD を使用する永続ディスクは、同じゾーン内の VM にアタッチするために無期限に利用できます。gcloud CLI と API では、これを SSD_TOTAL_GB と呼びます。この割り当てはローカル SSD とは別のものです。この割り当ては、下記に示すディスクタイプに適用されます。リージョン永続ディスクでは、リージョン内の 2 つのゾーンで複製されるため、1 GB あたりの割り当て消費量が 2 倍になります。
    • ゾーン / リージョン SSD 永続ディスク
    • ゾーン / リージョン バランス永続ディスク

CPU 割り当て

CPU 割り当ては、リージョンのすべての VM インスタンスで利用できる仮想 CPU の合計数です。CPU 割り当ては、実行中の VM と VM 予約に適用されます。事前定義の VM とプリエンプティブル VM の両方でこの割り当てが消費されます。

Compute Engine システムと他のユーザーを保護するため、新しいアカウントとプロジェクトにもグローバル CPUs (All Regions) 割り当ても設定されます。この割り当てはすべてのリージョンに適用され、すべてのリージョンにある全 vCPU の合計として測定されます。

たとえば、us-central1 などの単一リージョンで 48 の vCPU があり、CPUs (All Regions) 割り当てで 32 の vCPU が残っている場合、us-central1 リージョンの割り当てが残っていても、同リージョンで利用できる vCPU の数は 32 になります。これは、CPU (All Regions) 割り当ての上限に達し、新しいインスタンスの起動前に既存のインスタンスの削除が必要になるためです。

E2 および N1 マシンタイプは、CPU 割り当てプールを共有します。N2、N2D、M1、M2、C2 の各マシンタイプには、個別の CPU 割り当てプールがあります。

VM で確約利用割引を利用する場合、確約利用割引を購入する前に、確約利用割引の割り当てを設定する必要があります。

マシンタイプ 割り当てプール CPU 割り当て名 コミット済み CPU 割り当て名
E2、N1 共有プール CPUS Committed_CPUS
N2 個別プール N2_CPUS Committed_N2_CPUS
N2D 個別プール N2D_CPUS Committed_N2D_CPUS
T2D 個別プール T2D_CPUS Committed_T2D_CPUS
T2A(プレビュー 個別プール T2A_CPUS Committed_T2A_CPUS には使用できない(該当なし)
M1 個別プール M1_CPUS Committed_MEMORY-OPTIMIZED_CPUS
M2 個別プール M2_CPUS Committed_MEMORY-OPTIMIZED_CPUS
C2 個別プール C2_CPUS Committed_C2_CPUS
C2D 個別プール C2D_CPUS Committed_C2D_CPUS
A2 個別プール A2_CPUS Committed_A2_CPUS
プリエンプティブル VM 共有プール PREEMPTIBLE_CPUS プリエンプティブル VM には使用できない(該当なし)

GPU 割り当て

仮想 CPU 割り当てと同様に、GPU 割り当ては、リージョン内のすべての VM インスタンスの仮想 GPU の合計数を意味します。GPU 割り当ては、実行中の VM と VM 予約に適用されます。事前定義の VM とプリエンプティブル VM の両方でこの割り当てが消費されます。

プロジェクトで利用できる GPU が十分にあるかどうかは、[割り当て] ページで確認できます。必要に応じて割り当ての増加をリクエストしてください。また、新しいアカウントとプロジェクトには、すべてのリージョンに適用されるグローバルな GPU 割り当てが設定されます。

GPU 割り当てをリクエストするときは、各リージョンで作成する GPU モデルに対する割り当てに加え、すべてのゾーンにおけるすべてのタイプの GPU の総数に対するグローバル割り当てもリクエストする必要があります。これらのリソースを使用するには、プリエンプティブル GPU 割り当てをリクエストします。

NVIDIA GPU 割り当て名 コミット済み GPU 割り当て名 仮想ワークステーション プリエンプティブル GPU プリエンプティブル GPU 仮想ワークステーション
K80 NVIDIA_K80_GPUS COMMITTED_NVIDIA_K80_GPUS なし PREEMPTIBLE_NVIDIA_K80_GPUS なし
P100 NVIDIA_P100_GPUS COMMITTED_NVIDIA_P100_GPUS NVIDIA_P100_VWS_GPUS PREEMPTIBLE_NVIDIA_P100_GPUS PREEMPTIBLE_NVIDIA_P100_VWS_GPUS
A100 NVIDIA_A100_GPUS COMMITTED_NVIDIA_A100_GPUS なし PREEMPTIBLE_NVIDIA_A100_GPUS なし
P4 NVIDIA_P4_GPUS COMMITTED_NVIDIA_P4_GPUS NVIDIA_P4_VWS_GPUS PREEMPTIBLE_NVIDIA_P4_GPUS PREEMPTIBLE_NVIDIA_P4_VWS_GPUS
T4 NVIDIA_T4_GPUS COMMITTED_NVIDIA_T4_GPUS NVIDIA_T4_VWS_GPUS PREEMPTIBLE_NVIDIA_T4_GPUS PREEMPTIBLE_NVIDIA_T4_VWS_GPUS
V100 NVIDIA_V100_GPUS COMMITTED_NVIDIA_V100_GPUS なし PREEMPTIBLE_NVIDIA_V100_GPUS なし

プリエンプティブル リソースの割り当て

プリエンプティブル VM インスタンスに接続されているプリエンプティブル CPU または GPU、またはプリエンプティブル VM インスタンスにアタッチされているローカル SSD を利用するには、プロジェクトにそれぞれのリソースの割り当てが残っている必要があります。

Preemptible CPUsPreemptible GPUsPreemptible Local SSDs (GB) については特別なプリエンプティブル割り当てをリクエストできますが、プロジェクトにプリエンプティブル割り当てがなく、プリエンプティブル割り当てをリクエストしたことがない場合は、標準の割り当てを利用してプリエンプティブル リソースを起動できます。

Compute Engine によりあるリージョンでプリエンプティブル割り当てが付与された後は、すべてのプリエンプティブル インスタンスが自動的にプリエンプティブル割り当ての消費と見なされます。この割り当てが使い果たされると、これらのリソースに対するプリエンプティブル割り当てをリクエストする必要があります。

外部 IP アドレス

公共のインターネットから直接アクセスできる必要がある VM ごとに、十分な外部 IP アドレスが割り振られている必要があります。あるリージョンの VM に対する IPv4 アドレスには、そのリージョンの IP 割り当てを使用します。ロードバランサなどのグローバル ネットワーキング リソースに対する IPv4 アドレスには、グローバル IP 割り当てを使用します。Google Cloud では、お客様のニーズに応じて、いくつかの種類の IP アドレスを提供しています。費用については、外部 IP アドレス料金をご覧ください。割り当ての詳細については、割り当てと上限をご覧ください。

  • 使用中の外部 IP アドレス。リソースで現在使用されているエフェメラル IP アドレスと静的 IP アドレスの両方が含まれます。

  • 静的外部 IP アドレス: マシンを再起動しても保持するリソース用に予約される外部 IP アドレス。これらのアドレスを DNS とドメイン プロバイダ サービスに登録し、ユーザーにわかりやすいアドレスを指定できます(例: www.example-site.com)。

  • 静的内部 IP アドレス: 静的内部 IP アドレスを使用すると、サブネットで構成された内部 IP 範囲から内部 IP アドレスを予約できます。必要に応じて、その予約済み内部アドレスをリソースに割り当てることができます。

上限

API レート上限

API レート制限(API 割り当てとしても知られています)は、Compute Engine API に対して実行できるリクエストの数を定義します。このレート上限は、プロジェクトごとに適用されます。各レート上限は、1 つ以上の Compute Engine API メソッドのグループに対するすべてのリクエストに対応します。gcloud computeGoogle Cloud Console を使用する場合も、API に対してリクエストを行うため、そのリクエスト数もレート制限の対象になります。また、サービス アカウントを使用して API にアクセスする場合も、レート制限に反映されます。

API レート上限は、強制的に適用され、60 秒(1 分)の間隔で自動的に更新されます。つまり、60 秒間内にプロジェクトがレート上限に達すると、そのグループでは、割り当てが補充されるまで待ってから追加のリクエストを行う必要があります。プロジェクトがレート上限を超えると、理由 rateLimitExceeded で 403 エラーが発生します。このエラーを解決するには、1 分ほど待ってから再度リクエストを行います。割り当ては、次の間隔の始めに補充されているはずです。

現在は、次のグループでリクエストが制限されています。各グループは個別にカウントされるため、グループごとに上限まで同時に使用できます。

次のレート上限グループは、別途指定がない限り、すべてのリソースに適用されます。

上限グループ 説明 デフォルトの上限
クエリ
  • ミューテーション メソッドのデフォルトの上限。
  • 指標 compute.googleapis.com/default
プロジェクトあたりのレート(defaultPerMinutePerProject): 1,500 リクエスト/分
読み取りリクエスト
  • *.get メソッドの上限。
  • 指標 compute.googleapis.com/read_requests
プロジェクトあたりのレート(ReadRequestsPerMinutePerProject): 1,500 リクエスト/分
一覧取得リクエスト
  • *.list メソッドの上限。
  • Metric: compute.googleapis.com/list_requests
プロジェクトあたりのレート(ListRequestsPerMinutePerProject): 1,500 リクエスト/分
オペレーション読み取りリクエスト
  • globalOperations.getregionOperations.getzoneOperations.get methods. の上限
  • Metric: compute.googleapis.com/operation_read_requests
プロジェクトあたりのレート(OperationReadRequestsPerMinutePerProject): 1,500 リクエスト/分
グローバル リソースのミューテーション リクエスト
  • disks.createSnapshotimages.deleteimages.deprecateimages.insertimages.setLabelssnapshots.deletesnapshots.insertsnapshots.setLabelsmachineImages.insertmachineImages.delete メソッドの上限。
  • 指標 compute.googleapis.com/global_resource_write_requests
プロジェクトあたりのレート(GlobalResourceWriteRequestsPerMinutePerProject): 375 リクエスト/分
重量級のミューテーション リクエスト
  • interconnects リソースと interconnectAttachments リソースの patchdeleteinsert メソッドを対象とする上限。
  • Metric: compute.googleapis.com/heavy_weight_write_requests
プロジェクトあたりのレート(HeavyWeightWriteRequestsPerMinutePerProject): 750 リクエスト/分
重量級の読み取りリクエスト
  • Operations.wait*.getEffectiveFirewalls*.aggregatedList などのメソッドの上限。
  • 指標 compute.googleapis.com/heavy_weight_read_requests
プロジェクトあたりのレート(HeavyWeightReadRequestsPerMinutePerProject): 750 リクエスト/分

次のレート上限グループは、メソッドごとの上限がある API に適用されます。

上限グループ 説明 デフォルトの上限
インスタンスがメンテナンス イベント リクエストをシミュレートする
  • instances.simulateMaintenanceEvent メソッドの上限。
  • 指標 compute.googleapis.com/simulate_maintenance_event_requests
プロジェクトあたりのレート(SimulateMaintenanceEventRequestsPerDayPerProject): 150 リクエスト/分
インスタンス リスト参照リクエスト
  • instances.listReferrers メソッドの上限。
  • 指標 compute.googleapis.com/instance_list_referrers_requests
プロジェクトあたりのレート(InstanceListReferrersRequestsPerMinutePerProject): 3,000 リクエスト/分
インスタンスがシリアルポート出力リクエストを取得する
  • instances.getSerialPortOutput メソッドの上限。
  • 指標 compute.googleapis.com/get_serial_port_output_requests
プロジェクトあたりのレート(GetSerialPortOutputRequestsPerMinutePerProject): 最大 1,500 リクエスト/分
ライセンスの挿入リクエスト
  • licenses.insert メソッドを対象とする上限。
  • 指標 compute.googleapis.com/license_insert_requests
  • プロジェクトあたりのレート(LicenseInsertRequestsPerMinutePerProject): 2.5 リクエスト/秒(150 リクエスト/分)
  • 1 プロジェクト、1 日あたりのレート(LicenseInsertRequestsPerDayPerProject): 30 リクエスト/日
プロジェクト セットの共通インスタンス メタデータ リクエスト
  • projects.setCommonInstanceMetadata メソッドの上限。
  • 指標 compute.googleapis.com/project_set_common_instance_metadata_requests
プロジェクトあたりのレート(ProjectSetCommonInstanceMetadataRequestsPerMinutePerProject): 36 リクエスト/分
位置情報リクエストを推奨
  • regionInstances.recommendLocations メソッドの上限。
  • 指標 compute.googleapis.com/recommend_locations_requests
プロジェクトあたりのレート(RecommendLocationsRequestsPerMinutePerProject): 20 リクエスト/分
ネットワーク エンドポイントの書き込みリクエスト
  • *.AttachNetworkEndpoints メソッドと *.DetachNetworkEndpoints メソッドを対象とする上限。
  • 指標 compute.googleapis.com/network_endpoint_write_requests
プロジェクトあたりのレート(NetworkEndpointWriteRequestsPerMinutePerProject): 1,500 リクエスト/分
ネットワーク エンドポイントのリスト リクエスト
  • networkEndpointGroups.listNetworkEndpoints メソッドの上限。
  • 指標 compute.googleapis.com/network_endpoint_list_requests
プロジェクトあたりのレート(NetworkEndpointListRequestsPerMinutePerProject): 1,500 リクエスト/分

Compute Engine API のベスト プラクティスに従い、API レート制限を維持することで、API レート制限の影響を緩和します。

API リクエストのより高いレート制限が必要な場合は、現在の使用状況を確認して、API 割り当ての増加をリクエストできます。Google Cloud コンソールから割り当てを増やす方法については、割り当て上限の引き上げをリクエストするをご覧ください。

次のステップ