このドキュメントでは、プレースメント ポリシーを管理する方法について説明します。特に、以下の点に注意してください。
プレースメント ポリシーを指定する仮想マシン(VM)インスタンスのプロパティを更新して、次のいずれかを行います。
プレースメント ポリシーを既存の別のプレースメント ポリシーに置き換えます。
プレースメント ポリシーを削除します。
不要になったプレースメント ポリシーを消去します。
準備
- プレースメント ポリシーの制限事項を確認します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
-
Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
-
必要なロール
プレースメント ポリシーの置換、削除、または消去に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(roles/compute.instanceAdmin.v1
)の IAM ロールを管理者に付与するように依頼してください。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。
この事前定義ロールには、プレースメント ポリシーの置換、削除、消去に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
プレースメント ポリシーを置換、削除、または消去するには、次の権限が必要です。
-
VM のプロパティを更新する: プロジェクトに対する
compute.instances.update
-
プレースメント ポリシーを消去する: プロジェクトに対する
compute.resourcePolicies.delete
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
VM のプレースメント ポリシーを置き換える
VM で指定されたプレースメント ポリシーを別のプレースメント ポリシーに置き換えるには、gcloud CLI と REST を使用します。
gcloud
VM のプレースメント ポリシーを別のプレースメント ポリシーに置き換える手順は次のとおりです。
既存の VM のプロパティをエクスポートするには、
gcloud compute instances export
コマンドを使用します。gcloud compute instances export VM_NAME \ --destination=FILE_PATH \ --zone=ZONE
次のように置き換えます。
VM_NAME
: プレースメント ポリシーを指定する既存の VM の名前。FILE_PATH
: VM 構成ファイルを保存するパス。ZONE
: VM が配置されているゾーン。
任意のテキスト エディタで、VM 構成ファイルを開きます。
プレースメント ポリシーを別の既存のポリシーに置き換えるには、
resourcePolicies
フィールドの値を別のプレースメント ポリシーに置き換えます。... resourcePolicies: - https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/another-example-policy ...
VM の他のプロパティを変更することもできます。詳細については、更新できるプロパティをご覧ください。
VM プロパティを更新するの残りの手順を実施します。
REST
VM のプレースメント ポリシーを別のプレースメント ポリシーに置き換える手順は次のとおりです。
既存の 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 の名前。
プレースメント ポリシーを別の既存のポリシーに置き換えるには、
resourcePolicies
フィールドの値を別のプレースメント ポリシーに置き換えます。{ ... "resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/another-example-policy" ], ... }
VM の他のプロパティを変更することもできます。詳細については、更新できるプロパティをご覧ください。
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 を保持する場合は、次の操作を行います。
プレースメント ポリシーを消去します。
ポリシーが VM 以外にも適用されている場合は、次の操作を行います。
省略可: 保持する VM からプレースメント ポリシーを削除します。
プレースメント ポリシーを適用している他のすべての Compute Engine リソースを次の順序で消去します。
VM
予約
インスタンス テンプレート
プレースメント ポリシーを消去します。
プレースメント ポリシーを削除するには、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
: 既存のプレースメント ポリシーの名前。
次のステップ
プレースメント ポリシーを表示する方法を学習する。
プレースメント ポリシーを指定する VM で、次の操作を行う方法を学習する。