プレースメント ポリシーを置換、削除、消去する


このドキュメントでは、プレースメント ポリシーを管理する方法について説明します。特に、以下の点に注意してください。

  • プレースメント ポリシーを指定する仮想マシン(VM)インスタンスのプロパティを更新して、次のいずれかを行います。

    • プレースメント ポリシーを既存の別のプレースメント ポリシーに置き換えます。

    • プレースメント ポリシーを削除します。

  • 不要になったプレースメント ポリシーを消去します。

準備

  • プレースメント ポリシーの制限事項を確認します。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

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

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

必要なロール

プレースメント ポリシーの置換、削除、または消去に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)roles/compute.instanceAdmin.v1)の IAM ロールを管理者に付与するように依頼してください。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。

この事前定義ロールには、プレースメント ポリシーの置換、削除、消去に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

プレースメント ポリシーを置換、削除、または消去するには、次の権限が必要です。

  • VM のプロパティを更新する: プロジェクトに対する compute.instances.update
  • プレースメント ポリシーを消去する: プロジェクトに対する compute.resourcePolicies.delete

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

VM のプレースメント ポリシーを置き換える

VM で指定されたプレースメント ポリシーを別のプレースメント ポリシーに置き換えるには、gcloud CLI と REST を使用します。

gcloud

VM のプレースメント ポリシーを別のプレースメント ポリシーに置き換える手順は次のとおりです。

  1. 既存の VM のプロパティをエクスポートするには、gcloud compute instances export コマンドを使用します。

    gcloud compute instances export VM_NAME \
        --destination=FILE_PATH \
        --zone=ZONE
    

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

    • VM_NAME: プレースメント ポリシーを指定する既存の VM の名前。

    • FILE_PATH: VM 構成ファイルを保存するパス。

    • ZONE: VM が配置されているゾーン。

  2. 任意のテキスト エディタで、VM 構成ファイルを開きます。

  3. プレースメント ポリシーを別の既存のポリシーに置き換えるには、resourcePolicies フィールドの値を別のプレースメント ポリシーに置き換えます。

    ...
    resourcePolicies:
    - https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/another-example-policy
    ...
    

    VM の他のプロパティを変更することもできます。詳細については、更新できるプロパティをご覧ください。

  4. VM プロパティを更新するの残りの手順を実施します。

REST

VM のプレースメント ポリシーを別のプレースメント ポリシーに置き換える手順は次のとおりです。

  1. 既存の VM のプロパティをエクスポートするには、instances.get メソッドGET リクエストを送信します。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

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

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

    • ZONE: VM が配置されているゾーン。

    • VM_NAME: プレースメント ポリシーを指定する既存の VM の名前。

  2. プレースメント ポリシーを別の既存のポリシーに置き換えるには、resourcePolicies フィールドの値を別のプレースメント ポリシーに置き換えます。

    {
    ...
    "resourcePolicies": [
      "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/another-example-policy"
    ],
    ...
    }
    

    VM の他のプロパティを変更することもできます。詳細については、更新できるプロパティをご覧ください。

  3. VM プロパティを更新するの残りの手順を実施します。

VM からプレースメント ポリシーを削除する

VM に適用されているプレースメント ポリシーを削除するには、gcloud CLI と REST を使用します。

gcloud

VM からプレースメント ポリシーを削除するには、gcloud compute instances remove-resource-policies コマンドを使用します。

gcloud compute instances remove-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

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

  • VM_NAME: プレースメント ポリシーを指定する既存の VM の名前。

  • POLICY_NAME: VM に適用されるプレースメント ポリシーの名前。プレースメント ポリシーの名前を確認するには、VM の詳細を表示して、resourcePolicies フィールドを確認します。

  • ZONE: VM が配置されているゾーン。

REST

VM からプレースメント ポリシーを削除するには、instances.removeResourcePolicies メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/removeResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

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

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

  • ZONE: VM が配置されているゾーン。

  • VM_NAME: プレースメント ポリシーを指定する既存の VM の名前。

  • REGION: プレースメント ポリシーが配置されているリージョン。

  • POLICY_NAME: VM に適用されるプレースメント ポリシーの名前。プレースメント ポリシーの名前を確認するには、VM の詳細を表示して、resourcePolicies フィールドを確認します。

プレースメント ポリシーを消去する

プレースメント ポリシーは、Compute Engine リソースに適用されていない場合にのみ消去できます。Compute Engine リソースに適用されている場合、プレースメント ポリシーの消去は失敗します。Compute Engine リソースに適用されているプレースメント ポリシーを消去するには、次のいずれかを行います。

  • ポリシーが VM にのみ適用されていて、VM を保持する場合は、次の操作を行います。

    1. VM からプレースメント ポリシーを削除します。

    2. プレースメント ポリシーを消去します。

  • ポリシーが VM 以外にも適用されている場合は、次の操作を行います。

    1. 省略可: 保持する VM からプレースメント ポリシーを削除します。

    2. プレースメント ポリシーを適用している他のすべての Compute Engine リソースを次の順序で消去します。

      1. VM

      2. 予約

      3. インスタンス テンプレート

    3. プレースメント ポリシーを消去します。

プレースメント ポリシーを削除するには、gcloud CLI と REST を使用します。

gcloud

プレースメント ポリシーを消去するには、gcloud compute resource-policies delete コマンドを使用します。

gcloud compute resource-policies delete POLICY_NAME \
    --region=REGION

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

  • POLICY_NAME: 既存のプレースメント ポリシーの名前。

  • REGION: プレースメント ポリシーが配置されているリージョン。

REST

プレースメント ポリシーを消去するには、resourcePolicies.delete メソッドDELETE リクエストを送信します。

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME

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

  • PROJECT_ID: プレースメント ポリシーが配置されているプロジェクトの ID。

  • REGION: プレースメント ポリシーが配置されているリージョン。

  • POLICY_NAME: 既存のプレースメント ポリシーの名前。

次のステップ