MIG およびマネージド インスタンスに関する情報の取得

このページに記載されている方法を使用して、マネージド インスタンス グループ(MIG)に関する情報と、各 MIG 内の仮想マシン(VM)インスタンスに関する情報を取得します。

始める前に

MIG に関する情報の取得

たとえば、グループに接続されているポリシーを調べるためや、グループが安定しているのか、または変更が行われている途中なのかを確認するために、グループ自体に関する情報を取得できます。MIG 内の VM インスタンスに関する情報を取得するには、マネージド インスタンスに関する情報の取得をご覧ください。

MIG の一覧表示

マネージド インスタンス グループのリストを取得するには、Consolegcloud ツールAPI のいずれかを使用します。

Console

  1. Google Cloud Console で、[インスタンス グループ] ページに移動します。

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

    既存のインスタンス グループがある場合は、それらのグループ(マネージド インスタンス グループと非マネージド インスタンス グループの両方)がこのページに一覧表示されます。

    マネージド インスタンス グループには、[テンプレート] 列に値が示されます。

gcloud

次のコマンドで、プロジェクト内のすべてのマネージド インスタンス グループをリストします。

gcloud compute instance-groups managed list

API

ゾーン内のすべてのマネージド インスタンス グループを一覧表示するには、instanceGroupManagers.list メソッドに対する GET リクエストを作成します。

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers

リージョン(マルチゾーン)マネージド インスタンス グループの場合は、代わりに regionInstanceGroupManagers リソースを使用して、regionInstanceGroupManagers.list とします。

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers

MIG のプロパティの取得

接続されているポリシー(たとえば、自動修復ポリシー)など、特定の MIG に関する情報を取得するには、Consolegcloud ツールAPI のいずれかを使用します。

グループの id を取得する場合は、gcloud ツールまたは API を使用する必要があります。

Console

  1. Google Cloud Console で、[インスタンス グループ] ページに移動します。

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

    既存のインスタンス グループがある場合は、このページにそれらのグループのリストが表示されます。このページには、非マネージド インスタンス グループも表示されます。

  2. リストの [名前] 列で、情報を調べるインスタンス グループの名前をクリックします。ページが開き、インスタンス グループ プロパティと、グループに含まれるインスタンスのリストが表示されます。

gcloud

特定のグループの情報を取得するには、次のコマンドを実行します。

gcloud compute instance-groups managed describe instance-group \
    [--zone zone | --region region]

このコマンドは、接続されているポリシーなどの、グループの詳細を返します。

API

特定のグループに関する情報を取得するには、instanceGroupManagers.get メソッドに対する GET リクエストを作成し、特定のマネージド インスタンス グループの名前をリクエストに含めます。

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group

リージョン(マルチゾーン)マネージド インスタンス グループの場合は、代わりに regionInstanceGroupManagers リソースを使用し、regionInstanceGroupManagers.list および regionInstanceGroupManagers.get とします。

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group

レスポンスには、自動スケーリング ポリシー以外の接続されているポリシーを含む、グループの詳細が含まれます。

オートスケーラーに関する情報を取得するには、autoscalers.get メソッドに対する GET リクエストを作成し、特定のマネージド インスタンス グループの名前をリクエストに含めます。

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/autoscalers/instance-group

リージョン(マルチゾーン)マネージド インスタンス グループの場合は、代わりに regionAutoscalers リソースを使用し、regionAutoscalers.get とします。

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/regionAutoscalers/instance-group

MIG が安定しているかどうかの確認

マネージド インスタンス グループ内のインスタンスは、いくつかのコマンドやリクエストによって作成、削除、変更されます。これらのオペレーションでは、インスタンスの作成、削除、更新のアクションがグループでスケジュールされると DONE が返されます。しかし、それらのアクションが完了するまでは、グループ内のインスタンスの作成、削除、更新が完了したわけではありません。グループのステータスを確認するか、それらのインスタンスのステータスを確認する必要があります。

マネージド インスタンス グループが安定しているのは、なんらかの変更が行われているインスタンスがマネージド インスタンス グループ内に 1 つもなく、インスタンスに対してスケジュールされている将来の変更がなく、グループ自体も変更途中でない場合です。

グループ内のすべてのインスタンスが正常に機能していることが前提の依存関係がある場合、そのグループが安定しているかどうかの確認が必要になることがあります。たとえば、ジョブのスケジュール、トラフィックの送信、キー範囲の割り当てを開始する前に、すべての VM が正常に稼働していることを確認します。

マネージド インスタンス グループが正常に稼働していることを確認するには、status.isStable フィールドの値を調べます。

gcloud

インスタンス グループ describe コマンドを使用します。

gcloud compute instance-groups managed describe instance-group-name \
    [--zone zone | --region region]

gcloud ツールは、status.isStable フィールドを含むインスタンス グループに関する詳細情報を返します。

