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

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

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

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

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

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

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

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

プリエンプトの処理

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

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

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

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

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

プリエンプトの選択

プリエンプトでは通常、特定のお客様のインスタンスが過剰にプリエンプトされることはなく、直近に起動したインスタンスがプリエンプトされます。そのため、最初は思い通りにならず少しもどかしく感じるかもしれませんが、長い目で見るとこの方法はクラスタ全体での作業のロスを最小限に抑えることがわかります。Compute Engine では、実行開始後 1 分以内にプリエンプトされた場合、インスタンスに対する課金は行いません。

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

プリエンプティブル インスタンスの 24 時間カウンタは、特定のアクションによってリセットされます。具体的には、インスタンスを停止して開始すると、インスタンスが TERMINATED 状態に移行するため、Compute Engine がカウンタをリセットします。ただし、インスタンスのリセットや、VM からの sudo reboot など、インスタンスが RUNNING 状態のままである他のアクションでは、カウンタはリセットされません。

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

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

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

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

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

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

プレミアム オペレーティング システムを実行するプリエンプティブル インスタンスのマシンタイプに対しては、マシンタイプ別の料金体系ページに記載されている価格に従い、常に秒単位で請求されます。

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

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

インスタンスの実行が開始されてから 1 分以内にインスタンスがプリエンプトされた場合、Compute Engine ではローカル SSD に対する課金は行いません。

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

プリエンプティブル インスタンスの GPU

より安価なプリエンプティブル料金GPU をプリエンプティブル VM インスタンスに追加できます。プリエンプティブル インスタンスに接続された GPU は、通常の GPU と同様に動作しますが、インスタンスの存続期間中にのみ有効になります。GPU を使用したプリエンプティブル インスタンスは、すべてのプリエンプティブル インスタンスと同じプリエンプトの処理に従います。

GPU をプリエンプティブル インスタンスに追加した場合、GPU 割り当ては通常の割り当て量になります。プリエンプティブル GPU 用の割り当てが別途必要な場合は、プリエンプティブル GPU 割り当てを別途リクエストしてください。

メンテナンス イベント中には、GPU を使用したプリエンプティブル インスタンスはデフォルトでプリエンプトされ、自動的に再起動することはできません。プリエンプトされた後でインスタンスを再作成する場合には、マネージド インスタンス グループを使用します。マネージド インスタンス グループは、vCPU、メモリ、GPU リソースが利用可能であれば、インスタンスを再作成します。

インスタンスがプリエンプトされる前に警告を受けるようにする場合、またはメンテナンス イベントの終了後にインスタンスが自動的に再起動するように構成する場合は、GPU を使用したプリエンプティブル以外のインスタンスを使用します。GPU を使用したプリエンプティブル以外のインスタンスの場合は、Google からプリエンプションの 1 時間前に通知が送信されます。

インスタンスの実行が開始されてから 1 分以内にインスタンスがプリエンプトされた場合、Compute Engine では GPU に対する課金は行いません。

非プリエンプティブル インスタンスを自動的に再起動する手順については、インスタンスのオプションの更新をご覧ください。

GPU が接続されたプリエンプティブル インスタンスの作成方法については、GPU を使用したインスタンスの作成をご覧ください。

プリエンプション設定のテスト

インスタンスでシミュレート メンテナンス イベントを実行して、強制的にインスタンスをプリエンプトできます。この機能を使用して、アプリケーションによるプリエンプティブル インスタンスの処理方法をテストします。インスタンスでメンテナンス イベントをテストする方法については、可用性ポリシーのテストをご覧ください。

インスタンスを停止して、インスタンスのプリエンプションをシミュレートすることもできます。メンテナンス イベントをシミュレートする代わりに、この操作を行うことで、割り当ての上限に達するのを回避できます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

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

Compute Engine ドキュメント