Compute Engine のレートに基づく割り当て


このドキュメントでは、Compute Engine のレートに基づく割り当てについて説明します。この割り当てにより、Compute Engine API メソッドに対して行えるリクエストの数を規定します。

レートに基づく割り当て

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

Google では、グループごとに分単位(60 秒)でレートに基づく割り当てが適用されます。つまり、プロジェクトが 60 秒以内に API リクエストの最大数に達した場合は、そのレートの割り当てが補充されるのを待ってから、そのグループで追加のリクエストを行う必要があります。プロジェクトがレートに基づく割り当てを超えると、理由 rateLimitExceeded で 403 エラーが発生します。このエラーを解決するには、1 分ほど待ってから再度リクエストを行います。割り当ては、次の間隔の始めに補充されているはずです。

Compute Engine API に対して行えるリクエストの数は、次の表に示すように API 割り当てによって定義されます。各グループは個別にカウントされるため、グループごとに割り当て上限まで同時に使用できます。

グローバル メソッドのレートに基づく割り当て

以降のセクションでは、グローバル Compute Engine API メソッドに対して実行できるリクエストの数を定義する割り当てについて説明します。

グローバル メソッドの簡素化された API 割り当て

Compute Engine API 割り当ての検出と管理性を向上させるため、Google Cloud では、指標をより少ない割り当てに統合することで、割り当て指標の数を減らしました。また、これらの簡素化された割り当て指標では、割り当てごとに上限が引き上げられます。

グローバル メソッドと、各メソッドの費用を追跡する割り当て指標の一覧については、Compute Engine API 割り当て指標のリファレンスをご覧ください。

次の表に、Compute Engine API の簡素化された API 割り当て指標を示します。

