プリエンプティブ VM インスタンス

このページでは、プリエンプティブ仮想マシン(VM)インスタンスについて説明します。プリエンプティブ インスタンスを作成する方法の詳細については、プリエンプティブなインスタンスの作成をご覧ください。インスタンス全般の詳細については、仮想マシン インスタンスのドキュメントをご覧ください。

プリエンプティブ インスタンスとは

プリエンプティブ VM は、通常のインスタンスよりはるかに低価格で作成、実行できるインスタンスです。ただし、このインスタンスは、他のタスクのリソースへのアクセスが必要な場合に、Compute Engine によって終了(プリエンプト)される可能性があります。プリエンプティブ インスタンスは Compute Engine の余剰のキャパシティを利用する機能であり、使用できるかどうかは利用状況に応じて異なります。

アプリケーションがフォールト トレラントであり、生じる可能性のあるインスタンスのプリエンプトに対応できる場合、プリエンプティブ インスタンスが Compute Engine のコストを大幅に削減できます。たとえば、バッチ処理ジョブは、プリエンプティブ インスタンス上で実行できます。これらのインスタンスのいくつかが処理中に終了する場合、ジョブは遅くなりますが、完全に停止することはありません。プリエンプティブ インスタンスは、既存のインスタンスの負荷を増やさずにバッチ処理タスクを完了し、通常インスタンスの追加に対する正規価格を支払う必要もありません。

プリエンプティブ インスタンスの制限

プリエンプティブ インスタンスは、通常のインスタンスのように機能しますが、以下の制限があります。

  • Compute Engine は、システム イベントにより、いつでもプリエンプティブ インスタンスを終了できます。Compute Engine がシステム イベントによってプリエンプティブ インスタンスを終了する可能性は通常は低いですが、そのときの状況に応じて、日々ゾーンごとに異なります。
  • Compute Engine は、24 時間実行した後で、必ずプリエンプティブ インスタンスを終了します。
  • プリエンプティブ インスタンスは有限の Compute Engine リソースなので、常に利用できるわけではありません。
  • プリエンプティブ インスタンスは、ライブ マイグレーションを行ったり、メンテナンス イベントがあるときに自動的に再起動するよう設定することはできません。
  • 上記の制限により、プリエンプティブ インスタンスはサービスレベル契約の対象となりません(また、明確さのために Google Compute Engine SLA から除外されています)。

プリエンプトの処理

Compute Engine は、次の手順を実行して、インスタンスをプリエンプトします。

  1. Compute Engine は、プリエンプトの通知をインスタンスに ACPI G2 ソフトオフ信号の形式で送信します。シャットダウン スクリプトを使用して、プリエンプト通知を処理し、インスタンスが停止する前にクリーンアップ操作を完了します。
  2. インスタンスが 30 秒後に停止しない場合、Compute Engine は ACPI G3 メカニカルオフ信号をオペレーティング システムに送信します。
  3. Compute Engine は、インスタンスを TERMINATED 状態に移行させます。

インスタンスを停止することで、インスタンスのプリエンプトをシミュレートできます。

プリエンプトされたインスタンスは、引き続きプロジェクトに表示されますが、TERMINATED 状態である間は、インスタンス時間は請求されません。インスタンスに接続されている永続ディスクのデータにはアクセスして復元できますが、これらのディスクは削除するまでストレージの請求が発生します。通常のインスタンスの場合と同様、自動削除のマークが付いた永続ディスクは、プリエンプティブ インスタンスを削除するときに削除されます。

Compute Engine がプリエンプティブ インスタンスを作成後 10 分未満で終了する場合、その仮想マシン インスタンスの利用については請求されません。これにより、大量の作業を完了する時間でない限り、プリエンプティブ インスタンスに対して課金されません。ただし、プレミアム オペレーティング システムの請求は、引き続き通常通り計算されます。

プリエンプトの選択

プリエンプトでは通常、特定のお客様のインスタンスが過剰にプリエンプトされることはなく、直近に起動したインスタンスがプリエンプトされます。そのため、最初は思い通りにならず少しもどかしく感じるかもしれませんが、長い目で見るとこの方法はクラスタ全体での作業のロスを最小限に抑えることがわかります。最初の 10 分間にプリエンプトされたインスタンスについては課金されないため、コストも節約されます。

参考のため過去のデータを見ると、プロジェクトあたりの平均プリエンプト率は 7 日間で 5~15% であり、ときどき時刻やゾーンによって高く跳ね上がることがあります。これは単なる観測結果であることに注意してください。プリエンプティブ インスタンスには、プリエンプト率またはプリエンプトの配分について何の保証も SLA もありません。

マネージド インスタンス グループのプリエンプティブ インスタンス

マネージド インスタンス グループでプリエンプティブ インスタンスを作成できます。グループを作成または更新する前に、インスタンスのテンプレートでプリエンプティブ オプションを指定します。

マネージド インスタンス グループは、追加の Compute Engine リソースを利用できる場合にのみ、新しいプリエンプティブ インスタンスを作成または追加できます。これらのリソースが制限されている場合、マネージド インスタンス グループは、グループ内のプリエンプティブ インスタンスをサイズ変更したり、数を自動的に増減することはできません。

マネージド インスタンス グループは、常にターゲット サイズ、またはそのグループに対して autoscaler が指定するサイズを維持しようとします。Compute Engine がマネージド インスタンス グループのプリエンプティブ インスタンスを終了する場合、グループは指定されたインスタンス テンプレートを使用して、そのインスタンスを繰り返し再作成しようとします。必要なリソースがもう一度利用できるようになると、グループはインスタンスを再作成して、ターゲット グループのサイズを維持します。

プリエンプティブ インスタンスのプレミアム オペレーティング システム

プリエンプティブ インスタンスは、プレミアム オペレーティング システムのコストを削減せず、これらのオペレーティング システムの利用に対する課金方法を変更しません。Compute Engine がプレミアム オペレーティング システムを実行するプリエンプティブ インスタンスを終了する場合、そのインスタンスをユーザー自身が終了した場合と同様に、そのオペレーティング システムについて課金されます。使用量の最小値に対する変更が適用され、プレミアム オペレーティング システムに対する請求は、使用量の最近の増加分まで丸めることで引き続き計算されます。

プリエンプティブ インスタンスのマシンの種類は、マシンタイプ別の料金体系ページに記載された価格に従い、分単位で常に請求されます。

プリエンプティブ インスタンス上のローカル SSD

ローカル SSD を備えたプリエンプティブ VM インスタンスを起動できます。その場合、Compute Engine により、ローカル SSD の使用に対してプリエンプティブ料金が課金されます。プリエンプティブ インスタンスに接続されたローカル SSD は、通常のローカル SSD と同様に動作し、インスタンスの使用期間のみ存続します。プリエンプティブ ローカル SSD ごとに個別の割り当てをリクエストできますが、プリエンプティブ ローカル SSD を作成するときに、通常のローカル SSD 割り当てを使用することもできます。

ローカル SSD の詳細については、ローカル SSD のドキュメントをご覧ください。

次のステップ

フィードバックを送信...

Compute Engine ドキュメント