インスタンス可用性ポリシーの設定

このページでは、インスタンスの可用性オプションの設定方法について説明します。このオプションにより、メンテナンス イベント発生時の VM インスタンスの動作が決まります。このページでは、メンテナンス イベントの発生時にインスタンスにライブ マイグレーションを設定する方法についても説明します。

ハードウェア / ソフトウェアの更新など、別のホストマシンへの VM の移動が必要になるメンテナンス イベントが発生すると、Google Compute Engine はインスタンスの動作を自動的に管理します。インスタンスの可用性ポリシーでライブ マイグレーションの使用を設定していると、Compute Engine は VM インスタンスにライブ マイグレーションを行います。これにより、イベント発生中のアプリケーションの中断を防ぐことができます。また、ライブ マイグレーションではなく、イベント発生時にインスタンスを終了することもできます。

始める前に

可用性ポリシーの選択

VM インスタンスの可用性ポリシーにより、別のホストマシンへの VM の移動が必要になるイベントが発生したときの動作を指定します。たとえば、Compute Engine が別のホストにライブ マイグレーションを行っているときに VM インスタンスの実行を継続できます。まや、インスタンスを終了することもできます。インスタンスの可用性ポリシーは VM インスタンスの動作を定義します。このポリシーは、必要なときにいつでも更新できます。

インスタンスの可用性ポリシーを変更する場合、次の 2 つの設定を行います。

  • VM インスタンスのメンテナンス動作。メンテナンス イベントが発生した場合に、インスタンスをライブ マイグレーションするか終了するかを設定します。
  • インスタンスの再起動動作。インスタンスがクラッシュまたは終了した場合に、インスタンスを自動的に再起動するかを設定します。

デフォルトのメンテナンス動作では、インスタンスはライブ マイグレーションされますが、メンテナンス イベント中にインスタンスを終了するよう設定を変更することもできます。

ライブ マイグレーション

デフォルトでは、インスタンスはライブ マイグレーションされるよう設定されているため、Google Compute Engine はインフラストラクチャのメンテナンス イベントの影響を受けることなく自動的にインスタンスを移行します。インスタンスは移行中も実行されます。通常は、ほとんどのインスタンスが影響を受けませんが、まれにインスタンスのパフォーマンスが一時的に低下する場合があります。この設定は、継続的な稼働を必要とし、一時的なパフォーマンスの低下に対応できるインスタンスに適しています。

インスタンスを移行する際、Google Compute Engine はゾーン オペレーションのリストに公開されているシステム イベントを報告します。このイベントは、gcloud compute operations list --zones ZONE リクエストの実行、Google Cloud Platform Console でのオペレーションのリストの表示、または API リクエストによって確認できます。イベントは、次のテキストとともに表示されます。

compute.instances.migrateOnHostMaintenance

終了と(必要に応じた)再起動

インスタンスをライブ マイグレーションしたくない場合、インスタンスを終了し、必要に応じて再起動するよう設定できます。このオプションでは、Google Compute Engine がインスタンスにシャットダウンするよう信号を送り、インスタンスが完全にシャットダウンするのを待ってからインスタンスを終了して、メンテナンス イベントに関係なく再起動します。このオプションは、インスタンスが常に最大限のパフォーマンスを要求し、すべてのアプリケーションがインスタンス障害や再起動に対処するように構築されている場合に最適です。

インスタンスを終了、再起動すると、Google Compute Engine はゾーン オペレーションのリストに公開されているシステム イベントを報告します。このイベントは、gcloud compute operations list --zones ZONE リクエストの実行、Google Cloud Platform Console でのオペレーションのリストの表示、または API リクエストによって確認できます。イベントは、次のテキストとともに表示されます。

compute.instances.terminateOnHostMaintenance

インスタンスを再起動したときにも前と同じ永続ブートディスクを使用し、構成したセカンダリ永続ディスクを再接続します。それらのディスク上のデータは、インスタンスの移行や再起動の後も維持されます。

ローカルの SSD データはインスタンスの終了後は維持されません。インスタンスが再起動したときには、新しいローカル SSD が作成されるので、それをフォーマットおよびマウントする必要があります。

自動再起動

メンテナンス イベントが発生したとき、またはハードウェアの根本的な問題でインスタンス障害が起きたときにインスタンスを終了するよう設定されている場合、automaticRestart フィールドを true に設定すると、Google Compute Engine がインスタンスを自動的に再起動します。この設定は、sudo shutdown の呼び出しなどのユーザー操作によってインスタンスがオフラインになった場合には適用されません。

