このドキュメントでは、マネージド インスタンス グループ(MIG)を作成する方法について説明します。MIG は、その MIG 内の VM が自動修復、更新、再作成されるなど、VM が再作成された場合でも、その MIG 内のすべての VM について、指定されたデバイス名のディスクにデータを保持します。ディスクの保持は、データベースやレガシー アプリケーションなどの特定のワークロードに役立ちます。
グループ内のすべての VM のディスクを保持するだけでなく、ステートフル MIG を次のように構成することもできます。
- インスタンス固有のディスクを追加および保持できます。
- インスタンス固有のメタデータを追加および保持できます。
- IP アドレスを追加、保持できます。
詳細については、ステートフル 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
- デフォルトのリージョンとゾーンを設定します。
Terraform
このページの Terraform サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- 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.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
制限事項
ステートフル構成を使用した MIG (ステートフル MIG)には、次の制限があります。
- MIG にステートフルな構成がある場合は、自動スケーリングを使用できません。
- 自動ローリング アップデートを使用する場合は、置換メソッドを
RECREATE
に設定する必要があります。 - ステートフル リージョン MIG の場合は、プロアクティブな再配布を無効にする(再配布タイプを
NONE
に設定する)必要があります。これは、複数ゾーンにまたがる自動再配布によってステーフル インスタンスが削除されないようにするためです。 - すべてのインスタンスの構成を使用してインスタンス テンプレートのプロパティをオーバーライドする場合、インスタンスごとの構成とグループのすべてのインスタンス構成で、同時にこれらのプロパティを指定することはできません。
使用する構成に応じて変動する MIG の制限事項に関する全リストについては、MIG の制限事項をご覧ください。
ステートフル ディスクを使用して MIG を作成する
Google Cloud コンソール、gcloud CLI、Terraform、または REST を使用します。
コンソール
-
[インスタンス グループ] ページに移動します。
残りの手順は、Google Cloud コンソールに表示されます。
-
[
インスタンス グループの作成 ] をクリックします。 -
[
新しいマネージド インスタンス グループ(ステートフル) ] オプションを選択します。 - インスタンス グループに名前と説明(省略可)を割り当てます。
- インスタンス グループ用のインスタンス テンプレートを選択するか、新しいインスタンス テンプレートを作成します。
- [
インスタンス数 ] フィールドに、このグループで最初に必要な VM の数を指定します。 - [
ステートフル構成 ] セクションの [グループ構成] で、ステートフルにするディスクをクリックして、次の手順を行います。 - [ステートフル] セクションで、[はい] を選択します。
- [インスタンスの永久削除時] リストで、VM を完全に削除する際に、ディスクを切断するか、ディスクを削除するかを選択します。
- 設定を保存するには、[完了] をクリックします。
- MIG を作成するには、[
作成 ] をクリックします。
gcloud
MIG の作成時にステートフルにするディスクをインスタンス テンプレートから指定するには、gcloud compute instance-groups managed create
コマンドで --stateful-disk
フラグを使用します。
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
次のように置き換えます。
INSTANCE_GROUP_NAME
: 作成するマネージド インスタンス グループの名前。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
になります。SIZE
: このグループで最初に必要な VM の数。DEVICE_NAME
: インスタンス テンプレートで指定されたディスクのデバイス名。DELETE_RULE
: VM が削除されたときにステートフル ディスクに行われる処理を表す値。使用できるオプションは次のとおりです。never
: デフォルト。ディスクは削除しません。代わりに、VM の削除時にディスクを切断します。on-permanent-instance-deletion
: VM インスタンスがインスタンス グループから完全に削除されたときにディスクを削除します。たとえば、マネージド インスタンスが手動で削除された場合や、グループサイズの変更でインスタンスが削除された場合にディスクを削除します。
削除ルールの値に関係なく、VM の自動修復、更新、再作成の場合、ステートフル ディスクは常に保持されます。
Terraform
MIG 内の各 VM に必要なマシンタイプ、ブートディスク イメージ、ネットワーク、その他の VM プロパティを指定するインスタンス テンプレートをまだ作成していない場合は、インスタンス テンプレートを作成します。
MIG の作成時に、ステートフルにするディスクをインスタンス テンプレートから指定するには、stateful_disk
ブロックを含めます。次のサンプルでは、ステートフル ディスクを使用してゾーン MIG を作成します。サンプルで使用されているリソースの詳細については、google_compute_instance_group_manager
リソースをご覧ください。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
REST
MIG の作成時にステートフルにするディスクをインスタンス テンプレートから指定するには、リクエスト本文の statefulPolicy
フィールドにディスクを指定します。ゾーン MIG の場合は、instanceGroupManagers.insert
メソッドを使用し、リージョン MIG の場合は regionInstanceGroupManagers.insert
メソッドを使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers { "name": "NAME", "versions": [ { "instanceTemplate": "global/instanceTemplates/TEMPLATE" } ], "targetSize": SIZE, "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
次のように置き換えます。
PROJECT
: リクエストのプロジェクト ID。ZONE
: MIG が配置されているゾーン(ゾーン MIG に適用)。- リージョン MIG の場合は、
zones/ZONE
をregions/REGION
に置き換え、MIG のリージョンを指定します。
- リージョン MIG の場合は、
NAME
: 作成する MIG の名前。TEMPLATE
: インスタンスの作成時に使用されるインスタンス テンプレートの名前。SIZE
: このグループで最初に必要なインスタンスの数。DEVICE_NAME
: インスタンス テンプレートで指定されたディスクのデバイス名。DELETE_RULE
: VM インスタンスの削除時にステートフル ディスクに行われる処理を表す値。使用できるオプションは次のとおりです。never
: デフォルト。VM の削除時にディスクを削除せず、ディスクを切断します。on_permanent_instance_deletion
: VM がインスタンス グループから完全に削除されたときにステートフル ディスクを削除します。たとえば、マネージド インスタンスが手動で削除された場合や、グループサイズが縮小された場合にディスクを削除します。
削除ルールの値に関係なく、インスタンスの自動修復、更新、再作成の場合、ステートフル ディスクは常に保持されます。
次のステップ
- ステートフル MIG と使用するタイミングの詳細について確認する。
- MIG でのステートフル ディスクの構成について詳細を確認する。
- ステートフル MIG の仕組みを学習する。
- ディスク、メタデータ、IP アドレスのステートフル MIG の構成の詳細を確認する。