このドキュメントでは、プリエンプティブル仮想マシン(VM)インスタンスを使用するマネージド インスタンス グループ(MIG)を作成する方法について説明します。プリエンプティブル VM は、ワークロードの中断を許容でき、プリエンプティブル VM による費用削減のメリットを活用する必要がある場合に便利です。
MIG を作成するための基本的なシナリオもご覧ください。
準備
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。
gcloud init
- デフォルトのリージョンとゾーンを設定します。
Terraform
このページの Terraform サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
-
制限事項
使用する構成に応じて変動する MIG の制限事項に関する全リストについては、MIG の制限事項をご覧ください。
プリエンプティブル VM が含まれるインスタンス テンプレートを作成する
ゾーンまたはリージョン MIG を使用して複数のプリエンプティブル VM をすばやく作成し、マネージド インスタンス グループ内の VM の費用を削減できます。たとえば、プリエンプティブル VM のグループを作成して、それを使用してバッチ処理タスクを実行し、タスクが完了したらそのグループを削除できます。
プリエンプティブ VM のグループを作成するには、インスタンス テンプレートでプリエンプティブ オプションを設定し、そのテンプレートを使用して MIG を作成します。
コンソール
-
コンソールで、[インスタンス テンプレート] ページに移動します。
残りの手順は Google Cloud コンソールに自動的に表示されます。
-
[
インスタンス テンプレートを作成 ] をクリックします。 - インスタンス テンプレートに必要なプロパティを入力します。
-
[
詳細オプション ] をクリックして、[管理] セクションを展開します。 -
[可用性ポリシー] の [
VM プロビジョニング モデル ] リストで、[Spot] を選択します。 - [
作成 ] をクリックしてテンプレートを作成します。
gcloud
instance-templates create
コマンドを使用してインスタンス テンプレートを作成します。フラグ --preemptible
を追加します。
gcloud compute instance-templates create INSTANCE_TEMPLATE \ --preemptible
Terraform
次の例では、グローバル インスタンス テンプレートを作成します。プリエンプティブル オプションを指定するには、scheduling
ブロックを含めます。サンプルで使用されているリソースの詳細については、google_compute_instance_template
リソースをご覧ください。リージョン インスタンス テンプレートを作成するには、google_compute_region_instance_template
リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
REST
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 に関する情報を表示する。