インスタンスを自動的に再起動する際、Google Compute Engine はゾーン オペレーションのリストに公開されているシステム イベントを報告します。このイベントは、gcloud compute operations list --zones ZONE リクエストの実行、Google Cloud Platform Console でのオペレーションのリストの表示、または API リクエストによって確認できます。イベントは、次のテキストとともに表示されます。

compute.instances.automaticRestart

可用性ポリシーの設定

onHostMaintenanceautomaticRestart プロパティを使ってインスタンスのメンテナンス動作と自動再起動を設定します。明示的に指定しない限り、すべてのインスタンスはデフォルト値に設定されます。

  • onHostMaintenance: インスタンスの再起動が必要になるメンテナンス イベントが発生したときの動作を指定します。

    • [デフォルト]migrate では、Compute Engine はメンテナンス イベント発生時にインスタンスをライブ マイグレーションします。
    • terminate を指定すると、インスタンスを移行せずに終了します。
  • automaticRestart: インスタンスがクラッシュしたか、システムによって終了した場合の動作を指定します。

    • [デフォルト]true では、インスタンスがクラッシュまたは終了すると、Compute Engine はインスタンスを再起動します。
    • false では、インスタンスがクラッシュまたは終了しても、Compute Engine はインスタンスを再起動しません。

インスタンスの可用性ポリシーは、最初のインスタンス作成時か、インスタンス作成後setScheduling メソッドを使用して変更できます。

インスタンス作成時のオプションの設定

Console

  1. GCP Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. [インスタンスを作成] をクリックします。
  3. [新しいインスタンスの作成] ページで、インスタンス向けに希望するプロパティを入力します。
  4. [管理、ディスク、ネットワーキング、SSH 認証鍵] のオプションを展開します。
  5. [管理] タブで [可用性ポリシー] セクションまでスクロールし、[自動再起動] と [ホスト メンテナンス] オプションを設定します。
  6. [作成] をクリックしてインスタンスを作成します。

gcloud

gcloud compute で新しいインスタンスの可用性ポリシーを設定するには、--maintenance-policy フラグを使用して、インスタンスを migrated または terminated に指定します。--no-restart-on-failure フラグを設定しない限り、インスタンスは自動的に再起動するようにデフォルト設定されています。

 gcloud compute instances create INSTANCE .. \
     [--maintenance-policy MAINTENANCE_POLICY] \
     [--no-restart-on-failure]

API

API で以下の URL への POST リクエストを行い、プロジェクトとゾーンをお使いのプロジェクト ID とインスタンスのゾーンに書き換えます。

 https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances

onHostMaintenanceautomaticRestart パラメータは、リクエスト本文の一部として送信します。

{
  "name": "example-instance",
  "description": "Front-end for real-time ingest; don't migrate.",
...
  // User options for influencing this Instance’s life cycle.
  "scheduling": {
    "onHostMaintenance": "migrate",
    "automaticRestart": "true" # specifies that Google Compute Engine should automatically restart your instance
  }
}

詳しくは、インスタンスの参照ドキュメントをご覧ください。

インスタンスのオプションの更新

コンソール

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動します

  2. 設定を変更するインスタンスをクリックします。
  3. [可用性ポリシー] 内で [編集] ボタンをクリックし、可用性ポリシーを変更します。

gcloud

インスタンスの可用性ポリシーを更新するには、上記のインスタンス作成コマンドで使用したのと同じパラメータとフラグを指定して instances set-scheduling サブコマンドを使用します。

gcloud compute instances set-scheduling INSTANCE \
    [--maintenance-policy BEHAVIOR] \
    [--no-restart-on-failure | --restart-on-failure]

API

API で以下の URL へのリクエストを行い、プロジェクトとゾーンをお使いのプロジェクト ID とインスタンスのゾーンに書き換えます。

https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/setScheduling

リクエストの本文には、可用性ポリシーの新しい値を入れる必要があります。

{
  "onHostMaintenance": "migrate"
  "automaticRestart": "true" # specifies that Google Compute Engine should automatically restart your instance
}

詳しくは、instances().setScheduling のリファレンス ドキュメントをご覧ください。

次のステップ

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

Compute Engine ドキュメント