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

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

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

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

リージョン MIG を作成するときに、プロアクティブなインスタンスの再配布を無効にできます。また、既存のリージョン MIG に対して有効または無効にすることもできます。

始める前に

  • このガイドの API の例を使用する場合は、API アクセスを設定します。
  • このガイドのコマンドラインの例を使用する場合は、Google Cloud CLI をインストールします。

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

プロアクティブなインスタンスの再配布を無効にしてリージョン MIG を作成するには、コンソールgcloud CLI、または Compute Engine API を使用します。

コンソール

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

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

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

API

プロアクティブなインスタンスの再配布と自動スケーリングを行わないリージョン 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 をデプロイする単一のリージョン内のゾーンの名前

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

プロアクティブなインスタンスの再配布を無効にする前に、オートスケーラーのモードを設定して自動スケーリングをオフにするか、スケーリングをスケールアウトに制限する必要があります。

プロアクティブなインスタンスの配布を無効または再度有効にするには、コンソールgcloud CLI、または Compute Engine API を使用します。

コンソール

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

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

  2. リストの [名前] 列で、変更するインスタンス グループの名前をクリックします。
  3. [編集] をクリックして、このマネージド インスタンス グループを変更します。
  4. 自動スケーリング構成が存在する場合は、[自動スケーリング モード] が [オフ: 自動スケーリングしない] に設定されていることを確認してください。
  5. [インスタンスの再配布] で、[インスタンスの再配布を有効にする] チェックボックスをオフにします。
  6. [保存] をクリックします。

gcloud

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

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

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

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

API

自動スケーリングされないリージョン MIG のプロアクティブなインスタンスの再配布を無効にするには、regionInstanceGroupManagers.patch メソッドPATCH リクエストを行います。リクエストの本文に updatePolicy プロパティを含め、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 が自動的に削除されないようにするためです。

次のステップ