グループが安定するまでスクリプトを一時停止するには、wait-until コマンドを使用し、--stable フラグを指定します。例:

gcloud beta compute instance-groups managed wait-until instance-group-name \
    --stable \
    [--zone zone | --region region]
Waiting for group to become stable, current operations: deleting: 4
Waiting for group to become stable, current operations: deleting: 4
...
Group is stable

status.isStable がグループに true を設定した後に、このコマンドの結果が返されます。

API

ゾーン MIG の場合は、POST リクエストを instanceGroupManagers.get メソッドに対して作成します。

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/get

リージョン マネージド インスタンス グループの場合は、zones/zoneregions/region に置き換えます。

POST https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group-name/get

API は、status.isStable フィールドを含めて、インスタンス グループの詳細情報を返します。

status.isStablefalse の場合、これは変更がアクティブか、保留中か、またはマネージド インスタンス グループ自体が変更中であることを意味します。

status.isStabletrue の場合は、次のことを意味します。

  • なんらかの変更が行われているインスタンスがマネージド インスタンス グループ内に 1 つもなく、すべてのインスタンスの currentActionNONE となっている。
  • 変更が保留中になっているインスタンスがマネージド インスタンス グループ内に 1 つもない。
  • マネージド インスタンス グループ自体も変更されていない。

マネージド インスタンス グループの変更はさまざまな原因で発生します。例:

  • 新しいインスタンス テンプレートのロールアウトをリクエストした。
  • グループ内のインスタンスの作成、削除、サイズ変更、または更新をリクエストした。
  • オートスケーラーからグループのサイズ変更がリクエストされた。
  • 自動修復ツールリソースが、マネージド インスタンス グループ内の正常な状態でないインスタンスを少なくとも 1 つ置き換えた。
  • リージョン マネージド インスタンス グループ内の一部のインスタンスが再配布された。

すべてのアクションが終了すると、そのマネージド インスタンス グループの status.isStabletrue に再び設定されます。

個々の VM インスタンスについては、マネージド インスタンスのステータスの確認をご覧ください。

自動修復オペレーション履歴の表示

自動修復を構成している場合は、過去の自動修復イベントを表示できます。

ローリング アップデートのモニタリング

ローリング アップデートを開始しており、アップデートが完了したかどうかを確認するには、アップデートのモニタリングをご覧ください。

MIG 内のマネージド VM インスタンスに関する情報の取得

MIG のマネージド インスタンスの一覧表示

グループ内のマネージド インスタンスのリストと、そのステータスとテンプレートを取得するには、Consolegcloud ツールAPI のいずれかを使用します。

Console

  1. Google Cloud Console で、[インスタンス グループ] ページに移動します。

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

    既存のインスタンス グループがある場合は、このページにそれらのグループのリストが表示されます。このページには、非マネージド インスタンス グループも表示されます。

  2. リストの [名前] 列で、情報を調べるインスタンス グループの名前をクリックします。ページが開き、インスタンス グループ プロパティと、グループに含まれるインスタンスのリストが表示されます。

gcloud

gcloud ツールの list-instances サブコマンドを使用します。

gcloud compute instance-groups managed list-instances instance-group \
    [--zone zone | --region region]

このコマンドは、インスタンスのリストと、現在のステータス、インスタンス テンプレート、最後のエラーなどのインスタンスの詳細を返します。

API

ゾーン MIG の場合は、instanceGroupManagers.listManagedInstances メソッドに対する GET リクエストを作成し、特定のマネージド インスタンス グループの名前をリクエストに含めます。

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group

リージョン(マルチゾーン)マネージド インスタンス グループの場合は、代わりに regionInstanceGroupManagers リソースを使用して、regionInstanceGroupManagers.list とします。

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group

レスポンスには、インスタンスのリストと、現在のステータスやインスタンス テンプレートなどのインスタンスの詳細が含まれます。

マネージド インスタンスのステータスの確認

マネージド インスタンス グループ内のインスタンスは、いくつかのコマンドやリクエストによって作成、削除、変更されます。これらのオペレーションでは、インスタンスの作成、削除、更新のアクションがグループでスケジュールされると DONE が返されます。しかし、それらのアクションが完了するまでは、グループ内のインスタンスの作成、削除、更新が完了したわけではありません。インスタンスのステータスを確認するか、グループ自体のステータスを確認する必要があります。

実行されている currentAction とマネージド インスタンス グループの各インスタンスの status を確認するには、gcloud コマンドライン ツールまたは API を使用します。

gcloud

gcloud compute instance-groups managed list-instances instance-group-name \
[--filter="zone:(zone)" | --filter="region:(region)"]

gcloud は、インスタンス グループ内のインスタンスのリスト、インスタンスのステータス、現在のアクションを返します。例:

