MIG でサイズ変更リクエストを表示、キャンセル、削除する


このドキュメントでは、マネージド インスタンス グループ(MIG)でサイズ変更リクエストを作成した後に、次の操作を行う方法について説明します。

  • MIG でサイズ変更リクエストを表示して、状態のモニタリングやトラブルシューティングを行う。

  • サイズ変更リクエストをキャンセルして、MIG がリクエストされた数の仮想マシン(VM)インスタンスを作成しないようにする。

  • サイズ変更リクエストを削除する。

準備

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

必要なロール

MIG でサイズ変更リクエストを表示、キャンセル、削除するために必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)roles/compute.instanceAdmin.v1)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。

この事前定義ロールには、MIG のサイズ変更リクエストを表示、キャンセル、削除するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

MIG でサイズ変更リクエストを表示、キャンセル、削除するには、次の権限が必要です。

  • MIG でサイズ変更リクエストをキャンセルまたは削除する: compute.instanceGroupManagers.update
  • MIG 内のサイズ変更リクエストのリストを表示する: compute.instanceGroupManagers.list
  • サイズ変更リクエストの詳細を表示する: compute.instanceGroupManagers.get

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

サイズ変更リクエストを表示する

サイズ変更リクエストで表示する詳細に基づいて、次のいずれかの方法を使用します。

MIG 内のサイズ変更リクエストのリストを表示する

MIG 内のすべてのサイズ変更リクエストのリストと、状態、リクエストされた VM の数、VM の実行期間などの詳細を表示できます。

コンソール

MIG 内のすべてのサイズ変更リクエストのリストを表示するには、次の操作を行います。

  1. Google Cloud コンソールの [インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

  2. [名前] 列で、サイズ変更リクエストを含む MIG の名前をクリックします。

    MIG の詳細ページが開きます。

  3. [サイズ変更リクエスト] 行で、 [サイズ変更リクエストを編集] をクリックします。

    [サイズ変更リクエスト] ペインが表示されます。

gcloud

MIG のサイズ変更リクエストのリストを表示するには、beta instance-groups managed resize-requests list コマンドを使用します。

gcloud beta compute instance-groups managed resize-requests list INSTANCE_GROUP_NAME \
    --zone=ZONE

次のように置き換えます。

  • INSTANCE_GROUP_NAME: サイズ変更リクエストが承認、成功、キャンセル、または失敗した既存のゾーン MIG の名前。

  • ZONE: MIG が配置されているゾーン。

出力は次のようになります。

NAME: rr-01
LOCATION: us-central1-a
SCOPE: zone
RESIZE_BY: 5
STATE: SUCCEEDED
REQUESTED_RUN_DURATION: P1D

NAME: rr-02
LOCATION: us-central1-a
SCOPE: zone
RESIZE_BY: 10
STATE: ACCEPTED
REQUESTED_RUN_DURATION: P3D

REST

ゾーン MIG 内のすべてのサイズ変更リクエストのリストを表示するには、beta.instanceGroupManagerResizeRequests.list メソッドGET リクエストを送信します。

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests

次のように置き換えます。

  • PROJECT_ID: サイズ変更リクエストが承認、成功、キャンセル、または失敗した既存のゾーン MIG が存在するプロジェクトの ID。

  • ZONE: MIG が配置されているゾーン。

  • INSTANCE_GROUP_NAME: サイズ変更リクエストが承認、成功、キャンセル、または失敗した既存のゾーン MIG の名前。

出力は次のようになります。

{
  "kind": "compute#instanceGroupManagerResizeRequestList",
  "id": "projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests",
  "items": [
    {
      "kind": "compute#instanceGroupManagerResizeRequest",
      "id": "4247139565532196982",
      "creationTimestamp": "2024-01-08T07:51:53.034-08:00",
      "name": "rr-01",
      "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a",
      "count": 5,
      "resizeBy": 5,
      "requestedRunDuration": {
        "seconds": "86400",
        "nanos": 0
      },
      "state": "SUCCEEDED",
      "status": {},
      "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-01",
      "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982"
    },
    {
      "kind": "compute#instanceGroupManagerResizeRequest",
      "id": "8095866098849525652",
      "creationTimestamp": "2024-01-11T08:04:11.851-08:00",
      "name": "rr-02",
      "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a",
      "count": 10,
      "resizeBy": 10,
      "requestedRunDuration": {
        "seconds": "259200",
        "nanos": 0
      },
      "state": "ACCEPTED",
      "status": {},
      "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-02",
      "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/8095866098849525652"
    }
  ],
  "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests"
}

サイズ変更リクエストの詳細を表示する

サイズ変更リクエストの詳細を表示して構成を確認できます。リクエストがまだ成功していない場合は、必要に応じてトラブルシューティングを行います。

ACCEPTED)サイズ変更リクエストが成功しない理由を把握するには、最後の lastAttempt.error.errors.code フィールドを確認します。このフィールドは Compute Engine により次のいずれかの値に設定されます。

  • ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS: リクエストされたリソースが一時的に利用できない状態です。

  • QUOTA_EXCEEDED: プロジェクトはリクエストされたリソースの割り当てが不足しています。プロジェクトの割り当てを増やすには、割り当ての増加をリクエストするをご覧ください。

