배치 정책 교체, 삭제, 제거하기


이 문서에서는 배치 정책을 교체, 삭제, 제거하는 방법을 설명합니다.

배치 정책의 교체, 삭제, 제거는 다음과 같은 경우에 유용합니다.

  • 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

    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 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 배치 정책을 교체, 삭제, 제거하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

배치 정책을 교체, 삭제, 제거하려면 다음 권한이 필요합니다.

  • VM에서 배치 정책을 교체하거나 삭제하려면 compute.instances.update on the project 권한
  • 배치 정책을 제거하려면 compute.resourcePolicies.delete on the project 권한

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

VM에서 배치 정책 바꾸기

VM의 분산 배치 정책을 압축 배치 정책으로 교체하려면 VM에 지원되는 머신 유형 및 호스트 유지보수 정책이 사용되는지 확인합니다. 배치 정책을 교체하기 전에 VM 업데이트가 필요하면 다음 중 하나를 수행합니다.

VM에서 배치 정책을 교체한 후에는 새로 적용된 배치 정책이 적용되도록 VM을 다시 시작해야 합니다.

VM에서 배치 정책을 바꾸려면 다음 옵션 중 하나를 선택합니다.

gcloud

  1. 빈 YAML 파일을 만듭니다.

  2. VM 속성을 방금 만든 YAML 파일로 내보내려면 gcloud compute instances export 명령어를 사용합니다.

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

    다음을 바꿉니다.

    • VM_NAME: 배치 정책을 지정하는 기존 VM의 이름입니다.

    • FILE_PATH: 이전 단계에서 만든 YAML 파일의 경로입니다.

    • ZONE: VM이 있는 영역입니다.

  3. YAML 구성 파일에서 resourcePolicies 필드의 값을 수정하여 다른 배치 정책을 지정합니다.

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

    다음을 바꿉니다.

    • PROJECT_ID: 배치 정책이 있는 프로젝트의 ID입니다. VM과 동일한 프로젝트에 있는 배치 정책만 지정할 수 있습니다.

    • REGION: 배치 정책이 있는 리전입니다.

    • POLICY_NAME: 배치 정책의 이름입니다.

  4. 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이 있는 영역입니다.

REST

  1. 빈 JSON 파일을 만듭니다.

  2. 기존 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의 이름입니다.

  3. 이전 단계에서 만든 빈 JSON 파일에서 다음을 수행합니다.

    1. GET 요청 출력의 VM 속성을 입력합니다.

    2. resourcePolicies 필드를 찾아 값을 수정하여 다른 배치 정책을 지정합니다.

      "resourcePolicies": [
        "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
      

      다음을 바꿉니다.

      • PROJECT_ID: 배치 정책이 있는 프로젝트의 ID입니다. VM과 동일한 프로젝트에 있는 배치 정책만 지정할 수 있습니다.

      • REGION: 배치 정책이 있는 리전입니다.

      • POLICY_NAME: 배치 정책의 이름입니다.

  4. VM을 업데이트하고 다시 시작하려면 PUT 요청을 instances.update 메서드에 보냅니다. 요청에서 다음을 수행합니다.

    • 요청 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 속성 업데이트에 대한 자세한 내용은 VM 속성 업데이트를 참조하세요.

VM에서 배치 정책 삭제

VM에서 가용성 도메인이 둘 이상 있는 분산 배치 정책을 삭제하려면 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

다음을 바꿉니다.

  • 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 리소스에 적용된 배치 정책을 삭제하려면 다음 중 하나를 수행합니다.

  • 정책이 VM에만 적용되고 VM을 유지하려면 다음을 수행합니다.

    1. 문서에 설명된 대로 VM에서 배치 정책을 삭제합니다.

    2. 이 섹션에 설명된 대로 배치 정책을 제거합니다.

  • 그렇지 않은 경우에는 다음 단계를 따라야 합니다.

    1. 선택사항: 이 문서에 설명된 대로 유지하려는 VM의 배치 정책을 삭제합니다.

    2. 배치 정책이 적용된 다른 모든 Compute Engine 리소스를 다음 순서로 제거합니다.

      1. VM

      2. 예약

      3. 인스턴스 템플릿

    3. 이 섹션에 설명된 대로 배치 정책을 제거합니다.

배치 정책을 제거하려면 다음 옵션 중 하나를 선택합니다.

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: 기존 배치 정책의 이름입니다.

다음 단계