Compute Engine インスタンスで正常なシャットダウンを表示する


このドキュメントでは、Compute Engine インスタンスで正常なシャットダウンの設定と進行状況を表示する方法について説明します。正常なシャットダウンの詳細については、正常なシャットダウンの概要をご覧ください。

インスタンスの詳細を表示すると、次の操作を行うことができます。

  • 正常なシャットダウンの設定を表示する。正常なシャットダウンが有効になっているかどうかと、その期間を確認できます。

  • 正常なシャットダウンをモニタリングする。正常なシャットダウンの進行中は、次の点を確認できます。

    • 正常なシャットダウン プロセスがタイムアウトしたとき。

    • 停止オペレーションまたは削除オペレーションが進行中の場合。

始める前に

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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

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

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

必要なロール

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

この事前定義ロールには、コンピューティング インスタンスの正常なシャットダウンを表示するために必要な compute.instances.get on the project 権限が含まれています。

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

正常なシャットダウンの設定を表示する

コンピューティング インスタンスの正常なシャットダウン設定を表示するには、次のいずれかのオプションを選択します。

コンソール

  1. Google Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. [名前] 列で、インスタンスの名前をクリックします。

    インスタンスの詳細ページが開き、[詳細] タブが表示されます。

  3. 正常なシャットダウンの設定を確認するには、[可用性ポリシー] セクションで [正常なシャットダウンの最大時間] フィールドの値を確認します。このフィールドには、正常なシャットダウン期間が表示されます。ハイフン(-)が表示されている場合は、グレースフル シャットダウンが無効になっています。

gcloud

インスタンスの正常なシャットダウン設定を表示するには、gcloud beta compute instances describe コマンドを使用します。

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

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

  • INSTANCE_NAME: インスタンスの名前。

  • ZONE: インスタンスが存在するゾーン。

正常なシャットダウンが有効になっている場合、出力は次のようになります。

...
scheduling:
  ...
  gracefulShutdown:
    enabled: true
    maxDuration:
      seconds: 'MAX_DURATION'
  ...
...

出力には MAX_DURATION の値が含まれます。この値は、正常なシャットダウン期間の長さを秒単位で示します。インスタンスで正常なシャットダウンを有効にしたときにカスタム シャットダウン期間を指定していない場合、Compute Engine は maxDuration フィールドを省略し、正常なシャットダウン期間を 10 分に設定します。

REST

インスタンスの正常なシャットダウン設定を表示するには、ベータ版の instances.get メソッドGET リクエストを送信します。

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

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

  • PROJECT_ID: インスタンスが作成されたプロジェクトの ID。

  • ZONE: インスタンスが存在するゾーン。

  • INSTANCE_NAME: インスタンスの名前。

正常なシャットダウンが有効になっている場合、出力は次のようになります。

{
  ...
  "scheduling": {
    ...
    "gracefulShutdown": {
      "enabled": true,
      "maxDuration": {
        "seconds": "MAX_DURATION"
      }
    }
  },
  ...
}

出力には MAX_DURATION の値が含まれます。この値は、正常なシャットダウン期間の長さを秒単位で示します。インスタンスで正常なシャットダウンを有効にしたときにカスタム シャットダウン期間を指定していない場合、Compute Engine は maxDuration フィールドを省略し、正常なシャットダウン期間を 10 分に設定します。

正常なシャットダウンをモニタリングする

コンピューティング インスタンスで進行中の正常なシャットダウンをモニタリングするには、次のいずれかのオプションを選択します。

コンソール

  1. Google Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. [名前] 列で、インスタンスの名前をクリックします。

    インスタンスの詳細ページが開き、[詳細] タブが表示されます。

  3. 正常なシャットダウンが進行中の場合は、[基本情報] セクションで次のフィールドを確認します。

    • ステータス: このフィールドには、インスタンスの状態が表示されます。正常なシャットダウン中、このフィールドには [停止待ち] とカウントダウン タイマーが表示されます。タイマーは、正常なシャットダウンが終了するまでの時間をカウントダウンします。

    • ターゲット状態: このフィールドには、Compute Engine がインスタンスを停止(停止)または削除(削除済み)するかどうかが表示されます。

gcloud

インスタンスで進行中の正常なシャットダウンをモニタリングするには、gcloud beta compute instances describe コマンドを使用します。

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

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

  • INSTANCE_NAME: インスタンスの名前。

  • ZONE: インスタンスが存在するゾーン。

