すべての仮想マシン(VM)インスタンスのメンテナンスは、VM の作成時に選択したホスト メンテナンス ポリシーによって決定されます。一部の VM には、VM のメンテナンス スケジュールを事前に表示するオプションが用意されています。
このページでは、Compute Engine VM でホスト メンテナンス イベントをモニタリングし、計画する方法について説明します。VM のメンテナンス スケジュールを表示するには、VM が次のいずれかのマシン ファミリーのマシンタイプを実行している必要があります。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
VM に関する情報を取得するには:
compute.instances.get
-
VM を作成するには:
compute.instances.create
- メンテナンス イベントが少ない: 一般に、定期的なメンテナンス間隔がある VM では、表示されるメンテナンス イベントも少なくなります。
- 長期のメンテナンス通知: 計画を立てられるよう計画されているメンテナンス イベントに関する通知を十分に前もって受け取ります。
- モニタリングと計画: Cloud Logging を使用してメンテナンス スケジュールを追跡します。インシデントとアラートを使用して最新情報を入手します。
オンデマンド メンテナンス管理: 通知期間中にメンテナンスを開始し、スケジュールに合わせて VM を更新します。
VM_NAME
: VM の名前。ZONE
: VM が存在するゾーン。PROJECT_NAME
: プロジェクトの名前。ZONE
: VM が存在するゾーン。VM_NAME
: VM の名前。- メンテナンスにライブ マイグレーションを使用するように構成されている VM の場合、イベントは
compute.instances.migrateOnHostMaintenance
というメソッド名で表示されます。 - メンテナンスで終了と自動再起動を使用するように構成された VM の場合、イベントはメソッド名
compute.instances.terminateOnHostMaintenance
で表示されます。 - windowStartTime: メンテナンスが行われる時間枠の開始時刻。
- windowEndTime: メンテナンスが行われる時間枠の終了時刻。
- latestWindowStartTime: 時間枠の移動先に指定できる最も早い時刻。
- maintenanceType: 実行するメンテナンスのタイプ。
- なし: この VM にはメンテナンスはスケジュールされていません。
- スケジュール済み: メンテナンスの 7 日前に通知が届きます。
- スケジュールなし: メンテナンスは、通知されることがはるかに少ない重要な更新を表します。
- canReschedule: この VM の通知期間中にメンテナンスをトリガーできるかどうか。
- TRUE: お客様がトリガーしたメンテナンスは通知期間中に実行できます。
- FALSE: この VM では、お客様がトリガーするメンテナンスを実行できません。これは多くの場合、VM のメンテナンス期間中に発生します。
- maintenanceStatus: 現在のメンテナンス オペレーションのステータス。
- 進行中: メンテナンス オペレーションが進行中です。
- 保留: メンテナンス オペレーションはスケジュールされていますが、まだ開始されていません。
-
canReschedule=Yes
とmaintenanceStatus=Pending
の場合は、VM でメンテナンスをトリガーできます。 -
canReschedule=No
とmaintenanceStatus=Ongoing
の場合、メンテナンスはすでに進行中です。 -
canReschedule=No
とmaintenanceStatus=Pending
の場合、VM は手動トリガーのメンテナンスをサポートしていません。 - VM ホスト メンテナンス ポリシーを設定する方法を確認する。
- ライブ マイグレーションの通知を取得する方法を確認する。
- ホスト メンテナンス イベントを手動でトリガーする方法を確認する。
- Cloud Logging でログベースのアラートを作成する方法を確認する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
VM の作成と VM メンテナンスの管理に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。この事前定義ロールには、VM の作成と VM メンテナンスの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
VM を作成し、VM メンテナンスを管理するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
メンテナンス通知をモニタリングする
Google はいくつかの方法で、今後の VM メンテナンスに関する通知を送信します。通知を見つけるには、VM、メタデータ サーバー、または Cloud Logging にクエリを実行します。定期メンテナンスの時間枠の開始時刻が到来すると、Google Cloud は VM のメンテナンスを自動的に実行します。VM の定期メンテナンスの時間枠をモニタリングすると、中断を最小限に抑えながら、今後のメンテナンスを処理するワークロードをプロアクティブに準備できます。
メンテナンス イベント通知がある VM には次の特性があります。
VM でメンテナンス イベント通知を確認する
Google Cloud CLI、REST メソッド、またはメタデータ サーバーを使用して、今後の VM メンテナンス イベントがあるかどうかを確認します。
gcloud
VM の今後のメンテナンス時間枠を確認するには、
gcloud compute instances describe
コマンドを使用します。--zone=[ZONE_NAME]
を含める必要があります。gcloud compute instances describe VM_NAME \ --zone=ZONE
次のように置き換えます。
レスポンスは次のようになります。
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
次のように置き換えます。
レスポンスは次のようになります。
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.upcomingMaintenance
が表示されます。メンテナンス通知を受け取るようにアラートを設定すると、メリットが得られる場合があります。詳細については、ログベースのアラートを構成すると通知チャンネルの作成と管理をご覧ください。
メンテナンス ステータスの定義
次のステータス定義では、VM メンテナンス クエリに対するレスポンスについて説明します。VM のメンテナンスに関する情報を提供します。Google Cloud CLI、REST、メタデータ サーバーは、以下に示す同じレスポンスを使用します。
メンテナンス ステータスの動作
メンテナンス スケジュールを管理する際に、
canReschedule=
とmaintenanceStatus=
のステータスを確認します。これらのレスポンスの組み合わせにより、機能の想定される動作についての説明を確認でき、次のいずれかのステータスの組み合わせが表示されます。次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-19 UTC。
-