このドキュメントでは、単一のゾーン内でマネージド インスタンス グループ(MIG)を作成する方法について説明します。MIG のすべての VM を 1 つのゾーンに配置すると、レイテンシを最小限に抑えることができます。これは、特定のワークロード(バッチ ワークロードなど)に役立ちます。
このタイプの MIG は、ゾーン MIG とも呼ばれます。
MIG を作成するための基本的なシナリオもご覧ください。
始める前に
- インスタンス テンプレートを作成します。マネージド インスタンス グループを作成するために必要です。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
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.
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 の制限事項をご覧ください。
単一のゾーンに MIG を作成する
単一のゾーンに MIG を作成するには、Google Cloud コンソール、gcloud CLI、Terraform、REST のいずれかを使用します。
このタスクに必要な権限
このタスクを行うには、次の権限が必要です。
instanceGroupManagers.insert
メソッドを呼び出すのに必要なすべての権限
-
Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
残りの手順は、Google Cloud コンソールに表示されます。
-
[
インスタンス グループの作成 ] をクリックします。 -
ステートフル MIG を作成する場合は、[
新しいマネージド インスタンス グループ(ステートフル) ] オプションを選択します。詳しくは、ステートフル MIG を使用する場合をご覧ください。 - インスタンス グループに名前と説明(省略可)を割り当てます。
- インスタンス グループ用のインスタンス テンプレートを選択するか、新しいインスタンス テンプレートを作成します。
-
このグループの
VM の数 を指定します。ゾーンに障害が発生した場合に備えて、アプリケーションのサポートに十分な VM をプロビジョニングしてください。 -
[
ロケーション ] で [シングルゾーン] を選択します。 - MIG を作成するリージョンとゾーンを選択します。リージョン インスタンス テンプレートを選択した場合は、テンプレートのリージョンに基づいて [リージョン] が自動的に選択されます。
- ステートレス MIG では、自動スケーリングがデフォルトで有効になっています。自動スケーリングでは、グループはその使用率に基づいてインスタンスを自動的に追加または削除します。
- また、自動修復を有効にすると、グループ内の VM に対してアプリケーション ベースのヘルスチェックを実行できます。
- [作成] をクリックして、新しいグループを作成します。
MIG 内の各 VM に必要なマシンタイプ、ブートディスク イメージ、ネットワーク、その他の VM プロパティを指定するインスタンス テンプレートをまだ作成していない場合は、インスタンス テンプレートを作成します。
instance-groups managed create
コマンドを使用してマネージド インスタンス グループを作成し、グループ名、グループサイズ、インスタンス テンプレート、ゾーンを指定します。
gcloud compute instance-groups managed createINSTANCE_GROUP_NAME \ --sizeSIZE \ --templateINSTANCE_TEMPLATE \ --zoneZONE
次のように置き換えます。
INSTANCE_GROUP_NAME
: このインスタンス グループの名前。SIZE
: インスタンス グループのサイズ。INSTANCE_TEMPLATE
: このグループに使用するインスタンス テンプレートの名前。リージョン インスタンス テンプレートの場合は、テンプレートの完全な URL または部分的な URL を指定する必要があります。完全な URL の例はhttps://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
、部分的な URL の例はprojects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
になります。ZONE
: Compute Engine で使用できるゾーンのいずれか。MIG の VM をリージョン内の複数のゾーンに分散する場合は、リージョン MIG の作成をご覧ください。
必要に応じて、--base-instance-name
フラグを指定できます。これらの VM は同一のテンプレートに基づいているため、各 VM には VM 名の一部としてランダムな文字列が割り当てられます。このランダムな文字列の先頭にはベース名が追加されます。たとえば、ベース名を test
に設定すると、VM の名前は test-yahs
や test-qtyz
になります。特定の名前が必要な場合は、MIG に特定の名前のインスタンスを作成するをご覧ください。
たとえば、次のコマンドは example-group という名前のインスタンス グループを作成します。このベース VM 名は test
です。グループには 3 つのインスタンスが含まれます。
gcloud compute instance-groups managed create example-group \ --base-instance-name test \ --size 3 \ --template an-instance-template \ --zone us-central1-f
MIG 内の各 VM に必要なマシンタイプ、ブートディスク イメージ、ネットワーク、その他の VM プロパティを指定するインスタンス テンプレートをまだ作成していない場合は、インスタンス テンプレートを作成します。
ゾーン MIG を作成するには、google_compute_instance_group_manager
リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
MIG 内の各 VM に必要なマシンタイプ、ブートディスク イメージ、ネットワーク、その他の VM プロパティを指定するインスタンス テンプレートをまだ作成していない場合は、インスタンス テンプレートを作成します。
instanceGroupManagers.insert
メソッドを使用して、マネージド インスタンス グループを作成します。リクエスト本文で、グループ名、グループサイズ、インスタンス テンプレートの URL を追加します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instanceGroupManagers { "versions": [ { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE " } ], "name": "INSTANCE_GROUP_NAME ", "targetSize":SIZE }
次のように置き換えます。
PROJECT_ID
: リクエスト対象のプロジェクト ID。ZONE
: リクエストのゾーン。MIG の VM をリージョン内の複数のゾーンに分散する場合は、zones/ZONE
をregions/REGION
に置き換えてリージョンを指定します。詳細については、リージョン MIG の作成をご覧ください。INSTANCE_GROUP_NAME
: このインスタンス グループの名前。SIZE
: インスタンス グループのサイズ。INSTANCE_TEMPLATE
: このグループに使用するインスタンス テンプレート。
必要に応じて、base-name
フィールドを指定できます。これらの VM は同一のテンプレートに基づいているため、各 VM には VM 名の一部としてランダムな文字列が割り当てられます。このランダムな文字列の先頭にはベース名が追加されます。たとえば、ベース名を test
に設定すると、VM の名前は test-yahs
や test-qtyz
になります。特定の名前が必要な場合は、MIG に特定の名前のインスタンスを作成するをご覧ください。
MIG の構成や操作に応じて、さまざまなポリシーやアクションがグループのインスタンスに影響します。どのマネージド インスタンスが起動しているかを確認するには、マネージド インスタンスのステータスの確認を参照してください。
次のステップ
- アプリケーション ベースの自動修復を設定する。これにより、MIG の各 VM でアプリケーションが意図したとおりに応答していることを定期的に確認し、応答しない VM を自動的に再作成する。
- 自動スケーリングを有効にして、負荷の増減に基づいて MIG から VM を自動的に追加または削除する。
- 新しいインスタンス テンプレート、全インスタンスの構成、またはインスタンスごとの構成を設定して適用することで、MIG の VM のすべてまたはサブセットに新しい構成を適用する方法を学習する。
- ステートフル構成を追加することで、VM の再作成、自動修復、更新などの中断を伴うイベント全体でディスク、メタデータ、IP アドレスを保持する。
- MIG での VM の削除、放棄、再作成など、マネージド インスタンスの操作の詳細を学習する。
- MIG とその VM に関する情報を表示する。
- 外部 HTTP(S) ロードバランサのフロントエンドをインスタンス グループに追加する方法を学習する。他の種類のロードバランサについては、ロード バランシングの概要をご覧ください。