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

グローバル指標のレートに基づく割り当て

次の割り当てグループは、特に指定しない限り、すべてのリソースに適用されます。

割り当てグループ
説明
指標名 デフォルトの割り当て
クエリ
他の割り当て指標に含まれないグローバル ミューテーション メソッドの割り当て。

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

  • networkFirewallPolicies.get
  • projects.getXpnHost
  • projects.getXpnResources
compute.googleapis.com/default プロジェクトあたりの割り当て(defaultPerMinutePerProject): 1,500 リクエスト/分
読み取りリクエスト
グローバル *.get メソッドの割り当て。
compute.googleapis.com/read_requests プロジェクトあたりの割り当て(ReadRequestsPerMinutePerProject): 1,500 リクエスト/分
リクエストの一覧表示
グローバル *.list メソッドの割り当て。
compute.googleapis.com/list_requests プロジェクトあたりの割り当て(ListRequestsPerMinutePerProject): 1,500 リクエスト/分
オペレーション読み取りリクエスト
globalOperations.get メソッドの割り当て。
compute.googleapis.com/operation_read_requests プロジェクトあたりのレート(OperationReadRequestsPerMinutePerProject): 1,500 リクエスト/分
フィルタされたリストのコストのオーバーヘッド

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

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

compute.googleapis.com/filtered_list_cost_overhead プロジェクトあたりのレート(ListRequestsFilterCostOverheadPerMinutePerProject): 1 リージョンあたり毎分 75 万個のリソースがリスト リクエストから除外されます。割り当ては 1 万リソースごとに課金されるため、Google Cloud コンソールでこの割り当て上限をクエリすると、上限は 75(75 万 / 1 万)と表示されます。
グローバル リソースのミューテーション リクエスト
images.deleteimages.deprecateimages.insertimages.setLabelssnapshots.deletesnapshots.insertsnapshots.setLabelsmachineImages.insertmachineImages.delete メソッド用の割り当て。
compute.googleapis.com/global_resource_write_requests プロジェクトあたりのレート(GlobalResourceWriteRequestsPerMinutePerProject): 375 リクエスト/分
重量級ミューテーション リクエスト
interconnectsリソースの patchdeleteinsert の各メソッド用の割り当て。
compute.googleapis.com/heavy_weight_write_requests プロジェクトあたりのレート(HeavyWeightWriteRequestsPerMinutePerProject): 750 リクエスト/分
重量級読み取りリクエスト
*.aggregatedList メソッド用の割り当て。
compute.googleapis.com/heavy_weight_read_requests プロジェクトあたりのレート(HeavyWeightReadRequestsPerMinutePerProject): 750 リクエスト/分

メソッドごとの割り当てがあるグローバル 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 リクエスト/分

リージョン指標のレートに基づく割り当て

リージョン指標を使用するメソッドには、次の割り当てが適用されます。

割り当てグループ
説明
指標名 デフォルトの割り当て
1 リージョン、1 プロジェクトあたりの割り当て
クエリ
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 Queries per minute per region: 1500
読み取りリクエスト
リージョンとゾーンの get メソッド(autoscalers.getdisks.getinstances.getmachineTypes.get など)用の割り当て。
compute.googleapis.com/read_requests_per_region Read requests per minute per region: 1500
リスト リクエスト
リージョンとゾーンの list メソッド(autoscalers.listdisks.listinstances.listmachineTypes.list など)用の割り当て。
compute.googleapis.com/list_requests_per_region List requests per minute per region: 1500
フィルタされたリストのコストのオーバーヘッド

フィルタを使用した *.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(75 万 / 1 万)と表示されます。
オペレーション読み取りリクエスト
regionOperations.get メソッドと zoneOperations.get メソッド用の割り当て。
compute.googleapis.com/operation_read_requests_per_region Operation read requests per minute per region: 1500
リージョンごとのグローバル リソースのミューテーション リクエスト
disks.createSnapshot メソッドと regionDisks.createSnapshot メソッド用の割り当て。
compute.googleapis.com/global_resource_write_requests_per_region GlobalResourceWriteRequestsPerMinutePerProjectPerRegion: 375
インスタンスのシリアルポート出力取得リクエスト
instances.getSerialPortOutput メソッド用の割り当て。
compute.googleapis.com/get_serial_port_output_requests_per_region GetSerialPortOutputRequestsPerMinutePerProjectPerRegion: 1500
重い読み取りリクエスト
regionOperations.waitzoneOperations.waitregionNetworkFirewallPolicies.getEffectiveFirewalls の各メソッドの割り当て。
compute.googleapis.com/heavy_weight_read_requests_per_region Heavyweight read requests per minute: 750
リージョンあたりの重量級ミューテーション リクエスト
interconnectAttachmentsリソースのpatchdeleteinsert の各メソッド用の割り当ておよび networks.updatePeering メソッド用の割り当て。
compute.googleapis.com/heavy_weight_write_requests_per_region HeavyWeightWriteRequestsPerMinutePerProjectPerRegion: 750
インスタンスのシミュレート メンテナンス イベント リクエスト
instances.simulateMaintenanceEvent メソッド用の割り当て。
compute.googleapis.com/simulate_maintenance_event_requests_per_region SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion: 150
インスタンスのリスト リファラー リクエスト
instances.listReferrers メソッド用の割り当て。
compute.googleapis.com/instance_list_referrers_requests_per_region InstanceListReferrersRequestsPerMinutePerProjectPerRegion: 3000
ネットワーク エンドポイントの書き込みリクエスト
networkEndpointGroups.attachNetworkEndpoints メソッドと networkEndpointGroups.detachNetworkEndpoints メソッド用の割り当て。
compute.googleapis.com/network_endpoint_write_requests_per_region NetworkEndpointWriteRequestsPerMinutePerProjectPerRegion: 1500
ネットワーク エンドポイント リスト リクエスト
networkEndpointGroups.listNetworkEndpoints メソッド用の割り当て。
compute.googleapis.com/network_endpoint_list_requests_per_region NetworkEndpointListRequestsPerMinutePerProjectPerRegion: 1500
リージョン ネットワーク エンドポイントの書き込みリクエスト
regionNetworkEndpointGroups.attachNetworkEndpoints メソッドと regionNetworkEndpointGroups.detachNetworkEndpoints メソッド用の割り当て。
compute.googleapis.com/regional_network_endpoint_write_requests_per_region RegionalNetworkEndpointWriteRequestsPerMinutePerProjectPerRegion: 150
リージョン ネットワーク エンドポイント リスト リクエスト
regionNetworkEndpointGroups.listNetworkEndpoints メソッド用の割り当て。
compute.googleapis.com/regional_network_endpoint_list_requests_per_region RegionalNetworkEndpointListRequestsPerMinutePerProjectPerRegion: 1500

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

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

おすすめの方法

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

次のステップ