Compute Engine の同時実行オペレーションの割り当て


このドキュメントでは、Compute Engine の同時実行オペレーションの割り当てについて説明します。

同時実行オペレーションの割り当て

同時実行オペレーションの割り当てでは、任意の時点で発生する可能性がある処理中のオペレーションまたは同時実行オペレーションの数を定義します。Compute Engine リソースの作成、変更、削除を行う API リクエストは、任意の時点での処理中のオペレーションの合計数がそのオペレーションで指定されている上限を超えないように、同時実行オペレーション上限チェックの対象となります。

同時オペレーションの上限超過エラー

プロジェクトが処理中のオペレーションに対して同時実行オペレーションの上限を超えると、原因 rateLimitExceeded を使用して 403 エラーを受け取ります。

エラーの API レスポンスは、次のようになります。

    "error": {
      "code": 403,
      "message": "Rate Limit Exceeded",
      "errors": [
        {
          "message": "Rate Limit Exceeded",
          "domain": "usageLimits",
          "reason": "rateLimitExceeded",
        ...
        ...
        }
      ],
      "details": [
        {
          "@type": "type.googleapis.com/google.rpc.ErrorInfo",
          "reason": "CONCURRENT_OPERATIONS_QUOTA_EXCEEDED",
          "domain": "compute.googleapis.com",
          "metadatas": {
            "containerType": "PROJECT",
            "containerId": "PROJECT_ID",
            "quotaMetric": "QUOTA_METRIC",
            "quotaLimit": "QUOTA_LIMIT",
            "operationType": "OPERATION_TYPE",
            "location": "global | REGION"
          }
        },
        {
          "@type": "type.googleapis.com/google.rpc.Help",
          "links": [
            {
              "description": "Concurrent operations quota documentation.",
              "url": "https://cloud.google.com/compute/operations-quota#concurrent_operation_limits"
            }
          ]
        },
      ...
      ... 

エラーの詳細には次の値が含まれます。

  • PROJECT_ID: 割り当てが上限を超えるプロジェクトの ID。

  • QUOTA_METRIC: 上限を超える同時実行割り当ての指標。これは次のいずれかになります。

    • compute.googleapis.com/global_concurrent_operations
    • compute.googleapis.com/regional_concurrent_operations
  • QUOTA_LIMIT: 同時割り当ての上限名。これは次のいずれかになります。

    • GlobalConcurrentOperationsPerProject
    • GlobalConcurrentOperationsPerProjectOperationType
    • RegionalConcurrentOperationsPerProject
    • RegionalConcurrentOperationsPerProjectOperationType
  • OPERATION_TYPE: 割り当てが上限を超えるグローバル オペレーションまたはリージョン オペレーション。オペレーションのリストについては、同時オペレーション割り当てグループをご覧ください。

  • location は、以下のいずれかになります。

    • global: グローバル オペレーション割り当ての上限を超過することを指定します。
    • REGION: オペレーション割り当ての上限を超過したリージョンを指定します。

詳細なエラーログは、API レスポンスからのみ返されます。ログ エクスプローラのエラーは次のようになります。

   "protoPayload":{
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "Rate Limit Exceeded"
    }
    "serviceName": "compute.googleapis.com",
    "methodName": "METHOD_NAME",
    ...
    ...
    "response": {
      "error": {
        "message": "Rate Limit Exceeded",
        "code": 403,
        "errors": [
          {
            "message": "Rate Limit Exceeded",
            "reason": "rateLimitExceeded",
            "domain": "usageLimits"
          }
        ]
      },
      "@type": "type.googleapis.com/error"
    },
    ...
    ... 

エラーの METHOD_NAME は、レート制限を超えた API メソッドを表します。例: v1.compute.instances.stop

同時実行オペレーションの割り当てグループ

このセクションでは、処理中のオペレーションまたは同時実行オペレーションにおけるさまざまな Compute Engine の上限について説明します。

グローバル オペレーションの割り当て

同時実行グローバル オペレーションでは、プロジェクトごとのオペレーション タイプに指定されたグローバル上限が使用されます。次の表に、処理中のオペレーションのグローバル割り当てと、対応する指標を示します。

グローバル オペレーションの割り当ては、Google Cloud コンソール、Google Cloud CLI、Service Usage API を使用して表示できます。詳細については、同時実行オペレーションの割り当てと上限を表示するをご覧ください。

割り当て名
説明
指標名 この割り当てを使用するメソッド
Concurrent global operations per project
プロジェクトの同時実行グローバル オペレーションの合計数を制限します。

この割り当ては、Google Cloud コンソールで確認できます

compute.googleapis.com/global_concurrent_operations

すべてのグローバル メソッド

HTTP リクエスト URL には、これらのメソッドの global が含まれます。たとえば、networks.insert メソッドは次のようになります。
POST /compute/v1/projects/{project}/global/networks

Concurrent global operations per project operation type
オペレーション タイプごとに、プロジェクトごとの同時実行オペレーションの数を制限します。

この割り当ては、Google Cloud コンソールで確認できます

compute.googleapis.com/global_concurrent_operations

すべてのグローバル メソッド

デフォルトの同時実行オペレーションの割り当て数は、プロジェクトごとに 500 処理中オペレーションです。ただし、次のメソッドについてはデフォルトの上限が異なります。

globaladdresses.move

firewalls.delete

firewalls.insert

images.delete

images.deprecate

images.insert

images.patch

images.setLabels

images.setIamPolicy

licenses.insert

machineimages.delete

machineimages.insert

networks.addPeering

networks.removePeering

networks.updatePeering

projects.setCommonInstaneMetadata

publicAdvertisedPrefixes.delete

publicAdvertisedPrefixes.insert

routes.delete

routes.insert

securityPolicies.patchRule

snapshots.delete

snapshots.insert

snapshots.setLabels

snapshots.setIamPolicy

snapshotSettings.patch

リージョン オペレーションの割り当て

同時実行リージョン オペレーションでは、特定のリージョンのプロジェクトごとにオペレーション タイプに指定されたリージョン上限が使用されます。

次の表に、処理中のオペレーションのリージョン割り当てと、対応する指標を示します。

リージョン オペレーションの割り当ては、Google Cloud コンソール、Google Cloud CLI、Service Usage API を使用して表示できます。詳細については、同時実行オペレーションの割り当てと上限を表示するをご覧ください。

割り当て名
説明
指標名 この割り当てを使用するメソッド
Concurrent regional operations per project
プロジェクトの同時実行リージョン オペレーションの合計数を制限します。

この割り当ては、Google Cloud コンソールで確認できます

compute.googleapis.com/regional_concurrent_operations

すべてのリージョン メソッド

HTTP リクエスト URL には、これらのメソッドの regions または zones が含まれます。
たとえば、instances.insert メソッドは次のようになります。
POST /compute/v1/projects/{project}/zones/{zone}/instances

Concurrent regional operations per project operation type
オペレーション タイプごとに、プロジェクトごとのリージョン オペレーションの同時実行数を制限します。

この割り当ては、Google Cloud コンソールで確認できます

compute.googleapis.com/regional_concurrent_operations

すべてのリージョン メソッド

デフォルトの同時実行オペレーションの割り当て数は、プロジェクトごと、リージョンごとに 500 処理中オペレーションです。ただし、次のメソッドにはデフォルトの上限が異なります。

addresses.move

disks.insert

instances.delete

instances.insert

instances.simulateMaintenanceEvent

networkEndpointGroups.attachNetworkEndpoints

networkEndpointGroups.detachNetworkEndpoints

publicDelegatedPrefixes.delete

publicDelegatedPrefixes.insert

同時実行オペレーションの割り当てと上限を表示する

プロジェクトの割り当ての使用状況と上限を表示する手順は次のとおりです。

コンソール

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

    [割り当て] に移動

    [割り当て] ページ。プロジェクトのすべての割り当て使用量と上限が一覧表示されます。デフォルトでは、最も使用されている割り当てが最初に表示されるようにリストが並べ替えられます。これは、超過する恐れのある上限を確認するのに役立ちます。

  2. リストをフィルタリングし、特定の割り当ての使用量と上限を表示するには、[フィルタ] フィールドで [割り当て] または [指標] を選択します。

    たとえば、割り当て Concurrent global operations per project operation type を選択すると、オペレーション タイプごとのグローバル メソッドの割り当て使用量が表示されます。

    特定のオペレーションの割り当てをフィルタするには、フィルタクエリに [ディメンション] を追加し、[operation_type] を選択します。たとえば、firewalls_insert を選択すると、firewalls.insert オペレーションの割り当て使用量と上限が表示されます。

gcloud

Google Cloud CLI を使用して、同時実行オペレーションの割り当ての使用量と上限を表示できます。

この方法を使用するには、アルファ版コマンド コンポーネントがインストールされていることを確認してください。Cloud Shell を使用して Google Cloud を操作している場合は、Google Cloud CLI がインストールされています。

割り当てを表示するには、次のコマンドを使用します。

gcloud alpha services quota list \
    --service=compute.googleapis.com \
    --consumer=projects/PROJECT_ID

PROJECT_ID は、割り当てを表示するプロジェクトの ID に置き換えます。

おすすめの方法

次のチェックリストは、同時実行オペレーションの上限が不十分なことによるエラーを減らすためのベスト プラクティスをまとめたものです。

次のステップ