マネージド インスタンス グループ(MIG)を作成した後、そのグループの VM は、ワークロードのニーズに合わせて追加または削除できます。MIG に追加可能な VM の最大数がデフォルトの上限に達し、さらに VM が必要な場合は、MIG のサイズの上限を上げることができます。
MIG で VM を追加または削除する場合は、以下を行います。
- MIG のターゲット サイズを設定して、VM を自動的に追加または削除します。
- ステートレス アプリケーションに自動スケーリングを使用する
- MIG のサイズを手動で設定する
- 特定のインスタンスを手動で追加、削除、または破棄します。
準備
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Google Cloud コンソールの [インスタンス グループ] ページに移動します。
リストの [名前] 列で、グループサイズを変更するインスタンス グループの名前をクリックします。
[編集] をクリックして、このマネージド インスタンス グループを変更します。
[インスタンスの数] で、このマネージド インスタンス グループに含めるインスタンスの数を指定します。[自動スケーリング] が有効な場合は、グループのインスタンスが必要に応じて自動的に追加または削除されます。ただし、[インスタンスの最小数] および [インスタンスの最大数] の値を変更して、オートスケーラーで間接的にグループのサイズを調整することもできます。
[保存] をクリックして、新しいテンプレートを適用します。
- ターゲット分配形態が
EVEN
のリージョン MIG の場合、作成再試行は無効にできません。 - ターゲット分配形態が
BALANCED
またはANY_SINGLE_ZONE
のリージョン MIG の場合、作成再試行モードを無効にする前に、プロアクティブなインスタンスの再分配を無効にする必要があります。 - 自動スケーリングされた MIG の場合、作成再試行は無効にできません。
INSTANCE_GROUP_NAME
: サイズ変更する MIG の名前。NEW_SIZE
: マネージド インスタンス グループで実行中のインスタンスのターゲット数。ZONE
: ゾーン MIG の場合、MIG が配置されているゾーン。REGION
: リージョン MIG の場合、MIG が配置されているリージョン。PROJECT_ID
: 実際のプロジェクト ID。ZONE
: MIG が配置されているゾーン。リージョン MIG の場合は、zones/ZONE
をregions/REGION
に置き換えてリージョンを指定します。詳細については、リージョン MIG についてをご覧ください。INSTANCE_GROUP_NAME
: サイズ変更する MIG の名前。NEW_SIZE
: マネージド インスタンス グループで実行中のインスタンスのターゲット数。どのインスタンスが作成され、どのモードであるかは、
listManagedInstances
メソッドで確認できます。作成再試行モードを無効にすると、作成するインスタンスにCREATING_WITHOUT_RETRIES
のcurrentAction
が含まれます。- インスタンスの作成プロセス中は、自動スケーリングを無効にする必要があります。
- MIG の更新ポリシーは日和見更新として設定する必要があります。
- リージョン MIG を更新する場合:
- プロアクティブなインスタンスの再配布を無効にする必要があります。
- VM を作成するゾーンを選択することはできません。
- プロジェクト内で重複する VM インスタンス名を使用することはできません。
- INSTANCE_GROUP_NAME は、新しいインスタンスを追加するリージョン MIG またはゾーン MIG の名前です。
- INSTANCE_NAME は、新しいインスタンスに割り当てる名前です。
Google Cloud コンソールの [インスタンス グループ] ページに移動します。
リストの [名前] 列で、個々のインスタンスを削除するインスタンス グループの名前をクリックします。ページが開き、インスタンス グループ プロパティと、グループに含まれるインスタンスのリストが表示されます。
[メンバー] セクションで、削除するインスタンスをインスタンスのリストから選択します。
[インスタンスを削除] をクリックします。選択したインスタンスが削除されます。
- gcloud CLI によってインスタンスが削除された場合、
SUCCESS
が返されます。 - リクエストで指定されたインスタンスがグループのメンバーでない場合、メンバーがすでに削除または放棄されている場合、または他の理由でリクエストが失敗した場合は、すべてのインスタンスに対して
FAIL
が返されます。 SKIPPED
が返されるのは、--skip-instances-on-validation-error
フラグを使用していて、インスタンスがそのグループのメンバーでない場合、またはインスタンスがすでに削除または放棄されている場合に限られます。MEMBER_NOT_FOUND
は、gcloud CLI でインスタンス名からゾーンを解決できなかった場合に、リージョン グループに対してのみ返されます。Google Cloud コンソールの [インスタンス グループ] ページに移動します。
リストの [名前] 列で、インスタンスを削除するインスタンス グループの名前をクリックします。ページが開き、インスタンス グループ プロパティと、グループに含まれるインスタンスのリストが表示されます。
[メンバー] セクションで、グループから削除するインスタンスをインスタンスのリストから選択します。
[グループから削除] をクリックします。選択したインスタンスはグループから除外されますが、グループ外で引き続き実行されます。
Google Cloud コンソールの [インスタンス グループ] ページに移動します。
リストの [名前] 列で、サイズ上限を増やすインスタンス グループの名前をクリックします。
[編集] をクリックして、インスタンス グループを変更します。
[詳細設定を表示] をクリックして、詳細設定セクションを開きます。
[マネージド インスタンス リスト API 呼び出しの結果] で、ページ分割ありのオプションを選択します。
[保存] をクリックして変更を適用します。
- マネージド インスタンスの削除、放棄、再作成など、マネージド インスタンスの操作の詳細を学習する。
- マネージド インスタンス グループとマネージド インスタンスに関する情報を取得する。
- マネージド インスタンス グループのトラブルシューティング
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
グループのターゲット サイズを設定する
MIG のターゲット サイズは、オートスケーラーを使用して自動的に設定することも、手動で設定することもできます。
MIG の VM を自動的に追加および削除する
マネージド インスタンス グループは、ワークロードに応じて VM が自動的に追加または削除されるように構成できます。トラフィックの増加をアプリケーションで適切に処理できると同時に、コンピューティング リソースの必要性が低下した場合には費用を抑えることができます。マネージド インスタンス グループのスケーリングを開始するには、自動スケーリングを使用して MIG を作成するをご覧ください。
詳細については、インスタンスのグループの自動スケーリングをご覧ください。
MIG のサイズを手動で設定する
マネージド インスタンス グループの自動スケーリングをまだ設定していない場合、グループを手動でサイズ変更することで、グループ内のインスタンスの数を変更できます。サイズを大きくすると、マネージド インスタンス グループに現在のインスタンス テンプレートを使用して新しいインスタンスが追加されます。サイズを小さくすると、マネージド インスタンス グループから VM が削除されます。
DELETING
、CREATING
、およびRECREATING
のcurrentAction
のあるインスタンスがグループから削除された後で、スケジュールされたアクションのない実行中のインスタンスが削除されます。グループが属するバックエンド サービスでコネクション ドレインが有効になっている場合は、コネクション ドレインが有効のタイムアウトが経過してから VM インスタンスが削除されるまでに 60 秒ほどかかることがあります。
コンソール
gcloud
resize
コマンドを使用します。gcloud compute instance-groups managed resize INSTANCE_GROUP_NAME \ --size NEW_SIZE \ --zone ZONE
REST
ゾーンまたはリージョンの MIG リソースの
resize
メソッドを呼び出します。パラメータとして新しいインスタンス グループのサイズを指定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resize?size=NEW_SIZE
インスタンス グループがリージョン マネージド インスタンス グループの場合は、
zones/ZONE
をregions/REGION
に置き換えます。マネージド インスタンス グループのサイズ変更リクエストを行うと、システムでプロビジョニングまたは削除が可能になり次第、その VM が起動または停止します。このプロセスにかかる時間は、グループ内のインスタンスの数によっては長くなる場合があります。マネージド インスタンス グループのインスタンスのステータスを検証してください。
サイズ変更中に作成再試行モードを無効にする
デフォルトでは、VM インスタンスの初回作成に失敗すると、VM が作成されるまで、マネージド インスタンス グループが VM の作成の再試行を続けます。ただし、自動の作成再試行が不要の場合は、インスタンス グループのサイズを変更するときに作成再試行モードを無効にできます。このモードでは、マネージド インスタンス グループですべてのインスタンスの作成が一度だけ試行されます。インスタンスの作成時にエラーが発生した場合、このインスタンスはマネージド インスタンス グループによって作成されず、グループのマネージド インスタンスのリストから削除されます。マネージド インスタンス グループの最終的なサイズは小さくなります。
このモードは、VM の作成の最初の試行時にのみ適用されます。このモードが有効なときに VM が正常に作成されると、VM は通常のサイズ変更リクエストで作成された他のすべての VM と同じように動作します。特に、実行中の VM が後で予期せずに終了し、再作成が必要な場合、このモードは、このシナリオでの再作成の動きには影響しません。
作成再試行モードを無効にすると、VM のグループが自動的に作成され、厳密な数の VM が必要ではない状況で役立ちます。リクエストしたすべてのインスタンスが作成されるまで待ち続けるよりも、マネージド インスタンス グループのサイズをできるだけ早く確定し、グループ内の VM の数を柔軟に変更できるようにした方が望ましいこともあります。インスタンスの作成は、割り当てエラーや関連のないその他の問題のために、一時的に遅れることがあります。また、いつまでも終わらないこともあります。
制限事項
作成再試行モードが無効になっているときにマネージド インスタンス グループのサイズを変更するには、Google Cloud CLI または REST を使用します。
gcloud
--no-creation-retries
フラグを指定して、ベータ版のresize
コマンドを使用します。gcloud beta compute instance-groups managed resize INSTANCE_GROUP_NAME \ --size NEW_SIZE \ --no-creation-retries \ [--region REGION | --zone ZONE]
次のように置き換えます。
REST
ゾーン MIG の場合は、ベータ版の
instanceGroupManagers.resizeAdvanced
メソッドを使用します。リージョン MIG の場合は、ベータ版のregionInstanceGroupManagers.resizeAdvanced
メソッドを使用します。リクエストの本文で新しいグループのサイズとnoCreationRetries
フィールドを指定します。たとえば、次の呼び出しを行い、作成再試行モードを無効にしてゾーン MIG のサイズを変更します。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeAdvanced { "targetSize": NEW_SIZE, "noCreationRetries": true }
次のように置き換えます。
特定のインスタンスを追加、削除、破棄する
MIG で特定の名前のインスタンスを作成する
特定の名前に依存するシステムがある場合は、特定の名前を持つ VM を既存の MIG に追加できます。
このようなマネージド インスタンスに割り当てた名前は、VM が再作成された場合もそのまま維持されます。MIG インスタンスの状態の維持について詳しくは、ステートフル MIG をご覧ください。
制限事項
特定の名前を持つインスタンスを作成する場合は、次の制限事項があります。
特定の名前の VM を既存の MIG に追加するには、gcloud CLI または REST を使用します。
gcloud
instance-groups managed create-instance
コマンドを使用します。gcloud compute instance-groups managed create-instance INSTANCE_GROUP_NAME \ --instance INSTANCE_NAME \ [--region REGION | --zone ZONE]
次のように置き換えます。
REST
POST リクエストを
regionInstanceGroupManagers.createInstances
メソッドに送信します。ゾーン マネージド インスタンス グループの場合は、instanceGroupManagers.createInstances
メソッドを使用します。リクエストの本文にinstances
フィールドを含め、1 つ以上のインスタンスの名前を指定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" } ] }
特定のインスタンスをグループから削除する
マネージド インスタンス グループから個々の VM を削除できます。インスタンスを削除すると、インスタンス グループに指定された
targetSize
が縮小され、削除された VM が属するすべてのターゲット プールからその VM が削除されます。マネージド インスタンス グループから特定のインスタンスを削除しても、指定したオートスケーラーの設定は変更されません。マネージド インスタンス グループからインスタンスを削除すると、オートスケーラーがグループ内のその他のインスタンスでのワークロードの増加を検出し、グループサイズを増やして元のレベルまで戻す場合があります。これを回避するには、インスタンスを削除する前にオートスケーラーを停止します。
グループが属するバックエンド サービスでコネクション ドレインが有効になっている場合は、コネクション ドレインが有効のタイムアウトが経過してから VM インスタンスが削除されるまでに 60 秒ほどかかることがあります。
コンソール
gcloud
gcloud CLI でインスタンスを削除するには、
instance-groups managed delete-instances
コマンドを使用します。gcloud compute instance-groups managed delete-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \ [--region REGION | --zone ZONE]
このコマンドは、インスタンスごとにオペレーションのステータスを返します。
削除リクエストが同時実行オペレーションと競合する可能性がある場合は、
--skip-instances-on-validation-error
フラグを使用します。このフラグは、グループのメンバーではないインスタンスや、すでに削除または放棄されているインスタンス(たとえば、オートスケーラーによって削除されるインスタンス)がリクエストに含まれている場合でもリクエストを処理するかどうかを指定します。このフラグを省略し、このようなインスタンスがリクエストで指定されている場合、デフォルトではオペレーションが失敗します。リクエストに無効な形式のインスタンス名が含まれている場合、またはリクエストでグループに属していないゾーンまたはリージョンのインスタンスが参照されている場合、オペレーションは常に失敗します。たとえば、次のコマンドは 4 つのインスタンスの削除をリクエストしていますが、そのうちの 3 つはグループに存在しません。
gcloud compute instance-groups managed delete-instances example-mig \ --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \ --region=us-central1 \ --skip-instances-on-validation-error
この例では、
example-instance-3
は削除されますが、3 つのインスタンスは検証に合格していないため、スキップされます。Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig]. PROJECT ZONE INSTANCE STATUS VALIDATION_ERROR example-project us-central1-a example-instance-1 SKIPPED Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-1 that was already deleted. example-project us-central1-a example-instance-2 SKIPPED Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-2 that was already abandoned. example-project us-central1-a example-instance-3 SUCCESS example-project us-central1-a example-instance-4 SKIPPED Cannot find instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-4.
--skip-instances-on-validation-error
フラグを省略して、いずれかのインスタンスが検証に合格しなかった場合、インスタンスは削除されません。gcloud compute instance-groups managed delete-instances example-mig \ --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \ --region=us-central1 Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig]. PROJECT ZONE INSTANCE STATUS example-project us-central1-a example-instance-1 FAIL example-project us-central1-a example-instance-2 FAIL example-project us-central1-a example-instance-3 FAIL example-project us-central1-a example-instance-4 FAIL
REST
POST リクエストを
regionInstanceGroupManagers.deleteInstances
メソッドに送信します。ゾーン マネージド インスタンス グループの場合は、instanceGroupManagers.deleteInstances
メソッドを使用します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ] }
削除リクエストが同時実行オペレーションと競合する可能性がある場合は、
skipInstancesOnValidationError
フィールドを使用します。このフィールドは、グループのメンバーではないインスタンスや、すでに削除または放棄されているインスタンス(たとえば、オートスケーラーによって削除されるインスタンス)がリクエストに含まれている場合でもリクエストを処理するかどうかを指定します。このフラグを省略し、このようなインスタンスがリクエストで指定されている場合、デフォルトではオペレーションが失敗します。リクエストに無効な形式のインスタンス名が含まれている場合、またはリクエストでグループに属していないゾーンまたはリージョンのインスタンスが参照されている場合、オペレーションは常に失敗します。たとえば、次の 2 つのインスタンスを削除するリクエストは、いずれかのインスタンスがすでに削除されているか削除中であっても成功します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ], "skipInstancesOnValidationError": true }
オペレーションでスキップされたインスタンスを確認するには、オペレーションを表示します。リージョン MIG の場合は、
regionOperations.get
メソッドを使用します。ゾーン MIG の場合は、zoneOperations.get
メソッドを使用します。警告はオペレーションの警告フィールドに表示されます。マネージド インスタンス グループのインスタンスの削除リクエストを行うと、システムで削除が可能になり次第、そのインスタンスが停止します。このプロセスにかかる時間は、グループから削除するインスタンスの数によっては長くなる場合があります。グループのステータスを確認するか、マネージド インスタンスのステータスを確認します。
インスタンスを MIG から破棄する
VM インスタンスをマネージド インスタンス グループから分離すると、グループ全体に影響を与えることなく、個々のインスタンスの問題をデバッグしやすくなります。グループからインスタンスを破棄すると、マネージド インスタンス グループに割り当てられたロードバランサからもインスタンスが除外されます。特定の個別のインスタンスに手動で割り当てられたターゲット プールは削除されません。
破棄された VM インスタンスをグループに戻すことはできません。インスタンスを破棄すると、インスタンス グループに指定された
targetSize
が縮小されますが、指定されたオートスケーラーの設定は変更されません。オートスケーラーのあるマネージド インスタンス グループでは、引き続きインスタンスが必要に応じて自動で追加または削除されます。自動スケーリングがONLY_SCALE_OUT
モードに設定されたリージョン MIG では、VM インスタンスを破棄して MIG のターゲット サイズをオートスケーラーの推奨サイズまで減らすと、オートスケーラーは、破棄された VM の同じゾーンに新しい VM インスタンスを作成することがあります。このような場合は、新しい VM インスタンスが作成されないように、別のゾーンの VM インスタンスを破棄してみてください。グループが属するバックエンド サービスでコネクション ドレインが有効になっている場合は、コネクション ドレインが有効のタイムアウトが経過してから VM インスタンスが削除されるまでに 60 秒ほどかかることがあります。
コンソール
gcloud
VM を削除せずにインスタンス グループからインスタンスを削除するには、
instance-groups managed abandon-instances
コマンドを使用します。gcloud compute instance-groups managed abandon-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \ [--region REGION | --zone ZONE]
REST
POST リクエストを
regionInstanceGroupManagers.abandonInstances
メソッドに送信します。ゾーン マネージド インスタンス グループの場合は、instanceGroupManagers.abandonInstances
メソッドを使用します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/abandonInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ] }
マネージド インスタンス グループからインスタンスを破棄するリクエストを行うと、すぐにグループからそのインスタンスが除外されます。グループのステータスを確認するか、マネージド インスタンスのステータスを確認します。
グループサイズの上限を上げる
デフォルトでは、ゾーン MIG のサイズ上限は 1,000 VM、リージョン MIG のサイズ上限は 2,000 VM です。これらの上限は、ゾーン MIG では 2,000 VM、リージョン MIG では 4,000 VM に引き上げることができます。
上限を上げるには、グループの
listManagedInstancesResults
フィールドをPAGINATED
に設定します。グループ内の VM がさらに必要な場合は、複数の MIG を作成するか、サポートにお問い合わせください。コンソール
gcloud
既存の MIG の場合は、
update
コマンドを使用します。gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --list-managed-instances-results=PAGINATED
新しい MIG の場合は、
create
コマンドを使用します。gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --list-managed-instances-results=PAGINATED
Terraform
MIG のサイズ上限を引き上げるには、
list_managed_instances_results
引数をPAGINATED
に設定します。次のサンプルでは、ゾーン MIG のサイズ上限を引き上げます。サンプルで使用しているリソースの詳細については、
google_compute_instance_group_manager
リソースをご覧ください。 リージョン MIG の場合は、google_compute_region_instance_group_manager
リソースを使用します。Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
REST
既存のゾーン MIG の場合は、
instanceGroupManagers.patch
メソッドを使用します。リージョン MIG の場合は、regionInstanceGroupManagers.patch
メソッドを使用します。次に例を示します。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME { "listManagedInstancesResults": "PAGINATED", }
新しいゾーン MIG の場合は、
instanceGroupManagers.insert
メソッドを使用し、リージョン MIG の場合はregionInstanceGroupManagers.insert
メソッドを使用します。ページレス リストの結果に戻す場合は、グループのデフォルトのサイズ上限も戻す必要があります。元に戻すには、まずグループがデフォルトのサイズ上限を超えていないことを確認してから、
listManagedInstancesResults
フィールドをPAGELESS
に設定します。次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-21 UTC。
-