マネージド インスタンスの操作

マネージド インスタンス グループ(MIG)とその仮想マシン(VM)インスタンスを単一のエンティティとして管理します。たとえば、グループについて自動修復、自動スケーリング、自動更新のポリシーを設定できます。MIG は、仕様に基づいて、目的の状態になるようにインスタンスを自動的に操作します。

特定の名前を持つインスタンスを作成したり削除したりするなど、MIG 内の特定のマネージド インスタンスを操作する必要がある場合も、グループ エンティティを通じてインスタンスを操作する必要があります。たとえば、instanceGroupManagerregionInstanceGroupManager といった API メソッドを使用します。

グループのメソッド以外のメソッドを使用してマネージド インスタンスを操作すると、アクションがグループのアクションと競合する可能性があります。たとえば、グループに属するインスタンスを削除する際にグループのインスタンス削除メソッドを使用しなかった場合、MIG は、グループの仕様に従ってそのインスタンスを自動的に再作成することがあります。

始める前に

インスタンスを MIG に追加する

インスタンスを MIG に追加するには次の方法があります。

新しく追加されたインスタンスが稼働していることを確認するには、グループのステータスを確認するか、マネージド インスタンスのステータスを確認します。

手動によるサイズ変更

マネージド インスタンス グループの自動スケーリングをまだ設定していない場合、グループを手動でサイズ変更することで、グループ内のインスタンスの数を変更できます。MIG を手動でサイズ変更するをご覧ください。

自動スケーリング

マネージド インスタンス グループは、ワークロードに応じてインスタンスが自動的に追加または削除されるように構成できます。トラフィックの増加をアプリケーションで適切に処理できると同時に、コンピューティング リソースの必要性が低下した場合には費用を抑えることができます。MIG を自動的にスケーリングするには、インスタンスのグループの自動スケーリングをご覧ください。

特定の名前を持つインスタンスの追加(ベータ版)

特定の名前に依存するシステムを使用している場合、gcloud ツールまたは API を使用して、そのような名前を持つ新しいインスタンスを作成します。リージョン MIG には、リージョンの API メソッドを使用します。

このようなマネージド インスタンスに割り当てた名前は、インスタンスが再作成された場合も保持されます。

制限事項

特定の名前を持つインスタンスを作成する場合は、次の制限事項があります。

  • インスタンスの作成プロセス中は自動スケーリングを無効にする必要があります。
  • MIG の更新ポリシーは日和見である必要があります。
  • リージョン MIG を更新する場合:
  • プロジェクト内で重複する VM インスタンス名を使用することはできません。

gcloud

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

ここで

  • instance-group-name は、新しいインスタンスを追加するリージョンまたはゾーンの MIG の名前です。
  • managed-instance-name は、新しいインスタンスに割り当てる名前です。

API

API で、regionInstanceGroupManagers.createInstances メソッドに対する POST リクエストを行います。ゾーン マネージド インスタンス グループの場合は、instanceGroupManagers.createInstances メソッドを使用します。リクエストの本文に instances フィールドを含め、1 つ以上のインスタンスの名前を指定します。

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/createInstances
{
  "instances": [
    {
      "name": "instance-name-1"
    },
    {
      "name": "instance-name-2"
    }
  ]
}

グループ内の選択したインスタンスを更新する

MIG への更新のロールアウトをご覧ください。

インスタンスを MIG から削除する

マネージド インスタンスを削除すると、MIG はグループの targetSize を縮小し、対応する VM インスタンスを削除します。MIG は、削除されたインスタンスが属するすべてのターゲット プールからそのインスタンスを削除します。

マネージド インスタンス グループからインスタンスを削除しても、指定されたオートスケーラーの設定は変更されません。マネージド インスタンス グループからインスタンスを削除すると、オートスケーラーがグループ内のその他のインスタンスでのワークロードの増加を検出し、グループサイズを増やして元のレベルまで戻す場合があります。これを回避するには、インスタンスを削除する前にオートスケーラーを停止します。

グループが属するバックエンド サービス接続ドレインが有効になっている場合は、接続ドレインのタイムアウトが経過してから VM インスタンスが削除されるまでに 60 秒ほどかかることがあります。

マネージド インスタンスを削除し、それにより対応する VM インスタンスを削除するには、次の方法があります。

特定のインスタンスを削除する

マネージド インスタンス グループ内の特定のインスタンスを削除できます。インスタンスを削除すると、インスタンス グループに指定された targetSize が縮小され、削除されたインスタンスが属するすべてのターゲット プールからそのインスタンスが削除されます。

マネージド インスタンス グループからインスタンスを削除しても、指定されたオートスケーラーの設定は変更されません。マネージド インスタンス グループからインスタンスを削除すると、オートスケーラーがグループ内のその他のインスタンスでのワークロードの増加を検出し、グループサイズを増やして元のレベルまで戻す場合があります。これを回避するには、インスタンスを削除する前にオートスケーラーを停止します。

グループが属するバックエンド サービス接続ドレインが有効になっている場合は、接続ドレインのタイムアウトが経過してから VM インスタンスが削除されるまでに 60 秒ほどかかることがあります。