gcloud

ゾーン MIG のサイズ変更リクエストの詳細を表示するには、beta instance-groups managed resize-requests describe コマンドを使用します。

gcloud beta compute instance-groups managed resize-requests describe INSTANCE_GROUP_NAME \
    --resize-request=RESIZE_REQUEST_NAME \
    --zone=ZONE

次のように置き換えます。

  • INSTANCE_GROUP_NAME: サイズ変更リクエストが存在する既存のゾーン MIG の名前。

  • RESIZE_REQUEST_NAME: 詳細を表示する既存のサイズ変更リクエストの名前。

  • ZONE: MIG が配置されているゾーン。

出力は次のようになります。

count: 10
creationTimestamp: '2024-01-10T07:51:53.034-08:00'
id: '4247139565532196982'
kind: compute#instanceGroupManagerResizeRequest
name: example-request
requestedRunDuration:
  nanos: 0
  seconds: '6000'
resizeBy: 10
selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request
selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982
state: ACCEPTED
status:
  lastAttempt:
    error:
      errors:
      - code: ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
        message: There are currently not enough resources available to fulfill the request.
      - code: QUOTA_EXCEEDED
        message: Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1.
zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a

REST

MIG でサイズ変更リクエストの詳細を表示するには、beta.instanceGroupManagerResizeRequests.get メソッドGET リクエストを送信します。

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME

次のように置き換えます。

  • PROJECT_ID: ゾーン MIG が配置されているプロジェクトの ID。

  • ZONE: MIG が配置されているゾーン。

  • INSTANCE_GROUP_NAME: サイズ変更リクエストが存在する既存のゾーン MIG の名前。

  • RESIZE_REQUEST_NAME: 詳細を表示する既存のサイズ変更リクエストの名前。

出力は次のようになります。

{
  "kind": "compute#instanceGroupManagerResizeRequest",
  "id": "4247139565532196982",
  "creationTimestamp": "2024-01-10T07:51:53.034-08:00",
  "name": "example-request",
  "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a",
  "count": 10,
  "resizeBy": 10,
  "requestedRunDuration": {
    "seconds": "6000",
    "nanos": 0
  },
  "state": "ACCEPTED",
  "status": {
    "lastAttempt": {
      "error": {
        "errors": [
          {
            "code": "ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS",
            "message": "There are currently not enough resources available to fulfill the request.",
          },
          {
            "code": "QUOTA_EXCEEDED",
            "message": "Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1."
          }
        ]
      }
    }
  },
  "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request",
  "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982"
}

MIG でサイズ変更リクエストをキャンセルする

MIG でサイズ変更リクエストをキャンセルして、MIG がリクエストされた数の VM の作成を試行しないようにできます。キャンセルできるのは、承諾済み(ACCEPTED)のサイズ変更リクエストのみです。キャンセルしたサイズ変更リクエストは削除するか、または Compute Engine によって 14 日後に自動的に削除されます。

一度に複数のサイズ変更リクエストをキャンセルするには、Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

