このドキュメントでは、プリエンプティブル仮想マシン(VM)インスタンスを使用するマネージド インスタンス グループ(MIG)を作成する方法について説明します。プリエンプティブル VM は、ワークロードの中断を許容でき、プリエンプティブル VM による費用削減のメリットを活用する必要がある場合に便利です。
MIG を作成するための基本的なシナリオもご覧ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
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.
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 を使用して認証するをご覧ください。
-
制限事項
使用する構成に応じて変動する MIG の制限事項に関する全リストについては、MIG の制限事項をご覧ください。
プリエンプティブル VM が含まれるインスタンス テンプレートを作成する
ゾーンまたはリージョン MIG を使用して複数のプリエンプティブル VM をすばやく作成し、マネージド インスタンス グループ内の VM の費用を削減できます。たとえば、プリエンプティブル VM のグループを作成して、それを使用してバッチ処理タスクを実行し、タスクが完了したらそのグループを削除できます。
プリエンプティブル VM のグループを作成するには、インスタンス テンプレートでプリエンプティブル オプションを設定し、そのテンプレートを使用して MIG を作成します。
このタスクに必要な権限
このタスクを行うには、次の権限が必要です。
- 新しいインスタンスを作成するために必要なすべての権限
- インスタンス テンプレートの
compute.instanceTemplates.use
-
コンソールで、[インスタンス テンプレート] ページに移動します。
残りの手順は、Google Cloud コンソールに表示されます。
-
[
インスタンス テンプレートを作成 ] をクリックします。 - インスタンス テンプレートに必要なプロパティを入力します。
-
[
詳細オプション ] をクリックして、[管理] セクションを展開します。 -
[可用性ポリシー] の [
VM プロビジョニング モデル ] リストで、[Spot] を選択します。 - [
作成 ] をクリックしてテンプレートを作成します。
instance-templates create
コマンドを使用してインスタンス テンプレートを作成します。フラグ --preemptible
を追加します。
gcloud compute instance-templates createINSTANCE_TEMPLATE \ --preemptible
次の例では、グローバル インスタンス テンプレートを作成します。プリエンプティブル オプションを指定するには、scheduling
ブロックを含めます。サンプルで使用されているリソースの詳細については、google_compute_instance_template
リソースをご覧ください。リージョン インスタンス テンプレートを作成するには、google_compute_region_instance_template
リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
instanceTemplates.insert
メソッドを呼び出して新しいインスタンス テンプレートを作成します。scheduling.preemptible
プロパティを追加して、true
に設定します。
{ "name": "INSTANCE_TEMPLATE ", "properties": { "machineType": "zones/ZONE /machineTypes/MACHINE_TYPE ", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "scheduling": { "preemptible": true }, "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/family/debian-9" } } ] } }
インスタンス テンプレートを作成したら、それを使用して VM を単一ゾーンに固定または VM をリージョン内の複数のゾーンに分散した MIG を作成します。
次のステップ
- アプリケーション ベースの自動修復を設定する。これにより、MIG の各 VM でアプリケーションが意図したとおりに応答していることを定期的に確認し、応答しない VM を自動的に再作成する。
- 自動スケーリングを有効にして、負荷の増減に基づいて MIG から VM を自動的に追加または削除する。
- 新しいインスタンス テンプレート、全インスタンスの構成、またはインスタンスごとの構成を設定して適用することで、MIG の VM のすべてまたはサブセットに新しい構成を適用する方法を学習する。
- ステートフル構成を追加することで、VM の再作成、自動修復、更新などの中断を伴うイベント全体でディスク、メタデータ、IP アドレスを保持する。
- MIG での VM の削除、放棄、再作成など、マネージド インスタンスの操作の詳細を学習する。
- MIG とその VM に関する情報を表示する。