正常なシャットダウンが進行中の場合、出力は次のようになります。

...
resourceStatus:
  ...
  shutdownDetails:
    maxDuration:
      seconds: 'MAX_DURATION'
    requestTimestamp: 'REQUEST_TIMESTAMP'
    stopState: STOP_STATE
    targetState: TARGET_STATE
...
status: PENDING_STOP
...

この出力には次の値が含まれます。

  • MAX_DURATION: 正常なシャットダウン期間の長さ(秒)。Compute Engine は、STOP_STATESTOPPING に設定した後、maxDuration フィールドを削除します。

  • REQUEST_TIMESTAMP: STOP_STATE の開始時のタイムスタンプ。

  • STOP_STATE: インスタンスの停止フェーズ。値は次のいずれかになります。

    • PENDING_STOP: Compute Engine が正常なシャットダウンを開始しました。インスタンスは、手動で正常なシャットダウンを終了するか、正常なシャットダウン期間がタイムアウトするまで、この状態のままになります。

    • STOPPING: 正常なシャットダウンが終了し、Compute Engine は停止または削除オペレーションを続行します。

  • TARGET_STATE: Compute Engine がインスタンスを停止している(STOPPED)か削除している(DELETED)かどうか。

停止オペレーションが実行されている場合、Compute Engine は status フィールドを TERMINATE に設定した後、shutdownDetails フィールドを削除します。

REST

インスタンスで進行中の正常なシャットダウンをモニタリングするには、ベータ版の instances.get メソッドGET リクエストを送信します。

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

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

  • PROJECT_ID: インスタンスが作成されたプロジェクトの ID。

  • ZONE: インスタンスが存在するゾーン。

  • INSTANCE_NAME: インスタンスの名前。

正常なシャットダウンが進行中の場合、出力は次のようになります。

{
  ...
  "resourceStatus": {
    ...
    "shutdownDetails": {
      "maxDuration": {
        "seconds": "MAX_DURATION"
      },
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
  },
  ...
  "status": "PENDING_STOP",
  ...
}

この出力には次の値が含まれます。

  • MAX_DURATION: 正常なシャットダウン期間の長さ(秒)。Compute Engine は、STOP_STATESTOPPING に設定した後、maxDuration フィールドを削除します。

  • REQUEST_TIMESTAMP: STOP_STATE の開始時のタイムスタンプ。

  • STOP_STATE: インスタンスの停止フェーズ。値は次のいずれかになります。

    • PENDING_STOP: Compute Engine が正常なシャットダウンを開始しました。インスタンスは、手動で正常なシャットダウンを終了するか、正常なシャットダウン期間がタイムアウトするまで、この状態のままになります。

    • STOPPING: 正常なシャットダウンが終了し、Compute Engine は停止または削除オペレーションを続行します。

  • TARGET_STATE: Compute Engine がインスタンスを停止している(STOPPED)か削除している(DELETED)かどうか。

停止オペレーションが実行されている場合、Compute Engine は status フィールドを TERMINATE に設定した後、shutdownDetails フィールドを削除します。

メタデータ サーバー

  1. インスタンスに接続します。

  2. メタデータ サーバーにクエリを実行します。

    curl "http://metadata.google.internal/computeMetadata/v1/instance/shutdown-details/?recursive=true?alt=json" \-H "Metadata-Flavor: Google"
    

    正常なシャットダウンが進行中の場合、出力は次のようになります。

    {
      "maxDuration": "MAX_DURATION",
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
    

    出力には次の値が含まれます。

    • MAX_DURATION: 正常なシャットダウン期間の長さ(秒)。Compute Engine は、STOP_STATESTOPPING に設定した後、maxDuration フィールドを削除します。

    • REQUEST_TIMESTAMP: STOP_STATE の開始時のタイムスタンプ。

    • STOP_STATE: インスタンスの停止フェーズ。値は次のいずれかになります。

      • PENDING_STOP: Compute Engine が正常なシャットダウンを開始しました。正常なシャットダウンを手動で終了するか、正常なシャットダウン期間がタイムアウトするまで、インスタンスはこの状態のままになります。

      • STOPPING: 正常なシャットダウンが終了し、Compute Engine は停止または削除オペレーションを続行します。

    • TARGET_STATE: Compute Engine がインスタンスを停止している(STOPPED)か削除している(DELETED)かどうか。

次のステップ