このドキュメントでは、単一のゾーン内でマネージド インスタンス グループ(MIG)を作成する方法について説明します。MIG のすべての VM を 1 つのゾーンに配置すると、レイテンシを最小限に抑えることができます。これは、特定のワークロード(バッチ ワークロードなど)に役立ちます。
このタイプの MIG は、ゾーン MIG とも呼ばれます。
MIG を作成するための基本的なシナリオもご覧ください。
始める前に
- インスタンス テンプレートを作成します。マネージド インスタンス グループを作成するために必要です。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのよ���に使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
Terraform
このページの Terraform サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- 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.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
制限事項
使用する構成に応じて変動する MIG の制限事項に関する全リストについては、MIG の制限事項をご覧ください。
単一のゾーンに MIG を作成する
単一のゾーンに MIG を作成するには、Google Cloud コンソール、gcloud CLI、Terraform、REST のいずれかを使用します。
コンソール
-
Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
残りの手順は、Google Cloud コンソールに表示されます。
-
[
インスタンス グループの作成 ] をクリックします。 -
ステートフル MIG を作成する場合は、[
新しいマネージド インスタンス グループ(ステートフル) ] オプションを選択します。詳しくは、ステートフル MIG を使用する場合をご覧ください。 - インスタンス グループに名前と説明(省略可)を割り当てます。
- インスタンス グループ用のインスタンス テンプレートを選択するか、新しいインスタンス テンプレートを作成します。
-
このグループの
VM の数 を指定します。ゾーンに障害が発生した場合に備えて、アプリケーションのサポートに十分な VM をプロビジョニングしてください。 -
[
ロケーション ] で [シングルゾーン] を選択します。 - MIG を作成するリージョンとゾーンを選択します。リージョン インスタンス テンプレートを選択した場合は、テンプレートのリージョンに基づいて [リージョン] が自動的に選択されます。
- ステートレス MIG では、自動スケーリングがデフォルトで有効になっています。自動スケーリングでは、グループはその使用率に基づいてインスタンスを自動的に追加または削除します。
- また、自動修復を有効にすると、グループ内の VM に対してアプリケーション ベースのヘルスチェックを実行できます。
- [作成] をクリックして、新しいグループを作成します。
gcloud
MIG 内の各 VM に必要なマシンタイプ、ブートディスク イメージ、ネットワーク、その他の VM プロパティを指定するインスタンス テンプレートをまだ作成していない場合は、インスタンス テンプレートを作成します。
instance-groups managed create
コマンドを使用してマネージド インスタンス グループを作成し、グループ名、グループサイズ、インスタンス テンプレート、ゾーンを指定します。
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size SIZE \ --template INSTANCE_TEMPLATE \ --zone ZONE
次のように置き換えます。
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
Terraform
MIG 内の各 VM に必要なマシンタイプ、ブートディスク イメージ、ネットワーク、その他の VM プロパティを指定するインスタンス テンプレートをまだ作成していない場合は、インスタンス テンプレートを作成します。
ゾーン MIG を作成するには、google_compute_instance_group_manager
リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
REST
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) ロードバランサのフロントエンドをインスタンス グループに追加する方法を学習する。他の種類のロードバランサについては、ロード バランシングの概要をご覧ください。