リージョン MIG でプロアクティブな VM 再配布を無効または有効にする

リージョン マネージド インスタンス グループ(MIG)で、リージョン内の選択したゾーンで均等な数の仮想マシン(VM)インスタンスを維持するには、プロアクティブなインスタンスの再配布を使用します。 この構成オプションにより、ゾーンレベルで障害が発生した場合のアプリケーションの可用性が最大化されます。

リージョン MIG では、プロアクティブなインスタンスの再配布がデフォルトで有効になっています。プロアクティブなインスタンスの再配布を無効にすると、VM はゾーン間でプロアクティブに再配布されません。プロアクティブなインスタンスの再分散を無効にすると、次のような場合に便利です。

  • 実行中の他の VM に影響を与えずに、VM をグループから削除または放棄する。たとえば、ジョブの完了後、他のワーカーに影響を与えずにバッチワーカー VM を削除できます。
  • プロアクティブな再分配による望まない自動削除からステートフル ワークロードの VM を保護する。
  • MIG のターゲット分配形態BALANCED または ANY_SINGLE_ZONE に設定する。

リージョン MIG を作成するときに、プロアクティブなインスタンスの再分配を無効にできます。既存のリージョン 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

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

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    2. Set a default region and zone.

    REST

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

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

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

プロアクティブなインスタンスの再分配が無効なグループを作成する

プロアクティブなインスタンスの再分配を無効にしてリージョン MIG を作成するには、 Google Cloud consolegcloud CLI、Terraform、または REST を使用します。

コンソール

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

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

  2. [インスタンス グループを作成] をクリックして、新しいインスタンス グループを作成します。
  3. インスタンス グループに名前と説明(省略可)を割り当てます。
  4. インスタンス グループ用のインスタンス テンプレートを選択するか、新しいインスタンス テンプレートを作成します。
  5. このグループの VM の数を指定します。高可用性ワークロードの場合、ゾーン障害の発生に備えてアプリケーションのサポートに十分な VM をプロビジョニングします。
  6. [ロケーション] で、[複数のゾーン] を選択します。
  7. リージョンを選択し、使用するゾーンを選択します。
  8. プロアクティブなインスタンスの再分配を無効にするには、インスタンスの再分配で、インスタンスの再配布を許可するチェックボックスをオンにします。
  9. 残りの MIG 作成手順を続けます。

gcloud

プロアクティブなインスタンスの再配布を行わずに新しいリージョン MIG を作成するには、--instance-redistribution-type フラグを NONE に設定して gcloud compute instance-groups managed create コマンドを使用します。

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE_NAME \
    --size TARGET_SIZE \
    --zones ZONES \
    --instance-redistribution-type NONE

次のように置き換えます。

  • INSTANCE_GROUP_NAME: MIG の名前
  • INSTANCE_TEMPLATE_NAME: グループに使用するインスタンス テンプレートの名前
  • TARGET_SIZE: グループのターゲット サイズ
  • ZONES: VM をデプロイする単一リージョン内のゾーンのリスト

例:

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c \
    --instance-redistribution-type NONE

Terraform

MIG 内の各 VM に必要なマシンタイプ、ブートディスク イメージ、ネットワーク、その他の VM プロパティを指定するインスタンス テンプレートをまだ作成していない場合は、インスタンス テンプレートを作成します。

リージョン MIG を作成するには、google_compute_region_instance_group_manager リソースを使用します。

リージョン MIG でプロアクティブなインスタンスの再配布を無効にするには、update_policy ブロックを含め、instance_redistribution_type フィールドを NONE に設定します。

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  target_size        = 30
  base_instance_name = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

REST

プロアクティブなインスタンスの再配布と自動スケーリングを行わないリージョン MIG を作成するには、regionInstanceGroupManagers.insert メソッドに POST リクエストを行います。リクエストの本文に updatePolicy プロパティを含め、instanceRedistributionType フィールドを NONE に設定します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
    "name": "INSTANCE_GROUP_NAME",
    "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
    "targetSize": TARGET_SIZE,
    "distributionPolicy": {
        "zones": [
            {"zone": "zones/ZONE"},
            {"zone": "zones/ZONE"}
        ]
    },
    "updatePolicy": {
        "instanceRedistributionType": "NONE"
    }
}

次のように置き換えます。

  • PROJECT_ID: このリクエストのプロジェクト ID
  • REGION: インスタンス グループのリージョン
  • INSTANCE_GROUP_NAME: MIG の名前
  • INSTANCE_TEMPLATE_NAME: グループに使用するインスタンス テンプレートの名前
  • TARGET_SIZE: インスタンス グループのターゲット サイズ
  • ZONE: VM をデプロイする単一のリージョン内のゾーンの名前

プロアクティブなインスタンスの再分配を無効にする

プロアクティブなインスタンスの再分配を無効または再度有効にするには、Google Cloud consolegcloud CLI、または REST を使用します。

コンソール

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

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

  2. リストの [名前] 列で、変更するインスタンス グループの名前をクリックします。
  3. [編集] をクリックして、このマネージド インスタンス グループを変更します。
  4. [地域] をクリックして、セクションを展開します。
  5. [インスタンスの再配布] セクションで、[インスタンスの再配布を許可する] チェックボックスをオフにします。
  6. [保存] をクリックします。

gcloud

プロアクティブなインスタンスの再配布を無効にするには、compute instance-groups managed update コマンドを使用して、次のように --instance-redistribution-type フラグを NONE に設定します。

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --instance-redistribution-type NONE \
    --region REGION

次のように置き換えます。

  • INSTANCE_GROUP_NAME: MIG の名前
  • REGION: インスタンス グループのリージョン

REST

プロアクティブなインスタンスの再配布を無効にするには、regionInstanceGroupManagers.patch メソッドを使用して、次のように instanceRedistributionType フィールドを NONE に設定します。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
  {
     "updatePolicy": {
        "instanceRedistributionType": "NONE"
     }
  }

次のように置き換えます。

  • PROJECT_ID: このリクエストのプロジェクト ID
  • REGION: インスタンス グループのリージョン
  • INSTANCE_GROUP_NAME: MIG の名前

プロアクティブなインスタンスの再配布の有効化

プロアクティブなインスタンスの再配布を有効にするには、プロアクティブなインスタンスの再配布を無効にすると同様のコマンドを使用しますが、インスタンスの配布タイプを PROACTIVE に設定します。

マネージド インスタンスを手動で削除または放棄し、リージョンで VM 数の不均等が発生した場合は、プロアクティブなインスタンスの再配布を有効にする前に、グループの調整を手動で行う必要があります。2 つのゾーン間での VM 数の差は、1 VM 以下にする必要があります。

ゾーン間の VM 数が不均等な(2 つのゾーン間の VM 数の差が 2 以上の)状態にある間、そのリージョン MIG ではプロアクティブなインスタンスの再配布を有効にできません。これは、不均等を是正するために、VM 数の多いゾーンから VM が自動的に削除されないようにするためです。

次のステップ