このドキュメントでは、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 に対して行えるリクエストの数は、次の表に示すように割り当てグループによって定義されます。各グループは個別にカウントされるため、グループごとに割り当て上限まで同時に使用できます。
グローバル指標のレートに基づく割り当て
次の割り当てグループは、特に指定しない限り、すべてのリソースに適用されます。
割り当てグループ 説明 |
指標名 | デフォルトの割り当て |
---|---|---|
クエリ 他の割り当て指標に含まれないグローバル ミューテーション メソッドの割り当て。 次の
|
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 リクエスト/分 |
フィルタされたリストのコストのオーバーヘッド フィルタを使用した Google Cloud では、 |
compute.googleapis.com/filtered_list_cost_overhead |
プロジェクトあたりのレート(ListRequestsFilterCostOverheadPerMinutePerProject ): 1 リージョンあたり毎分 75 万個のリソースがリスト リクエストから除外されます。割り当ては 1 万リソースごとに課金されるため、Google Cloud コンソールでこの割り当て上限をクエリすると、上限は 75(75 万 / 1 万)と表示されます。 |
グローバル リソースのミューテーション リクエスト images.delete 、images.deprecate 、images.insert 、images.setLabels 、snapshots.delete 、snapshots.insert 、snapshots.setLabels 、machineImages.insert 、machineImages.delete メソッド用の割り当て。 |
compute.googleapis.com/global_resource_write_requests |
プロジェクトあたりのレート(GlobalResourceWriteRequestsPerMinutePerProject ): 375 リクエスト/分 |
重量級ミューテーション リクエスト interconnects リソースの patch 、delete 、insert の各メソッド用の割り当て。 |
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 |
|
プロジェクト セットの共通インスタンス メタデータ リクエスト projects.setCommonInstanceMetadata メソッド用の割り当て。 |
compute.googleapis.com/project_set_common_instance_metadata_requests |
プロジェクトあたりの割り当て(ProjectSetCommonInstanceMetadataRequestsPerMinutePerProject ): 36 リクエスト/分 |
リージョン指標のレートに基づく割り当て
リージョン指標を使用するメソッドには、次の割り当てが適用されます。
割り当てグループ 説明 |
指標名 | デフォルトの割り当て 1 リージョン、1 プロジェクトあたりの割り当て |
---|---|---|
クエリ Compute Engine リソースを作成、変更、削除するリージョン メソッドとゾーンメソッド用の割り当て。たとえば、 instances.insert 、disks.update 、instances.delete の各メソッドです。次の
|
compute.googleapis.com/default_per_region |
Queries per minute per region : 1500 |
読み取りリクエスト リージョンとゾーンの get メソッド(autoscalers.get 、disks.get 、instances.get 、machineTypes.get など)用の割り当て。 |
compute.googleapis.com/read_requests_per_region |
Read requests per minute per region : 1500 |
リスト リクエスト リージョンとゾーンの list メソッド(autoscalers.list 、disks.list 、instances.list 、machineTypes.list など)用の割り当て。 |
compute.googleapis.com/list_requests_per_region |
List requests per minute per region : 1500 |
フィルタされたリストのコストのオーバーヘッド フィルタを使用した Google Cloud では、 |
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.wait 、zoneOperations.wait 、regionNetworkFirewallPolicies.getEffectiveFirewalls の各メソッドの割り当て。 |
compute.googleapis.com/heavy_weight_read_requests_per_region |
Heavyweight read requests per minute : 750 |
リージョンあたりの重量級ミューテーション リクエスト interconnectAttachments リソースのpatch 、delete 、insert の各メソッド用の割り当ておよび 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 のベスト プラクティスに従い、レートに基づく割り当てを維持することで、レートに基づく割り当ての影響を軽減します。
次のステップ
- Monitoring API の使用状況について学習する。
- 割り当てアラートの設定方法を確認する。