割り当て
割り当ての説明
指標名
1 分あたりの読み取りリクエスト数(GlobalReadsPerMinutePerProject
グローバル get メソッドと list メソッドの割り当て。
compute.googleapis.com/global_reads
1 分あたりの書き込みリクエスト数(GlobalWritesPerMinutePerProject
他の割り当て指標に含まれないグローバル書き込みメソッドの割り当て。
compute.googleapis.com/global_writes
1 分あたりの list usable リクエスト数(GlobalListUsablePerMinutePerProject
グローバル ListUsable メソッドの割り当て。
compute.googleapis.com/list_usable_requests
1 分あたりのキャッシュ無効化リクエスト数(GlobalCacheInvalidationRequestsPerMinutePerProject
グローバル UrlMapsService.InvalidateCache メソッドの割り当て。
compute.googleapis.com/global_cache_invalidation_requests
フィルタされたリストのコストのオーバーヘッド(ListRequestsFilterCostOverheadPerMinutePerProject

フィルタを使用した *.list メソッドと *.aggregatedList メソッドの割り当て。

Google Cloud では、compute.googleapis.com/global_reads 指標に対する割り当てに加えて、この指標の割り当て使用量が課金されます。リスト リクエストでフィルタされたリソースが 1 万を超えると、割り当て料金が発生します。この割り当て上限を超えると、Compute Engine API でリスト リクエストが拒否されます。

compute.googleapis.com/filtered_list_cost_overhead
プロジェクトあたりのレート: 1 リージョンあたり毎分 75 万個のリソースがリスト リクエストから除外されます。割り当ては 1 万リソースごとに課金されるため、 Google Cloud コンソールでこの割り当て上限をクエリすると、上限は 75(750k/10k)と表示されます。
1 分あたりのリクエスト数(GlobalRequestsPerMinutePerProject

すべてのグローバル読み取り / 書き込みリクエストの割り当て。

compute.googleapis.com/global_requests

グローバル メソッドの以前の API 割り当て

次の表に、グローバル メソッドのすべての Compute Engine API 割り当てを示します。

割り当て
割り当ての説明
指標名
1 分あたりのクエリ数(defaultPerMinutePerProject
他の割り当て指標に含まれないグローバル リスト メソッドとミューテーション メソッドの割り当て。

次の get メソッドでも、この default 指標が使用されます。

  • networkFirewallPolicies.get
  • projects.getXpnHost
  • projects.getXpnResources
compute.googleapis.com/default
読み取りリクエスト(以前のバージョン)(ReadRequestsPerMinutePerProject
グローバル *.get メソッドの割り当て。
compute.googleapis.com/read_requests
リスト リクエスト(ListRequestsPerMinutePerProject
グローバル *.list メソッドの割り当て。
compute.googleapis.com/list_requests
オペレーション読み取りリクエスト(OperationReadRequestsPerMinutePerProject
globalOperations.get メソッドの割り当て。
compute.googleapis.com/operation_read_requests
グローバル リソースのミューテーション リクエスト(GlobalResourceWriteRequestsPerMinutePerProject
images.deleteimages.deprecateimages.insertimages.setLabelssnapshots.deletesnapshots.insertsnapshots.setLabelsmachineImages.insertmachineImages.delete メソッドの割り当て。
compute.googleapis.com/global_resource_write_requests
大量のミューテーション リクエスト(HeavyWeightWriteRequestsPerMinutePerProject
interconnectsリソースの patchdeleteinsert の各メソッド用の割り当て。
compute.googleapis.com/heavy_weight_write_requests
大量の読み取りリクエスト(HeavyWeightReadRequestsPerMinutePerProject
*.aggregatedList メソッドの割り当て。
compute.googleapis.com/heavy_weight_read_requests

メソッドごとの割り当てがあるグローバル API には、次の割り当てが適用されます。

割り当て
割り当ての説明
指標名 デフォルトの上限
ライセンス挿入リクエスト
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 リクエスト/分

リージョン メソッドとゾーンメソッドのレートに基づく割り当て

以降のセクションでは、リージョン指標を使用するメソッドに適用されるすべての割り当てについて説明します。

リージョン メソッドとゾーンメソッドの簡素化された API 割り当て

次の表に、Compute Engine API のリージョン メソッドとゾーンメソッドの簡素化された割り当てを示します。リージョン メソッドとゾーンメソッドの完全なリストと、各メソッドの使用状況を追跡する割り当て指標については、Compute Engine API の割り当て指標のリファレンスをご覧ください。

割り当て
割り当ての説明
指標名
リージョンごとの 1 分あたりの読み取りリクエスト数(ReadRequestsPerMinutePerProjectPerRegion
リージョンとゾーンの get メソッドと list メソッドの割り当て。
compute.googleapis.com/reads_per_region
リージョンあたりの書き込みリクエスト数(WritesPerMinutePerProjectPerRegion
他の割り当て指標に含まれないリージョンとゾーンの書き込みメソッドの割り当て。
compute.googleapis.com/writes_per_region
リージョンあたりの list usable リクエスト(ListUsablePerMinutePerProjectPerRegion
リージョンとゾーンの ListUsable メソッドの割り当て。
compute.googleapis.com/list_usable_requests_per_region
リージョンごとのフィルタされたリストのコストのオーバーヘッド

フィルタを使用した *.list*.aggregatedList のリージョン メソッドとゾーンメソッドの割り当て。

Google Cloud では、compute.googleapis.com/reads_per_region 指標に対する割り当てに加えて、この指標の割り当て使用量が課金されます。リスト リクエストでフィルタされたリソースが 1 万を超えると、割り当て料金が発生します。この割り当て上限を超えると、Compute Engine API でリスト リクエストが拒否されます。

compute.googleapis.com/filtered_list_cost_overhead_per_region
プロジェクトあたりのレート(ListRequestsFilterCostOverheadPerMinutePerProjectPerRegion): 1 リージョンあたり毎分 75 万個のリソースがリスト リクエストから除外されます。割り当ては 1 万リソースごとに課金されるため、 Google Cloud コンソールでこの割り当て上限をクエリすると、上限は 75(750k/10k)と表示されます。
1 リージョン 1 分あたりのリクエスト数(RequestsPerMinutePerProjectPerRegion

すべてのリージョン読み取り / 書き込みリクエストの割り当て。

compute.googleapis.com/requests_per_region

リージョン メソッドの以前の API 割り当て

次の表に、リージョン メソッドとゾーンメソッドのすべての Compute Engine API 割り当てを示します。

割り当て
割り当ての説明
指標名
クエリ(QueriesPerMinutePerRegion
Compute Engine リソースを作成、変更、削除するリージョン メソッドとゾーンメソッド用の割り当て。たとえば、instances.insertdisks.updateinstances.delete の各メソッドです。

次の getlistpatch メソッドでも、この default_per_region 指標が使用されます。

  • projects.listXpnHosts
  • instances.getScreenshot
  • instances.getGuestAttributes
  • instances.getShieldedInstanceIdentity
  • instances.getEffectiveFirewalls
  • projects.listXpnHosts
  • instanceGroupManagers.listManagedInstances
  • instanceGroupManagers.listErrors
  • instanceGroupManagers.listPerInstanceConfigs
  • regionInstanceGroupManagers.listManagedInstances
  • regionInstanceGroupManagers.listErrors
  • regionInstanceGroupManagers.listPerInstanceConfigs
  • resourcePolicies.patch
compute.googleapis.com/default_per_region
読み取りリクエスト(以前のバージョン)(ReadRequestsPerMinutePerRegion
リージョンとゾーンの get メソッド(autoscalers.getdisks.getinstances.getmachineTypes.get など)の割り当て。
compute.googleapis.com/read_requests_per_region
リスト リクエスト(ListRequestsPerMinutePerRegion
リージョンとゾーンの list メソッド(autoscalers.listdisks.listinstances.listmachineTypes.list など)の割り当て。
compute.googleapis.com/list_requests_per_region
フィルタされたリストのコストのオーバーヘッド

フィルタを使用した *.list メソッドと *.aggregatedList メソッド用の割り当て。

Google Cloud では、compute.googleapis.com/list_requests_per_region 指標と compute.googleapis.com/heavy_weight_read_requests_per_region 指標に対する割り当てに加えて、この指標の割り当て使用量が課金されます。リスト リクエストでフィルタされたリソースが 1 万を超えると、割り当て料金が発生します。この割り当て上限を超えると、Compute Engine API でリスト リクエストが拒否されます。

compute.googleapis.com/filtered_list_cost_overhead_per_region
プロジェクトあたりのレート(ListRequestsFilterCostOverheadPerMinutePerProjectPerRegion): 1 リージョンあたり毎分 75 万個のリソースがリスト リクエストから除外されます。割り当ては 1 万リソースごとに課金されるため、 Google Cloud コンソールでこの割り当て上限をクエリすると、上限は 75(750k/10k)と表示されます。
オペレーション読み取りリクエスト(OperationReadRequestsPerMinutePerRegion
regionOperations.get メソッドと zoneOperations.get メソッドの割り当て。
compute.googleapis.com/operation_read_requests_per_region
リージョンごとのグローバル リソースのミューテーション リクエスト(GlobalResourceWriteRequestsPerMinutePerProjectPerRegion
disks.createSnapshot メソッドと regionDisks.createSnapshot メソッドの割り当て。
compute.googleapis.com/global_resource_write_requests_per_region
インスタンスのシリアルポート出力取得リクエスト(GetSerialPortOutputRequestsPerMinutePerProjectPerRegion
instances.getSerialPortOutput メソッドの割り当て。
compute.googleapis.com/get_serial_port_output_requests_per_region
大量の読み取りリクエスト(HeavyWeightReadRequestsPerMinutePerRegion
regionOperations.waitzoneOperations.waitregionNetworkFirewallPolicies.getEffectiveFirewalls の各メソッドの割り当て。
compute.googleapis.com/heavy_weight_read_requests_per_region
リージョンあたりの大量のミューテーション リクエスト(HeavyWeightWriteRequestsPerMinutePerProjectPerRegion
interconnectAttachments リソースの patchdeleteinsert の各メソッドの割り当てと networks.updatePeering メソッドの割り当て。
compute.googleapis.com/heavy_weight_write_requests_per_region
インスタンスのシミュレート メンテナンス イベント リクエスト(SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion
instances.simulateMaintenanceEvent メソッドの割り当て。
compute.googleapis.com/simulate_maintenance_event_requests_per_region
インスタンスのリファラー リスト リクエスト(InstanceListReferrersRequestsPerMinutePerProjectPerRegion
instances.listReferrers メソッドの割り当て。
compute.googleapis.com/instance_list_referrers_requests_per_region
ネットワーク エンドポイントの書き込みリクエスト(NetworkEndpointWriteRequestsPerMinutePerProjectPerRegion
networkEndpointGroups.attachNetworkEndpoints メソッドと networkEndpointGroups.detachNetworkEndpoints メソッドの割り当て。
compute.googleapis.com/network_endpoint_write_requests_per_region
ネットワーク エンドポイント リスト リクエスト(NetworkEndpointListRequestsPerMinutePerProjectPerRegion
networkEndpointGroups.listNetworkEndpoints メソッドの割り当て。
compute.googleapis.com/network_endpoint_list_requests_per_region
リージョン ネットワーク エンドポイントの書き込みリクエスト(RegionalNetworkEndpointWriteRequestsPerMinutePerProjectPerRegion
regionNetworkEndpointGroups.attachNetworkEndpoints メソッドと regionNetworkEndpointGroups.detachNetworkEndpoints メソッドの割り当て。
compute.googleapis.com/regional_network_endpoint_write_requests_per_region
リージョン ネットワーク エンドポイント リスト リクエスト(RegionalNetworkEndpointListRequestsPerMinutePerProjectPerRegion
regionNetworkEndpointGroups.listNetworkEndpoints メソッドの割り当て。
compute.googleapis.com/regional_network_endpoint_list_requests_per_region

レートに基づく割り当ての増加をリクエストする

API リクエストの割り当てを増やす必要がある場合は、 Google Cloud コンソールから API 割り当ての引き上げをリクエストできます。手順については、割り当ての調整をリクエストするをご覧ください。

ベスト プラクティス

Compute Engine API のベスト プラクティスに従い、レートに基づく割り当てを維持することで、レートに基づく割り当ての影響を軽減します。

次のステップ