単一のゾーンに MIG を作成する


このドキュメントでは、単一のゾーン内でマネージド インスタンス グループ(MIG)を作成する方法について説明します。MIG のすべての VM を 1 つのゾーンに配置すると、レイテンシを最小限に抑えることができます。これは、特定のワークロード(バッチ ワークロードなど)に役立ちます。

このタイプの MIG は、ゾーン MIG とも呼ばれます。

MIG を作成するための基本的なシナリオもご覧ください。

始める前に

  • インスタンス テンプレートを作成します。マネージド インスタンス グループを作成するために必要です。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    Terraform

    このページの Terraform サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。

    1. Google Cloud CLI をインストールします。
    2. gcloud CLI を初期化するには:

      gcloud init
    3. Google アカウントのローカル認証情報を作成します。

      gcloud auth application-default login

    詳細については、 ローカル開発環境の認証の設定 をご覧ください。

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

制限事項

使用する構成に応じて変動する MIG の制限事項に関する全リストについては、MIG の制限事項をご覧ください。

単一のゾーンに MIG を作成する

単一のゾーンに MIG を作成するには、Google Cloud コンソールgcloud CLI、Terraform、REST のいずれかを使用します。

コンソール

  1. Google Cloud コンソールの [インスタンス グループ] ページに移動します。

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

    残りの手順は Google Cloud コンソールに自動的に表示されます。

  2. [インスタンス グループの作成] をクリックします。
  3. ステートフル MIG を作成する場合は、[新しいマネージド インスタンス グループ(ステートフル)] オプションを選択します。詳しくは、ステートフル MIG を使用する場合をご覧ください。
  4. インスタンス グループに名前と説明(省略可)を割り当てます。
  5. インスタンス グループ用のインスタンス テンプレートを選択するか、新しいインスタンス テンプレートを作成します
  6. このグループの VM の数を指定します。ゾーンに障害が発生した場合に備えて、アプリケーションのサポートに十分な VM をプロビジョニングしてください。
  7. [ロケーション] で [シングルゾーン] を選択します。
  8. MIG を作成するリージョンゾーンを選択します。リージョン インスタンス テンプレートを選択した場合は、テンプレートのリージョンに基づいて [リージョン] が自動的に選択されます。
  9. ステートレス MIG では、自動スケーリングがデフォルトで有効になっています。自動スケーリングでは、グループはその使用率に基づいてインスタンスを自動的に追加または削除します。
  10. また、自動修復を有効にすると、グループ内の VM に対してアプリケーション ベースのヘルスチェックを実行できます。
  11. [作成] をクリックして、新しいグループを作成します。

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-yahstest-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 リソースを使用します。

resource "google_compute_instance_group_manager" "default" {

  name               = "example-group"
  base_instance_name = "test"
  target_size        = 3
  zone               = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
}

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/ZONEregions/REGION に置き換えてリージョンを指定します。詳細については、リージョン MIG の作成をご覧ください。
  • INSTANCE_GROUP_NAME: このインスタンス グループの名前。
  • SIZE: インスタンス グループのサイズ。
  • INSTANCE_TEMPLATE: このグループに使用するインスタンス テンプレート。

必要に応じて、base-name フィールドを指定できます。これらの VM は同一のテンプレートに基づいているため、各 VM には VM 名の一部としてランダムな文字列が割り当てられます。このランダムな文字列の先頭にはベース名が追加されます。たとえば、ベース名を test に設定すると、VM の名前は test-yahstest-qtyz になります。特定の名前が必要な場合は、MIG に特定の名前のインスタンスを作成するをご覧ください。

MIG の構成や操作に応じて、さまざまなポリシーやアクションがグループのインスタンスに影響します。どのマネージド インスタンスが起動しているかを確認するには、マネージド インスタンスのステータスの確認を参照してください。

次のステップ