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 インスタンス管理者(v1) roles/compute.instanceAdmin.v1)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

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

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

インスタンスで正常なシャットダウンを無効にする

コンピューティング インスタンスの正常なシャットダウンは、インスタンスを再起動せずに無効にできます。ただし、インスタンスが正常にシャットダウン中(PENDING_STOP)の間は、正常なシャットダウンを無効にすることはできません。

インスタンスで正常なシャットダウンを無効にするには、次のいずれかのオプションを選択します。

コンソール

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

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

  2. [名前] 列でインスタンス名をクリックして詳細を表示します。

    インスタンスの詳細ページが開き、[詳細] タブが選択されています。

  3. [ 編集] をクリックします。

  4. [管理] セクションで、[VM を正常にシャットダウンする] チェックボックスをオフにします。

  5. [保存] をクリックします。

gcloud

インスタンスで正常なシャットダウンを無効にするには、--no-graceful-shutdown フラグを指定して gcloud beta compute instances update コマンドを使用します。

gcloud beta compute instances update INSTANCE_NAME \
    --no-graceful-shutdown \
    --zone=ZONE

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

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

  • ZONE: インスタンスが配置されているゾーン。

REST

  1. 空の JSON ファイルを作成します。

  2. 既存のインスタンスの属性を表示するには、ベータ版の instances.get メソッドGET リクエストを送信します。

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

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

    • PROJECT_ID: インスタンスが配置されているプロジェクトの ID。

    • ZONE: インスタンスが配置されているゾーン。

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

  3. 前の手順で作成した空の JSON ファイルで、次の操作を行います。

    1. GET リクエストの出力からインスタンス プロパティを入力します。

    2. gracefulShutdown.enabled フィールドを見つけて、その値を false に変更します。

      {
        ...
        "scheduling": {
          ...
          "gracefulShutdown": {
            "enabled": false
          }
        },
        ...
      }
      
  4. インスタンスを更新するには、ベータ版の instances.update メソッドPUT リクエストを送信します。次にその内容を示します。

    • リクエスト URL に mostDisruptiveAllowedAction クエリ パラメータを含めます。

    • リクエスト本文には、前の手順で作成して更新した JSON ファイルのインスタンス プロパティを含めます。

    インスタンスを更新する PUT リクエストは次のようになります。

    PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=ALLOWED_ACTION
    
    {
      ...
      "scheduling": {
        ...
        "gracefulShutdown": {
          "enabled": false
        }
      },
      ...
    }
    

    ALLOWED_ACTION は次のいずれかの値に置き換えます。

    • NO_EFFECT: リクエストは、更新リクエストが有効で、リソースが使用可能かどうかを確認しますが、インスタンスは更新しません。

    • REFRESH: 変更したインスタンス プロパティでインスタンスの再起動が不要な場合、Compute Engine はインスタンスを更新します。

インスタンスのプロパティの更新の詳細については、インスタンス プロパティを更新するをご覧ください。

次のステップ