このドキュメントでは、プレースメント ポリシーの置換、削除、消去について説明します。
プレースメント ポリシーの置換、削除、消去は、次の場合に役立ちます。
仮想マシン(VM)インスタンスのプレースメント ポリシーを置き換えて、VM を他の VM と比較して別の位置に移動します。
他の VM に対する特定 VM の位置が不要になった場合は、VM からプレースメント ポリシーを削除します。
不要になったプレースメント ポリシーを消去します。
始める前に
- プレースメント ポリシーの制限事項を確認します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
VM のプレースメント ポリシーを置換または削除する:
compute.instances.update
on the project -
プレースメント ポリシーを消去する:
compute.resourcePolicies.delete
on the project 空の YAML ファイルを作成します。
作成したばかりの YAML ファイルに VM のプロパティをエクスポートするには、
gcloud compute instances export
コマンドを使用します。gcloud compute instances export VM_NAME \ --destination=FILE_PATH \ --zone=ZONE
次のように置き換えます。
VM_NAME
: プレースメント ポリシーを指定する既存の VM の名前。FILE_PATH
: 前の手順で作成した YAML ファイルのパス。ZONE
: VM が配置されているゾーン。
YAML 構成ファイルで
resourcePolicies
フィールドの値を編集して、別のプレースメント ポリシーを指定します。resourcePolicies: - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME
次のように置き換えます。
PROJECT_ID
: プレースメント ポリシーが配置されているプロジェクトの ID。指定できるのは、VM と同じプロジェクトにあるプレースメント ポリシーのみです。REGION
: プレースメント ポリシーが配置されているリージョン。POLICY_NAME
: プレースメント ポリシーの名前。
VM を更新して再起動するには、
--most-disruptive-allowed-action
フラグをRESTART
に設定してgcloud compute instances update-from-file
コマンドを使用します。gcloud compute instances update-from-file VM_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE
次のように置き換えます。
VM_NAME
: VM の名前。YAML_FILE
: 前の手順で変更した構成データを含む YAML ファイルのパス。ZONE
: VM が配置されているゾーン。
空の JSON ファイルを作成します。
既存の 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 の名前。
前の手順で作成した空の JSON ファイルで、次の操作を行います。
GET
リクエストの出力から VM プロパティを入力します。resourcePolicies
フィールドを見つけて、その値を編集して別のプレースメント ポリシーを指定します。"resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ]
次のように置き換えます。
PROJECT_ID
: プレースメント ポリシーが配置されているプロジェクトの ID。指定できるのは、VM と同じプロジェクトにあるプレースメント ポリシーのみです。REGION
: プレースメント ポリシーが配置されているリージョン。POLICY_NAME
: プレースメント ポリシーの名前。
VM を更新して再起動するには、
instances.update
メソッドにPUT
リクエストを送信します。リクエストで、次の操作を行います。リクエスト URL に、
RESTART
に設定されたmost_disruptive_allowed_action
クエリ パラメータを含めます。リクエスト本文には、前の手順で作成して更新した JSON ファイルの VM 構成の詳細を使用します。
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART { ... "resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ], ... }
VM_NAME
: プレースメント ポリシーを指定する既存の VM の名前。POLICY_NAME
: VM に適用されるプレースメント ポリシーの名前。プレースメント ポリシーの名前を確認するには、VM の詳細を表示して、resourcePolicies
フィールドの値を確認します。ZONE
: VM が配置されているゾーン。PROJECT_ID
: VM が配置されているプロジェクトのプロジェクト ID。ZONE
: VM が配置されているゾーン。VM_NAME
: プレースメント ポリシーを指定する既存の VM の名前。REGION
: プレースメント ポリシーが配置されているリージョン。POLICY_NAME
: VM に適用されるプレースメント ポリシーの名前。プレースメント ポリシーの名前を確認するには、VM の詳細を表示して、resourcePolicies
フィールドの値を確認します。ポリシーが VM にのみ適用されていて、VM を保持する場合は、次の操作を行います。
このドキュメントの説明に従って、VM からプレースメント ポリシーを削除します。
このセクションの説明に従って、プレースメント ポリシーを消去します。
上記以外の場合は、次の操作を行います。
省略可: このドキュメントの説明に従って、保持する VM からプレースメント ポリシーを削除します。
プレースメント ポリシーを適用している他のすべての Compute Engine リソースを次の順序で消去します。
VM
予約
インスタンス テンプレート
このセクションの説明に従って、プレースメント ポリシーを消去します。
POLICY_NAME
: 既存のプレースメント ポリシーの名前。REGION
: プレースメント ポリシーが配置されているリージョン。PROJECT_ID
: プレースメント ポリシーが配置されているプロジェクトの ID。REGION
: プレースメント ポリシーが配置されているリージョン。POLICY_NAME
: 既存のプレースメント ポリシーの名前。プレースメント ポリシーを表示する方法を学習する。
プレースメント ポリシーを指定する VM で、次の操作を行う方法を学習する。
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 ロールを管理者に付与するように依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。この事前定義ロールには、プレースメント ポリシーの置換、削除、消去に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
プレースメント ポリシーを置換、削除、または消去するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
VM のプレースメント ポリシーを置き換える
VM のスプレッド プレースメント ポリシーをコンパクト プレースメント ポリシーに置き換える前に、サポートされているマシンタイプとホスト メンテナンス ポリシーが VM で使用されていることを確認してください。プレースメント ポリシーを置き換える前に VM を更新する必要がある場合は、次のいずれかまたは両方を行います。
VM のプレースメント ポリシーを置き換えた後、新しく適用されたプレースメント ポリシーを有効にするには、VM を再起動する必要があります。
VM のプレースメント ポリシーを置き換えるには、次のいずれかのオプションを選択します。
gcloud
REST
VM のプロパティの更新の詳細については、VM プロパティを更新するをご覧ください。
VM からプレースメント ポリシーを削除する
複数のアベイラビリティ ドメインを含むスプレッド プレースメント ポリシーを VM から削除する場合は、VM を停止せずに削除できます。アベイラビリティ ドメインを 1 つだけ使用してコンパクト プレースメント ポリシーまたはスプレッド プレースメント ポリシーを削除する場合は、まず VM を停止してから、VM に適用されているプレースメント ポリシーを削除する必要があります。
VM からプレースメント ポリシーを削除しても、物理的なロケーションには影響しません。ただし、VM がライブ マイグレーション中の場合、Compute Engine は VM を別の物理的なロケーションに移動することがあります。
VM からプレースメント ポリシーを削除するには、次のいずれかのオプションを選択します。
gcloud
VM からプレースメント ポリシーを削除するには、
gcloud compute instances remove-resource-policies
コマンドを使用します。gcloud compute instances remove-resource-policies VM_NAME \ --resource-policies=POLICY_NAME \ --zone=ZONE
次のように置き換えます。
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" ] }
次のように置き換えます。
プレースメント ポリシーを消去する
プレースメント ポリシーは、Compute Engine リソースに適用されていない場合にのみ消去できます。Compute Engine リソースに適用されている場合、プレースメント ポリシーの消去は失敗します。1 つ以上の Compute Engine リソースに適用されているプレースメント ポリシーを消去するには、次のいずれかを行います。
プレースメント ポリシーを消去するには、次のいずれかの方法を選択します。
gcloud
プレースメント ポリシーを消去するには、
gcloud compute resource-policies delete
コマンドを使用します。gcloud compute resource-policies delete POLICY_NAME \ --region=REGION
次のように置き換えます。
REST
プレースメント ポリシーを消去するには、
resourcePolicies.delete
メソッドにDELETE
リクエストを送信します。DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME
次のように置き換えます。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-