すべての仮想マシン(VM)インスタンスのメンテナンスは、VM の作成時に選択したホスト メンテナンス ポリシーによって決定されます。一部の VM には、VM のメンテナンス スケジュールを事前に表示するオプションが用意されています。
このページでは、Compute Engine VM でホスト メンテナンス イベントをモニタリングし、計画する方法について説明します。VM のメンテナンス スケジュールを表示するには、VM が次のいずれかのマシン ファミリーのマシンタイプを実行している必要があります。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
必要なロール
VM の作成と VM メンテナンスの管理に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(roles/compute.instanceAdmin.v1
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。
この事前定義ロールには、VM の作成と VM メンテナンスの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
VM を作成し、VM メンテナンスを管理するには、次の権限が必要です。
-
VM に関する情報を取得するには:
compute.instances.get
-
VM を作成するには:
compute.instances.create
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
メンテナンス通知をモニタリングする
Google はいくつかの方法で、今後の VM メンテナンスに関する通知を送信します。通知を見つけるには、VM、メタデータ サーバー、または Cloud Logging にクエリを実行します。定期メンテナンスの時間枠の開始時刻が到来すると、Google Cloud は VM のメンテナンスを自動的に実行します。VM の定期メンテナンスの時間枠をモニタリングすると、中断を最小限に抑えながら、今後のメンテナンスを処理するワークロードをプロアクティブに準備できます。
メンテナンス イベント通知がある VM には次の特性があります。
- メンテナンス イベントが少ない: 一般に、定期的なメンテナンス間隔がある VM では、表示されるメンテナンス イベントも少なくなります。
- 長期のメンテナンス通知: 計画を立てられるよう計画されているメンテナンス イベントに関する通知を十分に前もって受け取ります。
- モニタリングと計画: Cloud Logging を使用してメンテナンス スケジュールを追跡します。インシデントとアラートを使用して最新情報を入手します。
オンデマンド メンテナンス管理: 通知期間中にメンテナンスを開始し、スケジュールに合わせて VM を更新します。
VM でメンテナンス イベント通知を確認する
Google Cloud CLI、REST メソッド、またはメタデータ サーバーを使用して、今後の VM メンテナンス イベントがあるかどうかを確認します。
gcloud
VM の今後のメンテナンス時間枠を確認するには、gcloud compute instances describe
コマンドを使用します。--zone=[ZONE_NAME]
を含める必要があります。
gcloud compute instances describe VM_NAME \ --zone=ZONE
次のように置き換えます。
VM_NAME
: VM の名前。ZONE
: VM が存在するゾーン。
レスポンスは次のようになります。
upcomingMaintenance:{
"canReschedule":True
"latestWindowStartTime": "2023-12-01T19:00:01Z"
"maintenanceStatus":"PENDING"
"type":"SCHEDULED"
"windowEndTime": "2023-12-01T22:00:00Z"
"windowStartTime": "2023-12-01T19:00:00Z"
}
このレスポンスでは、canReschedule
が True
に、maintenanceStatus
が PENDING
に設定されています。表示された日時にメンテナンスがスケジュールされます。これらの設定は、このイベントを事前に手動でトリガーできることを示します。
REST
VM に今後のメンテナンスがあるかどうかを確認するには、instances.get
コマンドを実行します。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME
次のように置き換えます。
PROJECT_NAME
: プロジェクトの名前。ZONE
: VM が存在するゾーン。VM_NAME
: VM の名前。
レスポンスは次のようになります。
upcomingMaintenance:{
"canReschedule":True
"latestWindowStartTime": "2023-12-01T19:00:01Z"
"maintenanceStatus":"PENDING"
"type":"SCHEDULED"
"windowEndTime": "2023-12-01T22:00:00Z"
"windowStartTime": "2023-12-01T19:00:00Z"
}
このレスポンスでは、canReschedule
が TRUE
に、maintenanceStatus
が PENDING
に設定されています。表示された日時にメンテナンスがスケジュールされます。
メタデータ サーバー
ゲスト OS からメタデータ サーバーにクエリを実行して、次のメンテナンス イベントを確認します。
$ curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"
Cloud Logging でメンテナンス イベント通知を確認する
Google は、VM のメンテナンスの前に Cloud Logging に通知を送信します。Cloud Logging により、ログ エクスプローラでシステム イベントが生成されます。VM の定期メンテナンスは、Cloud Logging に compute.instances.upcomingMaintenance
として表示されます。
VM の構成に応じて、Cloud Logging は次の方法でイベントを表示します。
- メンテナンスにライブ マイグレーションを使用するように構成されている VM の場合、イベントは
compute.instances.migrateOnHostMaintenance
というメソッド名で表示されます。 - メンテナンスで終了と自動再起動を使用するように構成された VM の場合、イベントはメソッド名
compute.instances.terminateOnHostMaintenance
で表示されます。
VM がライブ マイグレーションを使用するように構成されている場合、メンテナンスが完了すると、通知がクリアされたことを示す compute.instances.upcomingMaintenance
が表示されます。
メンテナンス通知を受け取るようにアラートを設定すると、メリットが得られる場合があります。詳細については、ログベースのアラートを構成すると通知チャンネルの作成と管理をご覧ください。
メンテナンス ステータスの定義
次のステータス定義では、VM メンテナンス クエリに対するレスポンスについて説明します。VM のメンテナンスに関する情報を提供します。Google Cloud CLI、REST、メタデータ サーバーは、以下に示す同じレスポンスを使用します。
- windowStartTime: メンテナンスが行われる時間枠の開始時刻。
- windowEndTime: メンテナンスが行われる時間枠の終了時刻。
- latestWindowStartTime: 時間枠の移動先に指定できる最も早い時刻。
- maintenanceType: 実行するメンテナンスのタイプ。
- なし: この VM にはメンテナンスはスケジュールされていません。
- スケジュール済み: メンテナンスの 7 日前に通知が届きます。
- スケジュールなし: メンテナンスは、通知されることがはるかに少ない重要な更新を表します。
- canReschedule: この VM の通知期間中にメンテナンスをトリガーできるかどうか。
- TRUE: お客様がトリガーしたメンテナンスは通知期間中に実行できます。
- FALSE: この VM では、お客様がトリガーするメンテナンスを実行できません。これは多くの場合、VM のメンテナンス期間中に発生します。
- maintenanceStatus: 現在のメンテナンス オペレーションのステータス。
- 進行中: メンテナンス オペレーションが進行中です。
- 保留: メンテナンス オペレーションはスケジュールされていますが、まだ開始されていません。
メンテナンス ステータスの動作
メンテナンス スケジュールを管理する際に、canReschedule=
と maintenanceStatus=
のステータスを確認します。これらのレスポンスの組み合わせにより、機能の想定される動作についての説明を確認でき、次のいずれかのステータスの組み合わせが表示されます。
-
canReschedule=Yes
とmaintenanceStatus=Pending
の場合は、VM でメンテナンスをトリガーできます。 -
canReschedule=No
とmaintenanceStatus=Ongoing
の場合、メンテナンスはすでに進行中です。 -
canReschedule=No
とmaintenanceStatus=Pending
の場合、VM は手動トリガーのメンテナンスをサポートしていません。
次のステップ
- VM ホスト メンテナンス ポリシーを設定する方法を確認する。
- ライブ マイグレーションの通知を取得する方法を確認する。
- ホスト メンテナンス イベントを手動でトリガーする方法を確認する。
- Cloud Logging でログベースのアラートを作成する方法を確認する。