このドキュメントでは、Compute Engine インスタンスの正常なシャットダウン プロセスの概要について説明します。インスタンスのライフサイクル中に発生する状態の詳細については、Compute Engine インスタンスのライフサイクルをご覧ください。
インスタンスを停止または削除するときに、Compute Engine はゲスト OS が完全にシャットダウンするまで短時間待機します。この時間内にゲスト OS がタスクの実行を完了しなかった場合、Compute Engine は強制的にシャットダウンします。これにより、データの損失やファイル システムの破損が発生する可能性があります。
このような問題を回避するには、インスタンスで正常なシャットダウンを有効にします。この設定を有効にすると、Compute Engine がゲスト OS をシャットダウンする前に、ゲスト OS はタスクの実行を完了するために最大 1 時間の猶予があります。正常なシャットダウンは、次のようなシナリオに役立ちます。
ハイ パフォーマンス コンピューティング(HPC)ジョブを完全にシャットダウンできるようにします。
データベースがアクティブなトランザクションの送信を完了できるようにする。
メールサーバーがシャットダウンする前に処理を完了できるようにする。
マルチプレーヤー ゲーム セッションの実行を終了できるようにする。
正常なシャットダウンについて
以降のセクションでは、正常なシャットダウンの仕組みについて説明します。
シャットダウン時間
コンピューティング インスタンスでは、正常なシャットダウンはデフォルトで無効になっています。これは、インスタンスの作成時または更新時に有効にできます。正常なシャットダウンを有効にすると、次のようにシャットダウン期間を指定できます。
デフォルトの期間: シャットダウン期間を指定しない場合、Compute Engine はデフォルトの期間 10 分を使用します。
カスタム期間: 1 秒から 1 時間まで。
アプリケーションが実行中のタスクを完了するのに十分な時間があるシャットダウン期間を選択することをおすすめします。たとえば、アプリケーションがタスクの実行を完了するのに 10 分かかると見積もる場合は、15 分間のシャットダウン期間を指定することをおすすめします。このアプローチにより、タスクが強制的に停止され、データが破損する可能性を防ぐことができます。ゲスト OS のすべてのタスクの実行が完了したら、次のセクションで説明するように、手動で正常なシャットダウンを終了して費用を節約できます。
シャットダウン プロセス
正常なシャットダウンが有効になっているコンピューティング インスタンスを停止または削除した場合、または Compute Engine がスケジュールされた停止または削除のためにインスタンスを停止または削除した場合、インスタンスの状態は PENDING_STOP
に変わります。正常なシャットダウンが開始され、アプリケーションはタスクの実行を完了できます。
Compute Engine は、正常なシャットダウン期間がタイムアウトするとインスタンスの正常なシャットダウンを終了します。また、次のように手動で正常なシャットダウンを終了することもできます。
ゲスト OS 内から。ゲスト OS のシャットダウン コマンド(
sudo shutdown -h now
など)を使用してインスタンスを停止します。Google Cloud よりインスタンスを停止または削除するには、次のいずれかの方法を使用します。
Google Cloud コンソール: 次の操作を行います。
[VM インスタンス] ページに移動します。
インスタンスを選択して、
[停止] または [削除] をクリックします。表示されたダイアログで、[正常なシャットダウンをスキップする(該当する場合)] チェックボックスをオンにして、インスタンスの停止または削除を確定します。
Google Cloud CLI: コマンドに
--no-graceful-shutdown
フラグを指定します。REST API: リクエスト URL に
noGracefulShutdown=true
クエリ パラメータを含めます。
正常なシャットダウン プロセスが終了すると、Compute Engine は Advanced Configuration and Power Interface(ACPI)G2 ソフトオフ信号をゲスト OS に送信し、インスタンスの状態を STOPPING
に設定してから、停止または削除オペレーションを続行します。
正常なシャットダウンなしで停止または削除する
インスタンスで正常なシャットダウンを有効にしても、正常なシャットダウン プロセスを経ずにインスタンスを停止または削除できます。このアプローチは、特定の日にインスタンスを正常にシャットダウンする必要がないときや、インスタンスで実行されているワークロードが変更されたときなどに、費用を節約するのに役立ちます。
正常なシャットダウンをスキップするには、次のいずれかを行います。
単一オペレーションの正常なシャットダウンをスキップする。正常なシャットダウンを有効にしたまま、特定の停止オペレーションまたは削除オペレーションでバイパスします。これを行うには、手動シャットダウン プロセスに沿って操作します。
グレースフル シャットダウンを完全に無効にする。インスタンスを正常にシャットダウンする必要がなくなった場合は、この機能を無効にできます。詳細については、Compute Engine インスタンスで正常なシャットダウンを無効にするをご覧ください。
制限事項
正常なシャットダウンには次の制限があります。
次のコンピューティング インスタンスでは、正常なシャットダウンを有効にできません。
マネージド インスタンス グループ(MIG)に含まれるインスタンス。
制限付きランタイムを指定するインスタンス。
インスタンスで正常なシャットダウンを有効にすると、次の操作はできなくなります。
再起動が必要なインスタンス プロパティは更新できません。
インスタンスが TPU VM の場合、ホスト メンテナンス イベントをシミュレートすることはできません。
正常なシャットダウンが進行中の場合(
PENDING_STOP
)、次の操作はできません。インスタンスのプロパティは更新できません。
インスタンスが削除中の場合、削除保護を有効または無効にすることはできません。
次の場合に、インスタンスが正常にシャットダウンされないか、正常なシャットダウンが中断されます。
Spot VM またはプリエンプティブル インスタンスがプリエンプトされた。
インスタンスのホスト メンテナンス ポリシーが
TERMINATE
に設定されており、Compute Engine がホスト イベントのためにインスタンスを停止します。
一度にシャットダウンして削除できるのは、プロジェクトとリージョンごとに最大 8,000 個のインスタンスのみで、正常なシャットダウンが必要です。
一括作成されたインスタンスの正常なシャットダウンまたは正常なシャットダウン設定の変更は、Compute Engine がすべてのインスタンスの作成を完了した後にのみ行えます。
料金
コンピューティング インスタンスで正常なシャットダウンを有効または無効にしても、費用は発生しません。ただし、正常なシャットダウンが有効になっているインスタンスを停止または削除すると、実行中の場合と同様にインスタンスに対して料金が発生します。これらの料金は、正常なシャットダウン期間が終了し、インスタンスの状態が STOPPING
に変更されると停止します。
詳細な料金情報については、VM インスタンスの料金をご覧ください。