このドキュメントでは、Compute Engine インスタンスで正常なシャットダウンの設定と進行状況を表示する方法について説明します。正常なシャットダウンの詳細については、正常なシャットダウンの概要をご覧ください。
インスタンスの詳細を表示すると、次の操作を行うことができます。
正常なシャットダウンの設定を表示する。正常なシャットダウンが有効になっているかどうかと、その期間を確認できます。
正常なシャットダウンをモニタリングする。正常なシャットダウンの進行中は、次の点を確認できます。
正常なシャットダウン プロセスがタイムアウトしたとき。
停止オペレーションまたは削除オペレーションが進行中の場合。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、サービスと API にアクセスするために ID を確認するプロセスです。 Google Cloud ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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
カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。
正常なシャットダウンの設定を表示する
コンピューティング インスタンスの正常なシャットダウン設定を表示するには、次のいずれかのオプションを選択します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
[名前] 列で、インスタンスの名前をクリックします。
インスタンスの詳細ページが開き、[詳細] タブが表示されます。
正常なシャットダウンの設定を確認するには、[可用性ポリシー] セクションで [正常なシャットダウンの最大時間] フィールドの値を確認します。このフィールドには、正常なシャットダウン期間が表示されます。ハイフン(-)が表示されている場合は、グレースフル シャットダウンが無効になっています。
インスタンスの正常なシャットダウン設定を表示するには、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 分に設定します。
インスタンスの正常なシャットダウン設定を表示するには、ベータ版の 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 分に設定します。
正常なシャットダウンをモニタリングする
コンピューティング インスタンスで進行中の正常なシャットダウンをモニタリングするには、次のいずれかのオプションを選択します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
[名前] 列で、インスタンスの名前をクリックします。
インスタンスの詳細ページが開き、[詳細] タブが表示されます。
正常なシャットダウンが進行中の場合は、[基本情報] セクションで次のフィールドを確認します。
ステータス: このフィールドには、インスタンスの状態が表示されます。正常なシャットダウン中、このフィールドには [停止待ち] とカウントダウン タイマーが表示されます。タイマーは、正常なシャットダウンが終了するまでの時間をカウントダウンします。
ターゲット状態: このフィールドには、Compute Engine がインスタンスを停止(停止)または削除(削除済み)するかどうかが表示されます。
インスタンスで進行中の正常なシャットダウンをモニタリングするには、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_STATE
をSTOPPING
に設定した後、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
フィールドを削除します。
インスタンスで進行中の正常なシャットダウンをモニタリングするには、ベータ版の 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_STATE
をSTOPPING
に設定した後、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
フィールドを削除します。
インスタンスに接続します。
メタデータ サーバーにクエリを実行します。
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_STATE
をSTOPPING
に設定した後、maxDuration
フィールドを削除します。REQUEST_TIMESTAMP
:STOP_STATE
の開始時のタイムスタンプ。STOP_STATE
: インスタンスの停止フェーズ。値は次のいずれかになります。PENDING_STOP
: Compute Engine が正常なシャットダウンを開始しました。正常なシャットダウンを手動で終了するか、正常なシャットダウン期間がタイムアウトするまで、インスタンスはこの状態のままになります。STOPPING
: 正常なシャットダウンが終了し、Compute Engine は停止または削除オペレーションを続行します。
TARGET_STATE
: Compute Engine がインスタンスを停止している(STOPPED
)か削除している(DELETED
)かどうか。