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

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

特定の名前を持つインスタンスを作成したり削除したりするなど、MIG 内の特定のマネージド インスタンスを操作する必要がある場合も、グループ エンティティを通じてインスタンスを操作する必要があります。それには、このページに記載するメソッド(instanceGroupManager または regionInstanceGroupManager API メソッドなど)を使用します。

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

始める前に

マネージド インスタンスとは

マネージド インスタンスとは、実際の VM インスタンスの現在のステータスと目的の状態が含まれる、MIG 内のデータ エンティティです。具体的には、次の要素が含まれます。

  • 現在のステータスには次の要素が含まれます。
    • インスタンスのライフサイクルのステータス(例: RUNNINGSTOPPING)。
    • MIG がインスタンスに対して実行している現在のアクション(例: RESTARTINGVERIFYINGNONE)。
    • インスタンスの健全性(例: HEALTHYUNHEALTHY)。
  • 目的の状態には次の要素が含まれます。
    • 目的のバージョン。つまり、インスタンスに使用するバージョン名とインスタンス テンプレートです。
    • アイテム(ディスク、メタデータ)について維持する状態

MIG 内の各マネージド インスタンスについて、MIG はそのマネージド インスタンスの仕様に従って、実際の VM を稼働中の状態にします。

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

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

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

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

手動によるサイズ変更

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

自動スケーリング

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

特定の名前を付けたインスタンスを追加する

特定の名前に依存するシステムがある場合は、gcloud ツールまたは API を使用して、特定の名前を付けた VM を既存の MIG に追加します。

このようなマネージド インスタンスに割り当てた名前は、VM が再作成された場合もそのまま維持されます。MIG インスタンスの状態の維持について詳しくは、ステートフル MIG をご覧ください。

制限事項

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

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

gcloud

create-instances サブコマンドを使用します。

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

以下を置き換えます。

  • instance-group-name は、新しいインスタンスを追加するリージョン MIG またはゾーン 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 が縮小され、削除されたインスタンスが属するすべてのターゲット プールからそのインスタンスが削除されます。ステートフル MIG を設定した場合、MIG はインスタンスで維持する状態の構成も削除します。

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

グループが属するバックエンド サービスコネクション ドレインが有効になっている場合は、コネクション ドレインが有効のタイムアウトが経過してから 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 から破棄する

VM インスタンスをマネージド インスタンス グループから分離すると、グループ全体に影響を与えることなく、個々のインスタンスの問題をデバッグしやすくなります。グループからインスタンスを破棄すると、マネージド インスタンス グループに割り当てられたロードバランサからもインスタンスが除外されます。特定の個別のインスタンスに手動で割り当てられたターゲット プールは削除されません。

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

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

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

Console

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

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

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

gcloud

VM を削除せずにインスタンス グループからインスタンスを除外するには、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 が削除され、そのマネージド インスタンスに割り当てられている構成を使用して新しいインスタンスが作成されます。

この方法により、最新のインスタンス テンプレートとステートフル構成(存在する場合)を使用するよう、選択した VM を更新できます。マネージド インスタンス グループに属するすべての VM を再作成する必要がある場合は、代わりにローリング アップデートを開始します。

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

マネージド インスタンス グループ内の選択した VM インスタンスを再作成するには、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"
 ]
}

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

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

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

次のステップ