ホスト メンテナンス イベントを手動で開始する


このページでは、サポートされている Compute Engine インスタンスでホスト メンテナンス イベントを手動で開始する方法について説明します。この機能を使用すると、メンテナンス イベントを開始して、インスタンスのメンテナンスのタイミングを制御できます。これは、パフォーマンスの低下やダウンタイムの影響を受ける可能性のあるワークロードに対して有効です。このようなワークロードでは、メンテナンスの時間枠を特定の時間に開始する必要があります。

メンテナンス イベントを手動で開始すると、ホスト メンテナンスがすぐに開始されます。メンテナンス イベントの開始日時を指定することはできません。この機能を使用しない場合、メンテナンス イベントは今後のメンテナンスに関する通知に示されている時間に発生します。

最初にアプリケーションがメンテナンス イベントを処理する方法を確認したい場合は、メンテナンス イベントをシミュレートします。

制限事項

次のマシンタイプを使用するインスタンスのホスト メンテナンス イベントを手動で開始できます。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

        このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

必要なロール

VM メンテナンスの管理に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)roles/compute.instanceAdmin.v1)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

この事前定義ロールには、VM メンテナンスの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

VM メンテナンスを管理するには、次の権限が必要です。

  • コンピューティング インスタンスに関する情報を取得する: compute.instances.get

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

ホスト メンテナンス イベントを手動で開始する

Compute Engine は、今後のメンテナンス イベントに関する通知を複数の方法で送信します。通知に表示される情報を使用して、メンテナンス イベントを手動で開始できる期間を確認できます。

通知情報を確認する

メンテナンス イベントの通知は、次のいずれかの方法で確認できます。

ホスト メンテナンス イベントに関する通知に canReschedule=TruemaintenanceStatus=Pending が含まれている場合は、任意のタイミングでメンテナンスを開始するか、windowStartTime で指定された時間にメンテナンス イベントが実行されるまで待つことができます。

通知がない場合にメンテナンス イベントを手動で開始しようとすると、次のメッセージが表示されます。

There is no reschedulable upcoming maintenance.

このメッセージは、メンテナンス イベントがスケジュールされておらず、処理を行う必要がないことを示します。

メンテナンス イベントを開始する

スケジュールされ時間まで待たずに、任意のタイミングでホスト メンテナンスを開始できます。Google Cloud CLI または REST を使用してメンテナンス イベントをトリガーすると、メンテナンス イベントは直ちに開始されます。

gcloud

メンテナンス イベントを開始するには、compute instances perform-maintenance コマンドを使用します。このコマンドを入力すると、ホストのメンテナンスがすぐに開始されます。

gcloud compute instances perform-maintenance INSTANCE_NAME \
    --zone=ZONE

次のように置き換えます。

  • INSTANCE_NAME: コンピューティング インスタンスの名前。
  • ZONE: インスタンスが配置されているゾーン。

レスポンスは次の例のようになります。

resourceStatus:
  upcomingMaintenance:
    canReschedule: false
    latestWindowStartTime: '2025-01-15T19:57:17Z'
    maintenanceStatus: ONGOING
    type: SCHEDULED
    windowEndTime: '2025-01-15T23:57:11Z'
    windowStartTime: '2025-01-15T19:57:16Z'

レスポンスでは canReschedulefalse に、maintenanceStatusONGOING に設定されています。これは、ホスト メンテナンス オペレーションが進行中であることを示します。

REST

メンテナンス イベントを開始するには、instances.performMaintenance メソッドを使用して POST リクエストを作成します。

POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME/performMaintenance

次のように置き換えます。

  • PROJECT_NAME: プロジェクトの名前
  • ZONE: コンピューティング インスタンスが配置されているゾーン
  • INSTANCE_NAME: インスタンスの名前

レスポンスは次のようになります。

upcomingMaintenance:{
  "canReschedule":false
  "latestWindowStartTime": "2023-12-01T19:00:01Z"
  "maintenanceStatus":"ONGOING"
  "type":"SCHEDULED"
  "windowEndTime": "2023-12-01T22:00:00Z"
  "windowStartTime": "2023-12-01T19:00:00Z"
}

レスポンスでは canReschedulefalse に、maintenanceStatusONGOING に設定されています。これは、ホスト メンテナンス オペレーションが進行中であることを示します。

次のステップ