このページでは、プリエンプティブル仮想マシン(VM)インスタンスについて説明します。プリエンプティブル インスタンスを作成する方法の詳細は、プリエンプティブル VM を作成して使用するをご覧ください。インスタンス全般の詳細は、仮想マシン インスタンスのドキュメントをご覧ください。
プリエンプティブル インスタンスとは
プリエンプティブル VM インスタンスは、標準 VM の料金よりもはるかに低価格(60~91% 割引)で利用できます。ただし、他の VM に割り当てるためにコンピューティング容量を再利用する必要がある場合、Compute Engine はこのインスタンスを停止(プリエンプト)する可能性があります。プリエンプティブル インスタンスは、Compute Engine の余剰の容量を利用する機能であり、使用できるかどうかは利用状況に応じて変わります。
アプリがフォールト トレラントであり、インスタンスで生じる可能性のあるプリエンプションに対応できる場合、プリエンプティブル インスタンスで Compute Engine のコストを大幅に削減できます。たとえば、バッチ処理ジョブは、プリエンプティブル インスタンス上で実行できます。これらのインスタンスのいくつかが処理中に停止する場合、ジョブは遅くなりますが、完全に停止することはありません。プリエンプティブル インスタンスは、既存のインスタンスの負荷を増やさずにバッチ処理タスクを完了し、通常インスタンスの追加に対する正規価格を支払う必要もありません。
プリエンプティブル インスタンスの制限
プリエンプティブル インスタンスは、通常のインスタンスのように機能しますが、以下の制限があります。
- Compute Engine は、システム イベントにより、いつでもプリエンプティブル インスタンスを停止する可能性があります。Compute Engine がシステム イベントによってプリエンプティブル インスタンスを停止する可能性は通常は低いですが、そのときの状況に応じて、日々ゾーンごとに異なることがあります。
- Compute Engine は、24 時間実行した後で、必ずプリエンプティブル インスタンスを停止します。この 24 時間カウンタは、特定のアクションによってリセットされます。
- プリエンプティブル インスタンスは有限の Compute Engine リソースなので、常に利用できるわけではありません。
- プリエンプティブル インスタンスは、通常の VM インスタンスにライブ マイグレーションできません。また、メンテナンス イベントの際に自動的に再起動するように設定することもできません。
- このような制約が存在するため、プリエンプティブル インスタンスはサービスレベル契約には含まれておらず、Compute Engine SLA から除外されています。
- Compute Engine の Google Cloud の無料枠は、プリエンプティブル インスタンスに適用されません。
プリエンプティブル VM のプリエンプション
このセクションでは、Compute Engine によってプリエンプティブル VM がプリエンプトされる方法と、プリエンプションに選択される VM について説明します。
プリエンプトの処理
Compute Engine は、次の手順でインスタンスをプリエンプトします。
- Compute Engine は、プリエンプトの通知をインスタンスに ACPI G2 ソフトオフ信号の形式で送信します。シャットダウン スクリプトを使用して、プリエンプト通知を処理し、インスタンスが停止する前にクリーンアップ操作を完了できます。プリエンプション通知のシャットダウン期間は、ベスト エフォートで最大 30 秒です。
- プリエンプション通知のシャットダウン期間を経過してもインスタンスが停止しない場合、Compute Engine は ACPI G3 メカニカルオフ信号をオペレーティング システムに送信します。
- Compute Engine は、インスタンスを
TERMINATED
状態に移行させます。
インスタンスを停止することで、インスタンスのプリエンプトをシミュレートできます。
プリエンプトされたインスタンスは、引き続きプロジェクトに表示されますが、TERMINATED
状態である間は、インスタンス時間は請求されません。インスタンスにアタッチされている永続ディスクのデータにはアクセスして復元できますが、これらのディスクは削除するまでストレージの請求が発生します。通常のインスタンスの場合と同様、自動削除のマークが付いた永続ディスクは、プリエンプティブル インスタンスを削除するときに削除されます。プリエンプトされたインスタンスは、容量がある限り何度でも再起動できます。プリエンプティブル インスタンスを再起動すると、プリエンプティブル プロセスがリセットされます。
作成から 1 分以内に Compute Engine でプリエンプティブル インスタンスを停止すると、その VM の使用に対しては課金されません。これにより、時間をかけて大量の処理を行わない限り、プリエンプティブル インスタンスに対する課金は発生しません。ただし、プレミアム オペレーティング システムの請求は、引き続き通常どおり計算されます。
プリエンプトの選択
プリエンプション率を低減するためのおすすめの方法については、ベスト プラクティスをご覧ください。Compute Engine は、実行開始から 1 分以内にプリエンプトされたインスタンスに対しては課金しません。
プリエンプティブル インスタンスの 24 時間カウンタは、特定のアクションによってリセットされます。具体的には、インスタンスを停止して開始すると、インスタンスが TERMINATED
状態に移行するため、Compute Engine がカウンタをリセットします。ただし、インスタンスのリセットや、VM からの sudo reboot
の実行など、インスタンスが RUNNING
状態で保持される他のアクションでは、カウンタはリセットされません。
料金
プリエンプティブル VM には、Spot VM と同じ料金モデルであるスポット料金が適用されます。プリエンプティブル VM の料金の詳細については、Spot VM の料金をご覧ください。
Compute Engine でのプリエンプティブル VM の使用
このセクションでは、他の Compute Engine サービスでのプリエンプティブル VM の使用に関する注意すべき情報を提供します。マネージド インスタンス グループ、プレミアム オペレーティング システム、ローカル SSD、GPU が含まれるプリエンプティブル VM の使用方法を説明します。さらに、プリエンプティブル VM が Compute Engine リソースの割り当てにどのように影響するかについて説明します。
マネージド インスタンス グループのプリエンプティブル インスタンス
マネージド インスタンス グループ内にプリエンプティブル インスタンスを作成できます。グループを作成または更新する前に、インスタンスのテンプレートでプリエンプティブル オプションを指定します。
マネージド インスタンス グループは、追加の Compute Engine リソースを利用できる場合にのみ、新しいプリエンプティブル インスタンスを作成または追加できます。これらのリソースが制限されている場合、マネージド インスタンス グループは、グループ内のプリエンプティブル インスタンスをサイズ変更したり、数を自動的に増減することはできません。
マネージド インスタンス グループは、常にターゲット サイズ、またはそのグループに対して autoscaler が指定するサイズを維持しようとします。Compute Engine がマネージド インスタンス グループのプリエンプティブル インスタンスを停止すると、グループは指定されたインスタンス テンプレートを使用して、そのインスタンスを繰り返し再作成しようとします。必要なリソースが再び利用できるようになると、グループはインスタンスを再作成して、ターゲット グループのサイズを維持します。
プリエンプティブル インスタンスのプレミアム オペレーティング システム
プリエンプティブル インスタンスによってプレミアム オペレーティング システムの費用が削減されることはありません。これらのオペレーティング システムの利用に対する課金方法は通常と変わりません。Compute Engine がプレミアム オペレーティング システムを実行するプリエンプティブル インスタンスを停止する場合、そのインスタンスをユーザー自身が停止した場合と同様に、そのオペレーティング システムについて課金されます。最小使用量に対する課金が適用され、プレミアム オペレーティング システムに対する請求は、引き続き最も近い使用量の増分に切り上げて計算されます。
プレミアム オペレーティング システムを実行するプリエンプティブル インスタンスのマシンタイプに対しては、VM インスタンスの料金ページに記載されている価格に従い、常に秒単位で請求されます。
プリエンプティブル インスタンス上のローカル SSD
ローカル SSD ディスクを使用して Spot VM またはプリエンプティブル VM を起動すると、Compute Engine はローカル SSD の使用に対して割引されたスポット料金を請求します。Spot VM またはプリエンプティブル VM にアタッチされたローカル SSD ディスクは、通常のローカル SSD ディスクと同様に動作し、同じデータ永続性特性を持ち、VM が存続する間アタッチされます。
Compute Engine では、実行開始してから 1 分以内に VM がプリエンプトされた場合、Spot VM またはプリエンプティブル VM でのローカル SSD ディスクの使用量に対して課金しません。
プリエンプティブル インスタンスの GPU
より低価格なスポット価格で GPU をプリエンプティブル VM インスタンスに追加できます。プリエンプティブル インスタンスに接続された GPU は、通常の GPU と同様に動作しますが、インスタンスの存続期間中にのみ有効になります。GPU を使用したプリエンプティブル インスタンスは、すべてのプリエンプティブル インスタンスと同じプリエンプション処理に従います。
プリエンプティブル インスタンスの GPU に使用する専用の Preemptible GPU
割り当てをリクエストすることを検討してください。詳細については、プリエンプティブル VM インスタンスの割り当てをご覧ください。
メンテナンス イベント中には、GPU を使用したプリエンプティブル インスタンスはデフォルトでプリエンプトされ、自動的に再起動することはできません。プリエンプトされた後でインスタンスを再作成する場合には、マネージド インスタンス グループを使用します。マネージド インスタンス グループは、vCPU、メモリ、GPU リソースが利用可能であれば、インスタンスを再作成します。
インスタンスがプリエンプトされる前に警告を受けるようにする場合、またはメンテナンス イベントの終了後にインスタンスが自動的に再起動するように構成する場合は、GPU を使用した標準インスタンスを使用します。GPU を使用した標準インスタンスの場合は、Google からプリエンプションの 1 時間前に通知が送信されます。
インスタンスの実行が開始されてから 1 分以内にインスタンスがプリエンプトされた場合、Compute Engine では GPU に対する課金は行いません。
標準インスタンスを自動的に再起動する手順については、インスタンスのオプションの更新をご覧ください。
GPU をアタッチしたプリエンプティブル インスタンスの作成方法については、GPU が接続された VM を作成するをご覧ください。
プリエンプティブル VM インスタンスの割り当て
他の VM と同様に、プリエンプティブル VM には使用可能な CPU の割り当てが必要です。また、ローカル SSD または GPU でプリエンプティブル VM を使用する場合、プリエンプティブル VM にはディスク割り当ておよび GPU 割り当ても必要になります。
これらのリソースでプリエンプティブル VM を使用し、プリエンプティブル割り当てをリクエストしていない場合、プリエンプティブル VM ではこれらのリソースの標準割り当てが消費されます。プリエンプティブル VM を使用する場合は、それらのリソースに対してプリエンプティブル割り当てをリクエストし、プリエンプティブル VM で割り当てが消費されないようにすることを検討してください。
Compute Engine によりあるリージョンでプリエンプティブル割り当てが付与された後は、そのリージョン内のすべてのプリエンプティブル VM(および任意の Spot VM)が、その割り当ての消費としてカウントされます。そのリージョンのすべての標準 VM は、引き続き標準割り当てにカウントされます。プリエンプティブル割り当てがないリージョンでは、標準割り当てを使用してプリエンプティブル VM を起動できます。
プリエンプティブル割り当ては、Compute Engine が割り当てを付与しない限り、gcloud CLI や Google Cloud コンソールの割り当てページに表示されません。詳細については、プリエンプティブル リソースの数量に基づく割り当てをご覧ください。
次のステップ
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオで Compute Engine のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
Compute Engine の無料トライアル