リージョン マネージド インスタンス グループ(MIG)で、リージョン内の選択したゾーンで均等な数の仮想マシン(VM)インスタンスを維持するには、プロアクティブなインスタンスの再配布を使用します。この構成オプションにより、ゾーンレベルで障害が発生した場合のアプリケーションの可用性が最大化されます。
リージョン MIG では、プロアクティブなインスタンスの再配布がデフォルトで有効になっています。プロアクティブなインスタンスの再配布を無効にすると、VM はゾーン間でプロアクティブに再配布されません。プロアクティブなインスタンスの再分散を無効にすると、次のような場合に便利です。
- 実行中の他の VM に影響を与えずに、VM をグループから削除または放棄する。たとえば、ジョブの完了後、他のワーカーに影響を与えずにバッチワーカー VM を削除できます。
- プロアクティブな再分配による望まない自動削除からステートフル ワークロードの VM を保護する。
- MIG のターゲット分配形態を
BALANCED
またはANY_SINGLE_ZONE
に設定する。
リージョン 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
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
プロアクティブなインスタンスの再配布が無効なグループを作成する
プロアクティブなインスタンスの再配布を無効にしてリージョン MIG を作成するには、Google Cloud コンソール、gcloud CLI、Terraform、または REST を使用します。
コンソール
- Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
- [インスタンス グループを作成] をクリックして、新しいインスタンス グループを作成します。
- インスタンス グループに名前と説明(省略可)を割り当てます。
- インスタンス グループ用のインスタンス テンプレートを選択するか、新しいインスタンス テンプレートを作成します。
- このグループの VM の数を指定します。高可用性ワークロードの場合、ゾーン障害の発生に備えてアプリケーションのサポートに十分な VM をプロビジョニングします。
- [ロケーション] で、[複数のゾーン] を選択します。
- リージョンを選択し、使用するゾーンを選択します。
- プロアクティブなインスタンスの再分配を無効にするには、インスタンスの再分配で、インスタンスの再配布を許可するチェックボックスをオンにします。
- 残りの 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
に設定します。
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
: このリクエストのプロジェクト IDREGION
: インスタンス グループのリージョンINSTANCE_GROUP_NAME
: MIG の名前INSTANCE_TEMPLATE_NAME
: グループに使用するインスタンス テンプレートの名前TARGET_SIZE
: インスタンス グループのターゲット サイズZONE
: VM をデプロイする単一のリージョン内のゾーンの名前
プロアクティブなインスタンスの再配布をオフにする
プロアクティブなインスタンスの再配布を無効または再度有効にするには、Google Cloud コンソール、gcloud CLI、または REST を使用します。
コンソール
- Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
- リストの [名前] 列で、変更するインスタンス グループの名前をクリックします。
- [編集] をクリックして、このマネージド インスタンス グループを変更します。
- [インスタンスの再配布] で、[インスタンスの再配布を許可する] チェックボックスをオフにします。
- [保存] をクリックします。
gcloud
プロアクティブなインスタンスの再配布を無効にするには、次のようにコマンドを使用して --instance-redistribution-type
フラグを NONE
に設定します。
自動スケーリングされないリージョン MIG またはモードが
OFF
またはONLY_SCALE_OUT
に設定された自動スケーリング リージョン MIG の場合は、compute instance-groups managed update
コマンドを使用します。例:
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --instance-redistribution-type NONE \ --region REGION
モードが
ON
に設定されている自動スケーリング リージョン MIG の場合は、ベータ版のcompute instance-groups managed update
コマンドを使用します。例:
gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \ --instance-redistribution-type NONE \ --region REGION
次のように置き換えます。
INSTANCE_GROUP_NAME
: MIG の名前REGION
: インスタンス グループのリージョン
REST
プロアクティブなインスタンスの再配布をオフにするには、次の方法で instanceRedistributionType
フィールドを NONE
に設定します。
自動スケーリングされないリージョン MIG またはモードが
OFF
またはONLY_SCALE_OUT
に設定された自動スケーリング リージョン MIG の場合は、regionInstanceGroupManagers.patch
メソッドを使用します。例:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "instanceRedistributionType": "NONE" } }
モードが
ON
に設定された自動スケーリングされるリージョン MIG の場合は、ベータ版のregionInstanceGroupManagers.patch
メソッドを使用します。例:
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "instanceRedistributionType": "NONE" } }
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト IDREGION
: インスタンス グループのリージョンINSTANCE_GROUP_NAME
: MIG の名前
プロアクティブなインスタンスの再配布の有効化
プロアクティブなインスタンスの再配布を有効にするには、プロアクティブなインスタンスの再配布を無効にすると同様のコマンドを使用しますが、インスタンスの配布タイプを PROACTIVE
に設定します。
マネージド インスタンスを手動で削除または放棄し、リージョンで VM 数の不均等が発生した場合は、プロアクティブなインスタンスの再配布を有効にする前に、グループの調整を手動で行う必要があります。2 つのゾーン間での VM 数の差は、1 VM 以下にする必要があります。
ゾーン間の VM 数が不均等な(2 つのゾーン間の VM 数の差が 2 以上の)状態にある間、そのリージョン MIG ではプロアクティブなインスタンスの再配布を有効にできません。これは、不均等を是正するために、VM 数の多いゾーンから VM が自動的に削除されないようにするためです。
次のステップ
- MIG とその VM に関する情報を表示する方法について学習する。
- インスタンスの追加、再作成、削除など、MIG 内の VM の操作について学習する。