リージョン マネージド インスタンス グループ(MIG)を使用する場合は、その MIG のターゲット分配形態を次のいずれかのオプションに設定できます。
- EVEN(デフォルト): 選択されたゾーン全体で同じ数の VM を完成、維持するために、VM の作成と削除が行われます。
EVEN
分配では、2 つのゾーン間の VM の数の差が 1 つ以内になります。これは、高可用性サービスを提供するワークロードに適しています。 - BALANCED: リソースが利用可能なゾーンで VM の作成を優先しますが、選択したゾーンに可能な限り均等に VM を分配して、ゾーン障害の影響を最小限に抑えます。これは、高可用性サービスを提供するワークロードやバッチ ワークロードに適しています。
- ANY: リクエストされた数の VM を現在のリソース制約内で用意し、未使用のゾーン予約を最大限利用できるように、VM インスタンスの作成時にゾーンを選択します。高可用性が不要なバッチ ワークロードに適しています。
- ANY SINGLE ZONE: 1 つのゾーン内にすべての VM インスタンスを作成するグループです。ゾーンは、ハードウェア サポート、現在のリソースと割り当ての可用性、および一致する予約に基づいて選択されます。VM 間の大規模な通信が必要なワークロードには、コンパクトなインスタンス配置ポリシーと組み合わせて使用することをおすすめします。
リージョン マネージド インスタンス グループで予約済み VM を使用するには、該当する各ゾーンに同じ名前で同一の予約を作成します。次に、グループのインスタンス テンプレートの名前を使用して、それらの予約を対象にします。
形態の選択については、比較表、ユースケース、分配形態の仕組みをご覧ください。
リージョン 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 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.
- MIG を作成するときにのみ、MIG のゾーンを選択できます。
MIG のインスタンス テンプレートまたはステートフル構成で、選択したすべてのゾーンで利用できないリソースを指定すると、次の制限が適用されます。
- ターゲット分配形態を
BALANCED
、ANY
またはANY_SINGLE_ZONE
に設定する必要があります。 - MIG で必要なリソース(既存のディスク、マシンタイプ、GPU など)が、選択したゾーンのうち少なくとも 1 つで使用可能であることを確認する必要があります。
- MIG の構成(インスタンス テンプレートなど)を、選択したすべてのゾーンでインスタンス化できない構成に更新する場合は、新しい構成を設定する前に、サポートされていないすべてのゾーンからマネージド インスタンスを削除する必要があります。
- ターゲット分配形態を
ターゲット分配形態を
BALANCED
またはANY_SINGLE_ZONE
に設定するには、プロアクティブなインスタンスの再分配を無効にする必要があります。- リージョン MIG を自動スケーリングする場合は、グループのターゲット分配形態を
BALANCED
(プレビュー)またはEVEN
に設定する必要があります。 ターゲット分配形態を
BALANCED
、ANY
、ANY_SINGLE_ZONE
に設定した場合は、次の制限があります。- 2 つのバージョンを使用するカナリア更新はサポートされません。
- リージョン全体でリクエストされたリソースの可用性が制限されている場合、リソースがすでに利用不能になっているゾーンで VM インスタンスの作成がスケジューリングされることがあります。グループサイズの増減を行うことで、他のゾーンでリクエストされたリソースを取得できます。
SUBSTITUTE
置換メソッドを使用するローリング アップデートでは、ゾーンに新しいバージョンの要件を満たすリソースがない場合でも、更新された新しいインスタンスが古いマシンと同じゾーンに作成されます。この動作を調整するには、制約のあるゾーンから古い VM を削除し、削除した VM の数だけグループサイズを大きくします。容量のあるゾーンに最新のテンプレートからインスタンスが作成されます。- グループのインスタンス テンプレートを、選択したゾーンでは使用できないリソースを指定するテンプレートに更新する場合は、サポートされていないゾーンからマネージド インスタンスを削除した後、新しいテンプレートを設定する必要があります。
ターゲット分配形態を
ANY_SINGLE_ZONE
に設定し、グループの既存の VM が単一のゾーン内に存在する場合、そのゾーンにのみ追加の VM を作成できます。別のゾーンを使用する場合は、まずグループの VM をゼロにスケールインする必要があります。単一テナント VM のグループをプロビジョニングする必要がある場合は、MIG のターゲット分配形態を
EVEN
に設定する必要があります。MIG のゾーンと同じゾーンにノードグループを作成し、MIG のインスタンス テンプレート内に MIG のノード アフィニティを設定します。- Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
- [インスタンス グループを作成] をクリックして、新しいインスタンス グループを作成します。
- [新しいマネージド インスタンス グループ] のオプション(ステートレスかステートフル)を選択します(デフォルトはステートレスです)。
- インスタンス グループに名前と説明(省略可)を割り当てます。
- インスタンス グループ用のインスタンス テンプレートを選択するか、新しいインスタンス テンプレートを作成します。
- このグループの VM の数を指定します。高可用性ワークロードの場合、ゾーン障害の発生に備えてアプリケーションのサポートに十分な VM をプロビジョニングします。
- [ロケーション] で、[複数のゾーン] を選択します。
リージョンを選択し、使用するゾーンを選択します。
- MIG でリージョン内のすべてのゾーンを使用できるようにするには、使用可能なすべてのゾーンを選択します。
- リージョン MIG を更新しても、作成後に別のゾーンを使用することはできません。
ターゲット分配形態を選択します。
- [任意] または [任意の単一ゾーン] を選択する場合は、[自動スケーリング] セクションで [自動スケーリング モード] をクリックし、[自動スケーリングの構成を削除] を選択します。
- [任意の単一ゾーン] または [バランス] を選択する場合は、[インスタンスの再分配] セクションで インスタンスの再配布を有効にするを選択しないでください。
残りの MIG 作成手順を続けます。
INSTANCE_GROUP_NAME
: インスタンス グループの名前。TEMPLATE
: グループに使用するインスタンス テンプレートの名前。SIZE
: インスタンス グループのターゲット サイズ。REGION
: グループを配置するリージョン。ZONES
(省略可): VM インスタンスをデプロイするリージョン内のゾーンのリスト。デフォルトでは、Compute Engine によって 3 つのゾーンが選択されます。MIG でリージョン内のすべてのゾーンを使用できるようにするには、使用可能なすべてのゾーンを指定します。リージョン内のゾーンのリストを取得するには、次のコマンドを使用します。
gcloud compute zones list --filter=region:
REGION
--format='list(NAME)'リージョン MIG を更新しても、作成後に別のゾーンを使用することはできません。
SHAPE
: ターゲット分配形態。次のいずれかの値です。even
(デフォルト): 選択されたゾーン全体で同じ数の VM を完成、維持するために、VM の作成と削除を行います。EVEN
分配では、2 つのゾーン間の VM の数の差が 1 つ以内になります。これは、高可用性サービスを提供するワークロードに適しています。balanced
: リソースが利用可能なゾーンで VM の作成を優先しますが、選択したゾーンに可能な限り均等に VM を分配して、ゾーン障害の影響を最小限に抑えます。これは、高可用性サービスを提供するワークロードやバッチ ワークロードに適しています。any
: リクエストされた数の VM を現在のリソース制約内で用意し、未使用のゾーン予約を最大限利用できるように、VM インスタンスの作成時にゾーンを選択します。高可用性が不要なバッチ ワークロードに適しています。any-single-zone
: 1 つのゾーン内にすべての VM インスタンスを作成するグループです。ゾーンは、ハードウェア サポート、現在のリソースと割り当ての可用性、および一致する予約に基づいて選択されます。VM 間の大規模な通信が必要なワークロードには、コンパクトなインスタンス配置ポリシーと組み合わせて使用することをおすすめします。
PROJECT_ID
: このリクエストのプロジェクト ID。REGION
: インスタンス グループのリージョン。INSTANCE_GROUP_NAME
: インスタンス グループの名前。TEMPLATE
: インスタンス グループに使用するインスタンス テンプレートの名前。SIZE
: インスタンス グループのターゲット サイズ。ZONE
: VM インスタンスをデプロイするリージョン内のゾーン名。- MIG でリージョン内のすべてのゾーンを使用できるようにするには、使用可能なすべてのゾーンを指定します。リージョン内のゾーンのリストを取得するには、
regions.get
メソッドを呼び出します。 - リージョン MIG を更新しても、作成後に別のゾーンを使用することはできません。
- MIG でリージョン内のすべてのゾーンを使用できるようにするには、使用可能なすべてのゾーンを指定します。リージョン内のゾーンのリストを取得するには、
SHAPE
: ターゲット分配形態。次のいずれかの値です。EVEN
(デフォルト): 選択されたゾーン全体で同じ数の VM を完成、維持するために、VM の作成と削除を行います。EVEN
分配では、2 つのゾーン間の VM の数の差が 1 つ以内になります。これは、高可用性サービスを提供するワークロードに適しています。BALANCED
: リソースが利用可能なゾーンで VM の作成を優先しますが、選択したゾーンに可能な限り均等に VM を分配して、ゾーン障害の影響を最小限に抑えます。これは、高可用性サービスを提供するワークロードやバッチ ワークロードに適しています。ANY
: リクエストされた数の VM を現在のリソース制約内で用意し、未使用のゾーン予約を最大限利用できるように、VM インスタンスの作成時にゾーンを選択します。高可用性が不要なバッチ ワークロードに適しています。ANY_SINGLE_ZONE
: 1 つのゾーン内にすべての VM インスタンスを作成するグループです。ゾーンは、ハードウェア サポート、現在のリソースと割り当ての可用性、および一致する予約に基づいて選択されます。VM 間の大規模な通信が必要なワークロードには、コンパクトなインスタンス配置ポリシーと組み合わせて使用することをおすすめします。
- ターゲット分配形態を
BALANCED
またはANY_SINGLE_ZONE
に変更する場合は、まずプロアクティブな再分配を無効にする必要があります。 - ターゲット分配形態を
EVEN
に変更する場合、インスタンスの現在の分配が不均等になっているときは、最初にプロアクティブな再分配を無効にする必要があります。 - 形態を
EVEN
に変更し、プロアクティブな再分配を再度有効にする場合は、グループを手動で再調整する必要があります。 - ターゲット分配形態を
EVEN
に変更するときに、インスタンス テンプレートが、選択したゾーンの一部でサポートされないリソースを指定している場合は、まず、そのグループのインスタンス テンプレートを選択されたすべてのゾーンでサポートされるように更新します。 - Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
- リストの [名前] 列で、ターゲット分配形態を変更するインスタンス グループの名前をクリックします。
- [編集] をクリックして、このマネージド インスタンス グループを変更します。
- [ターゲット分配形態] で、目的の形態を指定します。
- [保存] をクリックして、新しいテンプレートを適用します。
INSTANCE_GROUP_NAME
: インスタンス グループの名前。SHAPE
: ターゲット分配形態。次のいずれかの値です。even
(デフォルト): 選択されたゾーン全体で同じ数の VM を完成、維持するために、VM の作成と削除を行います。EVEN
分配では、2 つのゾーン間の VM の数の差が 1 つ以内になります。これは、高可用性サービスを提供するワークロードに適しています。balanced
: リソースが利用可能なゾーンで VM の作成を優先しますが、選択したゾーンに可能な限り均等に VM を分配して、ゾーン障害の影響を最小限に抑えます。これは、高可用性サービスを提供するワークロードやバッチ ワークロードに適しています。any
: リクエストされた数の VM を現在のリソース制約内で用意し、未使用のゾーン予約を最大限利用できるように、VM インスタンスの作成時にゾーンを選択します。高可用性が不要なバッチ ワークロードに適しています。any-single-zone
: 1 つのゾーン内にすべての VM インスタンスを作成するグループです。ゾーンは、ハードウェア サポート、現在のリソースと割り当ての可用性、および一致する予約に基づいて選択されます。VM 間の大規模な通信が必要なワークロードには、コンパクトなインスタンス配置ポリシーと組み合わせて使用することをおすすめします。
PROJECT_ID
: このリクエストのプロジェクト ID。REGION
: インスタンス グループのリージョン。INSTANCE_GROUP_NAME
: インスタンス グループの名前。SHAPE
: ターゲット分配形態。次のいずれかの値です。EVEN
(デフォルト): 選択されたゾーン全体で同じ数の VM を完成、維持するために、VM の作成と削除を行います。EVEN
分配では、2 つのゾーン間の VM の数の差が 1 つ以内になります。これは、高可用性サービスを提供するワークロードに適しています。BALANCED
: リソースが利用可能なゾーンで VM の作成を優先しますが、選択したゾーンに可能な限り均等に VM を分配して、ゾーン障害の影響を最小限に抑えます。これは、高可用性サービスを提供するワークロードやバッチ ワークロードに適しています。ANY
: リクエストされた数の VM を現在のリソース制約内で用意し、未使用のゾーン予約を最大限利用できるように、VM インスタンスの作成時にゾーンを選択します。高可用性が不要なバッチ ワークロードに適しています。ANY_SINGLE_ZONE
: 1 つのゾーン内にすべての VM インスタンスを作成するグループです。ゾーンは、ハードウェア サポート、現在のリソースと割り当ての可用性、および一致する予約に基づいて選択されます。VM 間の大規模な通信が必要なワークロードには、コンパクトなインスタンス配置ポリシーと組み合わせて使用することをおすすめします。
- Google Cloud コンソールで、[インスタンス グループ] ページに移動します。既存のインスタンス グループがある場合は、このページにそのグループのリストが表示されます。
- 確認するインスタンス グループの名前をクリックします。ページが開き、インスタンス グループ プロパティと、グループに含まれるインスタンスのリストが表示されます。
- [詳細] をクリックします。
- [ロケーション] セクションで、[ターゲット分配形態] を確認します。
PROJECT_ID
: このリクエストのプロジェクト IDREGION
: インスタンス グループのリージョンINSTANCE_GROUP_NAME
: インスタンス グループの名前- MIG とその VM に関する情報を表示する方法を学習する。
- VM の追加、再作成、削除、VM 構成の更新など、MIG 内の VM の操作について学習する。
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
制限事項
ターゲット分配形態でグループを作成する
グループを作成してそのゾーンを選択し、ターゲット分配形態を設定するには、Google Cloud コンソール、gcloud CLI Terraform、またはRESTを使用します。
コンソール
gcloud
gcloud compute instance-groups managed create
コマンドを使用して、--target-distribution-shape
フラグを含めます。gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template TEMPLATE \ --size SIZE \ --region REGION \ --zones ZONES \ --target-distribution-shape SHAPE
次のように置き換えます。
たとえば、ターゲット分配形態が「バランス」のリージョン MIG を作成するには、
--target-distribution-shape
フラグをbalanced
に設定します。gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --zones us-east1-b,us-east1-c \ --target-distribution-shape balanced \ --instance-redistribution-type none
Terraform
MIG 内の各 VM に必要なマシンタイプ、ブートディスク イメージ、ネットワーク、その他の VM プロパティを指定するインスタンス テンプレートをまだ作成していない場合は、インスタンス テンプレートを作成します。
リージョン MIG を作成するには、
google_compute_region_instance_group_manager
リソースを使用します。次の例では、ターゲット分配形態が
BALANCED
のリージョン MIG を作成します。Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
REST
regionInstanceGroupManagers.insert
メソッドを呼び出します。リクエストの本文にdistributionPolicy
プロパティを含め、targetShape
フィールドを設定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": INSTANCE_GROUP_NAME, "instanceTemplate": "global/instanceTemplates/TEMPLATE", "targetSize": SIZE, "distributionPolicy": { "zones": [ {"zone": "zones/ZONE1"}, {"zone": "zones/ZONE2"}, {"zone": "zones/ZONE3"}, ], "targetShape": "SHAPE" } }
次のように置き換えます。
既存のグループのターゲット分配形態を変更する
既存のリージョン MIG のターゲット分配形態は、変更できますが次の制限があります。
コンソール
gcloud
gcloud compute instance-groups managed update
コマンドを使用して、--target-distribution-shape
フラグを含めます。gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --target-distribution-shape SHAPE
次のように置き換えます。
REST
regionInstanceGroupManagers.patch
メソッドを呼び出します。リクエストの本文にdistributionPolicy
プロパティを含め、targetShape
フィールドを設定します。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "distributionPolicy": { "targetShape": "SHAPE" } }
次のように置き換えます。
構成されたインスタンス分配ポリシーを表示する
コンソール
gcloud
gcloud compute instance-groups managed describe
コマンドを実行します。gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \ --region REGION
このコマンドは、
distributionPolicy.targetShape
フィールドを含むグループの詳細を返します。... distributionPolicy: targetShape: BALANCED zones: - zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f ... name: my-group region: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1 ...
REST
regionInstanceGroupManagers.get
メソッドに対してGET
リクエストを作成します。GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
次のように置き換えます。
ターゲット分配形態が
distributionPolicy.targetShape
フィールドに返されます。次に例を示します。{ "name": "my-instance-group", "distributionPolicy": { "targetShape": "BALANCED", }, "targetSize": 50, ... }
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-20 UTC。
-