NAME               ZONE           STATUS    ACTION    INSTANCE_TEMPLATE  VERSION_NAME  LAST_ERROR
vm-instances-9pk4  us-central1-f            CREATING  my-new-template
vm-instances-h2r1  us-central1-f  STOPPING  DELETING  my-old-template
vm-instances-j1h8  us-central1-f  RUNNING   NONE      my-old-template
vm-instances-ngod  us-central1-f  RUNNING   NONE      my-old-template

API

API で、regionInstanceGroupManagers.listManagedInstances メソッドに GET リクエストを送信します。ゾーン マネージド インスタンス グループの場合は、instanceGroupManagers.listManagedInstances メソッドを使用します。

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group-name/listManagedInstances

API は、グループの各インスタンスの instanceStatuscurrentAction を含めたリストを返します。

{
 "managedInstances": [
  {
   "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/vm-instances-prvp",
   "id": "5317605642920955957",
   "instanceStatus": "RUNNING",
   "instanceTemplate": "https://compute.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/instance-template-name",
   "currentAction": "REFRESHING"
  },
  {
   "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/vm-instances-pz5j",
   "currentAction": "DELETING"
  },
  {
   "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/vm-instances-w2t5",
   "id": "2800161036826218547",
   "instanceStatus": "RUNNING",
   "instanceTemplate": "https://compute.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/instance-template-name",
   "currentAction": "REFRESHING"
  }
 ]
}

マネージド インスタンス グループに含まれる各インスタンスのステータスは、それぞれのインスタンスの instanceStatus フィールドで記述されます。有効な instanceStatus フィールドのリストを確認するには、インスタンスのステータスの確認をご覧ください。

インスタンスでなんらかの変更が行われている場合、currentAction フィールドに次のいずれかのアクションが入力されます。これは変更の進捗状況を追跡するのに役立ちます。それ以外の場合、currentAction フィールドは NONE になります。

有効な currentAction の値は次のとおりです。

  • ABANDONING。インスタンスはマネージド インスタンス グループから削除中です。
  • CREATING。インスタンスは作成中です。
  • CREATING_WITHOUT_RETRIES。再試行なしでインスタンスを作成しています。インスタンスが最初の試行で作成できなかった場合、マネージド インスタンス グループはインスタンスの置換を行いません。
  • DELETING。インスタンスは削除中です。
  • RECREATING。インスタンスは置換中です。
  • REFRESHING。インスタンスは現在のターゲット プールから削除中で、現在のターゲット プールのリスト(このリストは既存のターゲット プールと同じ場合も異なる場合もあります)に再度追加中です。
  • RESTARTING。インスタンスは stop メソッドと start メソッドを使用して再起動中です。
  • VERIFYING。インスタンスは作成済みで、検証中です。
  • NONE。インスタンスに対して実行されているアクションはありません。

グループ全体が安定しているか、または変更中であるかを確認するには、グループのステータスの確認をご覧ください。

ヘルス状態の確認

マネージド インスタンス グループの自動修復を構成した場合は、各インスタンスのヘルス状態を確認できます。ヘルス状態の確認をご覧ください。

VM インスタンスが MIG のメンバーであるかの確認

特定のインスタンスが現在グループのメンバーであるかどうかを確認するには、Console または API を使用します。

Console

  1. Google Cloud Console で、[VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. インスタンスをクリックして、[VM インスタンスの詳細] にアクセスします。
  3. VM インスタンスがマネージド インスタンス グループのメンバーである場合は、そのマネージド インスタンス グループの名前が [使用中] という見出しの下に表示されます。VM インスタンスがグループのメンバーでない場合、[使用中] という見出しはインスタンスの詳細ページに表示されません。

API

VM インスタンスのリファラーの表示をご覧ください。

あるいは、インスタンスのメタデータで次の 2 つのメタデータキーを探し、インスタンスがマネージド インスタンス グループのメンバーであるかどうかを識別します。

  • instance-template は、インスタンスの作成に使用されたテンプレートを示します。
  • created-by は、インスタンスを作成したマネージド インスタンス グループを示します。

インスタンスを破棄する場合でも、手動で削除しない限り、インスタンスにはこれらのメタデータ エントリが含まれています。

たとえば、random-instance-biy という名前のインスタンスがあり、このインスタンスがマネージド インスタンス グループによって作成されたかどうかを確認するには、インスタンスを記述してメタデータキーを確認します。次に例を示します。

gcloud compute instances describe random-instance-biy \
    --zone us-central1-f

gcloud ツールは、次のようなレスポンスを返します。

canIpForward: false
cpuPlatform: Intel Ivy Bridge
creationTimestamp: '2016-08-24T14:11:38.012-07:00'
...
metadata:
  items:
  - key: instance-template
    value: projects/123456789012/global/instanceTemplates/example-it
  - key: created-by
    value: projects/123456789012/zones/us-central1-f/instanceGroupManagers/igm-metadata

次のステップ