マネージド インスタンス グループからインスタンスを削除するには、Google Cloud Consolegcloud コマンドライン ツール、または API を使用します。

Console

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

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

  2. リストの [名前] 列で、個々のインスタンスを削除するインスタンス グループの名前をクリックします。ページが開き、インスタンス グループ プロパティと、グループに含まれるインスタンスのリストが表示されます。
  3. インスタンスのリストで、削除するインスタンスを 1 つ以上選択します。
  4. [削除] をクリックします。選択したインスタンスが削除されます。

gcloud

gcloud ツールを使用してインスタンスを削除するには、instance-groups managed delete-instances サブコマンドを使用します。

gcloud compute instance-groups managed delete-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    [--region region | --zone zone]

API

API で、regionInstanceGroupManagers.deleteInstances メソッドに対する POST リクエストを行います。ゾーン マネージド インスタンス グループの場合は、instanceGroupManagers.deleteInstances メソッドを使用します。

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

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

マネージド インスタンス グループのインスタンスの削除のリクエストを行うと、システムで削除が可能になり次第、そのインスタンスが停止します。このプロセスにかかる時間は、グループから削除するインスタンスの数によっては長くなる場合があります。グループのステータスを確認するか、マネージド インスタンスのステータスを確認します。

インスタンスを MIG から破棄する

マネージド インスタンス グループからインスタンスを分離すると、グループ自体に影響を及ぼさずに、個々のインスタンスの問題を簡単にデバッグできます。グループからインスタンスを破棄すると、マネージド インスタンス グループに割り当てられたロードバランサからもインスタンスが削除されます。特定の個別のインスタンスに手動で割り当てられたターゲット プールは削除されません。

インスタンスを破棄すると、インスタンス グループに指定された targetSize が縮小されますが、指定されたオートスケーラーの設定は変更されません。オートスケーラーのあるマネージド インスタンス グループでは、引き続きインスタンスが必要に応じて自動で追加または削除されます。

グループが属するバックエンド サービス接続ドレインが有効になっている場合は、接続ドレインのタイムアウトが経過してから VM インスタンスが削除されるまでに 60 秒ほどかかることがあります。

マネージド インスタンス グループからインスタンスを破棄するには、Google Cloud Consolegcloud ツール、または API を使用します。

Console

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

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

  2. リストの [名前] 列で、インスタンスを削除するインスタンス グループの名前をクリックします。ページが開き、インスタンス グループ プロパティと、グループに含まれるインスタンスのリストが表示されます。
  3. インスタンスのリストで、グループから削除する 1 つ以上のインスタンスを選択します。
  4. [グループから削除] をクリックします。選択したインスタンスはグループから除外されますが、グループ外で引き続き実行されます。

gcloud

インスタンスを削除せずにインスタンス グループからインスタンスを除外するには、abandon-instances サブコマンドを使用します。

gcloud compute instance-groups managed abandon-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    [--region region | --zone zone]

API

API で、regionInstanceGroupManagers.abandonInstances メソッドに対する POST リクエストを行います。ゾーン マネージド インスタンス グループの場合は、instanceGroupManagers.abandonInstances メソッドを使用します。

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

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

マネージド インスタンス グループからインスタンスを破棄するリクエストを行うと、すぐにグループからそのインスタンスが削除されます。グループのステータスを確認するか、マネージド インスタンスのステータスを確認します。

MIG 内のインスタンスを再作成する

インスタンスを再作成すると、指定したインスタンスが削除され、マネージド インスタンス グループに割り当てられたインスタンス テンプレートを使用して新しいインスタンスが作成されます。

この方法により、最新のインスタンス テンプレートを使用するよう、特定のインスタンスを更新できます。マネージド インスタンス グループ内のすべてのインスタンスを再作成する必要がある場合は、代わりにローリング アップデートを開始してください。

グループが属するバックエンド サービス接続ドレインが有効になっている場合は、接続ドレインのタイムアウトが経過してから VM インスタンスが削除されるまでに 60 秒ほどかかることがあります。

マネージド インスタンス グループ内の選択したインスタンスを再作成するには、gcloud ツールまたは API を使用します。

gcloud

instance-groups managed recreate-instances サブコマンドを使用します。

gcloud compute instance-groups managed recreate-instances instance-group-name \
    --instances example-i3n2,example-z2x9 \
    [--region region | --zone zone]

API

API で、regionInstanceGroupManagers.recreateInstances メソッドに対する POST リクエストを行います。ゾーン マネージド インスタンス グループの場合は、instanceGroupManagers.recreateInstances メソッドを使用します。

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

{
 "instances": [
  "zones/zone/instances/example-instance-i3n2",
  "zones/zone/instances/example-instance-l6n1"
 ]
}

マネージド インスタンス グループ内のインスタンスを再作成するリクエストを行うと、システムでプロビジョニングが可能になり次第、新しいインスタンスが起動します。このプロセスにかかる時間は、再作成するインスタンスの数によっては長くなる場合があります。グループのステータスを確認するか、マネージド インスタンスのステータスを確認します。

MIG 内のインスタンスに関する情報を取得する

MIG 内のマネージド インスタンスに関する情報を取得するをご覧ください。

次のステップ