ゾーン MIG でサイズ変更リクエストをキャンセルするには、次のようにします。

  1. Google Cloud コンソールの [インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

  2. [名前] 列で、サイズ変更リクエストを含む MIG の名前をクリックします。

    MIG の詳細ページが開きます。

  3. [サイズ変更リクエスト] 行で、 [サイズ変更リクエストを編集] をクリックします。

    [サイズ変更リクエスト] ペインが表示されます。

  4. キャンセルするサイズ変更リクエストを選択します。

  5. [ キャンセル] をクリックしてから、[確認] をクリックします。

gcloud

ゾーン MIG でサイズ変更リクエストをキャンセルするには、beta instance-groups managed resize-requests cancel コマンドを使用します。

gcloud beta compute instance-groups managed resize-requests cancel INSTANCE_GROUP_NAME \
    --resize-requests=RESIZE_REQUEST_NAMES \
    --zone=ZONE

次のように置き換えます。

  • INSTANCE_GROUP_NAME: 承認されたサイズ変更リクエストがある既存のゾーン MIG の名前。

  • RESIZE_REQUEST_NAMES: 指定されたゾーン MIG で許可されたサイズ変更リクエストの名前のカンマ区切りリスト。たとえば、request-1,request-2 を指定します。

  • ZONE: MIG が配置されているゾーン。

REST

ゾーン MIG でサイズ変更リクエストをキャンセルするには、beta.instanceGroupManagerResizeRequests.cancel メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME/cancel

次のように置き換えます。

  • PROJECT_ID: サイズ変更リクエストが受け入れられた既存のゾーン MIG が存在するプロジェクトの ID。

  • ZONE: MIG が配置されているゾーン。

  • INSTANCE_GROUP_NAME: MIG の名前。

  • RESIZE_REQUEST_NAME: キャンセルするサイズ変更リクエストの名前。

MIG でサイズ変更リクエストを削除する

デフォルトでは、Compute Engine は、リクエストの状態を次のいずれかに設定してから 14 日後に、サイズ変更リクエストを自動的に削除します。

  • 成功(SUCCEEDED

  • 失敗(FAILED

  • キャンセル済み(CANCELLED

ただし、このセクションで説明するように、その前に直ちにサイズ変更リクエストを削除できます。

成功したサイズ変更リクエストを削除しても、そのリクエストで作成された VM は削除されません。MIG は、リクエストされた実行期間の終了時にこれらの VM を自動的に削除します。ただし、ジョブの実行が終了して VM が不要になった場合は、VM を削除します。

一度に複数のサイズ変更リクエストを削除するには、Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

ゾーン MIG でサイズ変更リクエストを削除するには、次の操作を行います。

  1. Google Cloud コンソールの [インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

  2. [名前] 列で、サイズ変更リクエストを含む MIG の名前をクリックします。

    MIG の詳細ページが開きます。

  3. [サイズ変更リクエスト] 行で、 [サイズ変更リクエストを編集] をクリックします。

    [サイズ変更リクエスト] ペインが表示されます。

  4. 削除するサイズ変更リクエストを選択します。

  5. [削除] をクリックして、[確認] をクリックします。

gcloud

ゾーン MIG でサイズ変更リクエストを削除するには、beta instance-groups managed resize-requests delete コマンドを使用します。

gcloud beta compute instance-groups managed resize-requests delete INSTANCE_GROUP_NAME \
    --resize-requests=RESIZE_REQUEST_NAMES \
    --zone=ZONE

次のように置き換えます。

  • INSTANCE_GROUP_NAME: サイズ変更リクエストが成功、失敗、またはキャンセルされた既存のゾーン MIG の名前。

  • RESIZE_REQUEST_NAMES: MIG で削除するサイズ変更リクエストの名前のカンマ区切りリスト。たとえば、request-1,request-2 を指定します。

  • ZONE: MIG が配置されているゾーン。

REST

ゾーン MIG でサイズ変更リクエストを削除するには、beta.instanceGroupManagerResizeRequests.delete メソッドDELETE リクエストを送信します。

DELETE https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME

次のように置き換えます。

  • PROJECT_ID: サイズ変更リクエストが成功、失敗、またはキャンセルされた既存のゾーン MIG が存在するプロジェクトの ID。

  • ZONE: MIG が配置されているゾーン。

  • INSTANCE_GROUP_NAME: MIG の名前。

  • RESIZE_REQUEST_NAME: 削除するサイズ変更リクエストの名前。

次のステップ