VM 인스턴스 배치 정책 사용


각 가상 머신(VM) 인스턴스는 데이터 센터의 클러스터에 배치된 랙에 있는 물리적 서버 또는 호스트에서 실행됩니다. 다음 배치 정책을 사용하여 영역 내에서 VM이 서로 상대적으로 배치된 물리적 위치를 제어할 수 있습니다.

  • 분산 정책. VM을 서로 분산하려면 분산 정책을 사용합니다. 이렇게 하면 호스트 시스템 장애로 인한 영향을 줄이거나 VM의 라이브 마이그레이션을 최적화할 수 있습니다.
  • 압축 정책. VM 간의 네트워크 지연 시간이 단축되도록 VM을 서로 가까이 배치하려는 경우에는 압축 정책을 사용합니다.

시작하기 전에

제한사항

배치 정책에는 다음과 같은 제한사항이 있습니다.

  • 분산 정책:
    • 정책당 VM을 최대 8개까지 지원합니다.
    • C2, G2, N1, N2, N2D 머신 유형만 지원합니다.
    • VM 배치 토폴로지 API에서는 사용할 수 없습니다.
    • VM 예약과 함께 사용할 수 없습니다.
  • 압축 정책:

배치 정책 만들기

VM이 서로 상대적으로 배치되어 있는 위치를 제어하려면 다음 프로세스를 수행합니다.

  1. VM에 필요한 배치 구성으로 분산 또는 압축 배치 정책 중 하나를 만듭니다.
    • 분산 배치 정책은 VM이 동일한 호스트 또는 전원 시스템을 공유하지 않도록 기본 데이터 센터 인프라에 엄격하게 배치합니다. 그러면 호스트 또는 전원 오류의 영향이 줄어듭니다.
    • 압축 배치 정책은 VM 간 네트워크 지연 시간을 줄이기 위해 VM을 서로 가까이 배치합니다.
  2. 하나 이상의 VM에 배치 정책을 적용합니다. 동일한 정책을 공유하는 VM은 정책을 정의한 방식에 따라 상대적으로 배치됩니다. 새 VM과 기존 VM에 정책을 적용할 수도 있고, 인스턴스 템플릿에 정책을 지정할 수도 있습니다. 인스턴스 템플릿을 사용하여 독립형 VM, 관리형 인스턴스 그룹(MIG), VM 예약을 만들 수 있습니다.

분산 배치 정책 만들기

VM이 여러 가용성 도메인에 위치한 분산 배치 정책을 만들려면 이 정책이 VM을 서로 구분하는 데 사용할 가용성 도메인 수를 지정합니다.

gcloud

gcloud CLI를 사용하여 정책을 만듭니다.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --availability-domain-count DOMAIN_COUNT \
    --region REGION \
    --project PROJECT_ID

다음을 바꿉니다.

  • POLICY_NAME: 새 정책 이름입니다.
  • DOMAIN_COUNT: 이 정책이 VM을 구분하는 데 사용할 호스트 하드웨어 및 물리적 네트워크의 고유한 집합 수입니다.
  • REGION: 이 정책을 사용하는 VM을 만들려는 리전입니다.
  • PROJECT_ID: 프로젝트 ID입니다.

API

Google Cloud 콘솔 API 및 서비스에서 resourcePolicies.insert 메서드를 사용하여 분산 배치 정책을 만듭니다.

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

요청 본문에 배치 정책 세부정보를 제공합니다.

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 이 정책을 사용하는 VM을 만들려는 리전입니다.
  • POLICY_NAME: 새 정책 이름입니다.
  • DOMAIN_COUNT: 이 정책이 VM을 구분하는 데 사용할 호스트 하드웨어 및 물리적 네트워크의 고유한 집합 수입니다.

압축 배치 정책 만들기

VM이 서로 가깝고 동일한 네트워크 인프라에 배치되는 압축 배치 정책을 만들려면 COLLOCATED 정책을 지정합니다.

gcloud

gcloud CLI를 사용하여 정책을 만듭니다.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --collocation COLLOCATED \
    --region REGION \
    --project PROJECT_ID

다음을 바꿉니다.

  • POLICY_NAME: 새 정책 이름입니다.
  • REGION: 이 정책을 사용하는 VM을 만들려는 리전입니다.
  • PROJECT_ID: 프로젝트 ID입니다.

API

Google Cloud 콘솔 API 및 서비스에서 resourcePolicies.insert 메서드를 사용하여 압축 배치 정책을 만듭니다.

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

요청 본문에 배치 정책 세부정보를 제공합니다.

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "collocation": "COLLOCATED"
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 이 정책을 사용하는 VM을 만들려는 리전입니다.
  • POLICY_NAME: 새 정책 이름입니다.

VM에 배치 정책 적용

배치 정책을 만든 후 새 VM 또는 기존 VM에 적용할 수 있습니다. 배치 정책 지원은 시나리오에 따라 다릅니다.

시나리오 압축 배치 지원 분산 배치 지원
새 VM에 배치 정책 적용
기존 VM에 배치 정책 적용
VM을 만드는 데 사용할 수 있는 인스턴스 템플릿에 배치 정책 지정
MIG를 만들거나 업데이트하는 데 사용할 수 있는 인스턴스 템플릿에 배치 정책 지정
VM 예약을 만드는 데 사용할 수 있는 인스턴스 템플릿에 배치 정책 지정

새 VM에 배치 정책 적용

배치 정책을 만든 후 하나 이상의 VM에 적용합니다. 동일한 정책을 공유하는 VM은 정책을 정의한 방식에 따라 상대적으로 배치됩니다.

gcloud

VM을 개별적으로 또는 일괄로 만들 때 --resource-policies 플래그를 포함하여 VM에 배치 정책을 적용합니다.

압축 배치 정책의 경우 --maintenance-policy=TERMINATE--no-restart-on-failure 플래그를 포함해야 합니다.

예를 들어 압축 배치 정책을 사용하는 VM을 만들려면 다음 명령어를 사용합니다.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --resource-policies=POLICY_NAME \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --project=PROJECT_ID \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure \
    --async

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • ZONE: 새 VM을 만들 영역입니다.

    이 영역은 배치 정책이 위치한 동일한 리전에 있어야 합니다.

  • POLICY_NAME: 이 VM에 적용할 배치 정책의 이름입니다.

    VM에 배치 정책을 두 개 이상 적용할 수 있습니다.

  • IMAGE_FAMILY: 사용 가능한 이미지 계열 중 하나입니다.

  • IMAGE_PROJECT: 이미지가 속한 이미지 프로젝트입니다.

  • PROJECT_ID: 프로젝트 ID입니다.

API

VM을 개별적으로 또는 일괄로 만들 때 --resource-policies 플래그를 포함하여 VM에 배치 정책을 적용합니다.

예를 들어 단일 VM을 만들려면 다음 명령어를 사용합니다.

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

요청 본문에 리소스 정책을 제공합니다. 압축 배치 정책의 경우 "onHostMaintenance": "TERMINATE""automaticRestart": false 인수를 포함해야 합니다.

{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "scheduling": {
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": false
  },
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
     }
  }],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: 새 VM을 만들 영역입니다.

    이 영역은 배치 정책이 위치한 동일한 리전에 있어야 합니다.

  • VM_NAME: 새 VM의 이름입니다.

  • MACHINE_TYPE: 새 VM의 머신 유형입니다.

  • IMAGE_PROJECT: 이미지가 속한 이미지 프로젝트입니다.

  • IMAGE_FAMILY: 사용 가능한 이미지 계열 중 하나입니다.

  • REGION: 배치 정책을 만든 리전입니다.

  • POLICY_NAME: 이 VM에 적용할 배치 정책의 이름입니다.

    VM에 배치 정책을 두 개 이상 적용할 수 있습니다.

기존 VM에 분산 배치 정책 적용

분산 배치 정책을 만드는 경우 VM을 다시 시작하지 않고 기존 VM 하나 이상에 적용할 수 있습니다.

gcloud

add-resource-policies 명령어를 사용하여 기존 인스턴스에 분산 배치 정책을 적용합니다.

gcloud compute instances add-resource-policies VM_NAME \
    --zone=ZONE \
    --resource-policies=SPREAD_PLACEMENT_POLICY_NAME \
    --project=PROJECT_ID

다음을 바꿉니다.

  • VM_NAME: VM의 이름입니다.
  • ZONE: VM의 영역

    이 영역은 배치 정책이 위치한 동일한 리전에 있어야 합니다.

  • SPREAD_PLACEMENT_POLICY_NAME: 이 VM에 적용할 기존 분산 배치 정책의 이름입니다.

  • PROJECT_ID: 프로젝트 ID입니다.

API

addResourcePolicies 메서드를 사용하여 기존 인스턴스에 분산 배치 정책을 적용합니다.

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

요청 본문에 분산 배치 정책을 제공합니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: 새 VM을 만들 영역입니다.

    이 영역은 배치 정책이 위치한 동일한 리전에 있어야 합니다.

  • VM_NAME: 새 VM의 이름입니다.

  • REGION: 이 정책을 사용하는 VM 인스턴스를 만들려는 리전입니다.

  • SPREAD_PLACEMENT_POLICY_NAME: 이 VM에 적용할 기존 분산 배치 정책의 이름입니다.

배치 정책을 지정하는 인스턴스 템플릿 만들기

인스턴스 템플릿을 만들 때 배치 정책을 지정할 수 있습니다. 구체적으로는 다음과 같습니다.

  • 인스턴스 템플릿에 압축 배치 정책을 지정하면 템플릿을 사용하여 MIG, VM, VM 예약을 만들 수 있습니다.

  • 인스턴스 템플릿에 분산 배치 정책을 지정하면 템플릿을 사용하여 MIG 및 VM만 만들 수 있습니다.

gcloud

리소스 정책을 지정하는 인스턴스 템플릿을 만들려면 gcloud compute instance-templates create 명령어--resource-policies 플래그와 함께 사용합니다. 압축 배치 정책을 지정하려면 --maintenance-policy=TERMINATE--no-restart-on-failure 플래그도 지정해야 합니다.

예를 들어 기본 VM 속성이 있고 압축 배치 정책을 포함하는 인스턴스 템플릿을 만들려면 다음 명령어를 사용합니다.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --resource-policies=COMPACT_PLACEMENT_POLICY_NAME \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

다음을 바꿉니다.

  • INSTANCE_TEMPLATE_NAME: 인스턴스 템플릿의 이름입니다.

  • COMPACT_PLACEMENT_POLICY_NAME: 기존 압축 배치 정책의 이름입니다.

API

리소스 정책을 지정하는 인스턴스 템플릿을 만들려면 instanceTemplates.insert 메서드POST를 요청합니다. 요청 본문에서 resourcePolicies 필드에 배치 정책을 지정합니다. 압축 배치 정책을 지정하려면 "onHostMaintenance": "TERMINATE""automaticRestart": false 필드도 지정해야 합니다.

예를 들어 기본 VM 속성이 있고 압축 배치 정책을 포함하는 인스턴스 템플릿을 만들려면 다음 명령어를 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "resourcePolicies": {
      "COMPACT_PLACEMENT_POLICY_NAME"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    },
    ...
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 현재 프로젝트의 프로젝트 ID입니다.

  • INSTANCE_TEMPLATE_NAME: 인스턴스 템플릿의 이름입니다.

  • COMPACT_PLACEMENT_POLICY_NAME: 기존 압축 배치 정책의 이름입니다.

템플릿을 사용하여 MIG, VM, VM 예약을 만들려면 다음 문서를 참조하세요.

관리형 인스턴스 그룹의 VM에 배치 정책 적용

배치 정책을 만든 후 정책을 지정하는 인스턴스 템플릿을 만듭니다. 그런 다음 해당 인스턴스 템플릿으로 MIG를 만들거나 기존 MIG를 업데이트합니다. 해당 인스턴스 템플릿을 사용하는 그룹의 VM에 배치 정책이 적용됩니다.

워크로드에 필요한 VM 간 통신량이 많은 경우 압축 배치 정책을 만들고 모든 단일 영역 분산 형태로 리전 MIG를 사용하는 것이 좋습니다. 모든 단일 영역 형태를 사용하면 리전 MIG에 VM이 없는 상황에서 수평 확장해야 할 때 그룹에서 예약, 할당량, 하드웨어 요구사항을 기반으로 최적의 영역을 선택합니다.

새 MIG에 배치 정책 적용

gcloud CLI 또는 Compute Engine API를 사용할 수 있습니다.

gcloud

이전에 만든 템플릿을 기반으로 하는 VM을 사용하여 MIG를 만들려면 instance-groups managed create 명령어를 사용합니다. 예를 들어 모든 단일 영역 분산 형태로 리전 MIG를 만들려면 다음 명령어를 사용합니다.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template TEMPLATE_NAME \
    --size SIZE \
    --region REGION \
    --zones ZONES \
    --target-distribution-shape=any-single-zone

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: 이 인스턴스 그룹의 이름입니다.
  • TEMPLATE_NAME: 이 그룹에 사용할 인스턴스 템플릿의 이름입니다.
  • SIZE: 인스턴스 그룹의 크기입니다.
  • REGION: 이 인스턴스 그룹의 리전입니다.

  • ZONES(선택사항): MIG가 VM 인스턴스를 배포할 수 있는 리전의 영역 목록입니다. 기본적으로 Compute Engine은 자동으로 영역 3개를 선택합니다.

    • MIG에서 리전의 모든 영역을 사용할 수 있게 하려면 사용 가능한 모든 영역을 지정합니다. 다음 명령어를 사용하여 리전 내 영역 목록을 가져올 수 있습니다.

      gcloud compute zones list --filter=region:REGION --format='list(NAME)'
    • 리전 MIG를 만든 후에는 다른 영역을 사용하도록 업데이트할 수 없습니다.

API

이전에 만든 템플릿을 기반으로 하는 VM을 사용하여 MIG를 만들려면 instanceGroupManagers.insert 또는 regionInstanceGroupManagers.insert 메서드를 호출하고 해당 템플릿을 지정합니다. 예를 들어 모든 단일 영역 분산 형태로 리전 MIG를 만들려면 다음 메서드를 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "instanceTemplate": "global/instanceTemplates/TEMPLATE_NAME",
  "targetSize": SIZE,
  "distributionPolicy": {
      "zones": [
          {"zone": "zones/ZONE1"},
          {"zone": "zones/ZONE2"},
          {"zone": "zones/ZONE3"},
      ],
      "targetShape": "ANY_SINGLE_ZONE"
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 이 요청의 프로젝트 ID입니다.
  • REGION: 그룹의 리전입니다.
  • INSTANCE_GROUP_NAME: MIG 이름입니다.
  • TEMPLATE_NAME: 사용할 인스턴스 템플릿입니다.
  • SIZE: 그룹의 대상 VM 수입니다.
  • ZONES: MIG가 VM 인스턴스를 배포할 수 있는 리전의 영역 이름입니다.
    • MIG에서 리전의 모든 영역을 사용할 수 있게 하려면 사용 가능한 모든 영역을 지정합니다. regions.get 메서드를 호출하여 리전 내 영역 목록을 가져올 수 있습니다.
    • 리전 MIG를 만든 후에는 다른 영역을 사용하도록 업데이트할 수 없습니다.

MIG를 만드는 방법에 대한 자세한 내용은 관리형 인스턴스 그룹(MIG)을 만들기 위한 기본 시나리오를 참조하세요.

기존 MIG에 배치 정책 적용

배치 정책을 만든 후 정책을 지정하는 인스턴스 템플릿을 만듭니다. 그런 다음 기존 MIG에 템플릿을 적용합니다. gcloud CLI 또는 Compute Engine API를 사용할 수 있습니다.

gcloud

새 템플릿을 사용하도록 MIG를 업데이트하고 새 템플릿을 MIG의 기존 VM에 자동으로 출시하려면 다음과 같이 instance-groups managed rolling-action start-update 명령어를 사용합니다.

gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \
    --template TEMPLATE_NAME \
    --type=proactive

API

새 템플릿을 사용하도록 MIG를 업데이트하려면 리전 또는 영역 MIG에 대해 patch 메서드를 호출합니다.

예를 들어 리전 MIG의 경우 다음 요청은 전체 인스턴스를 자동으로 새 인스턴스 템플릿으로 업데이트하는 데 필요한 최소 구성을 보여줍니다.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "instanceTemplate": "global/instanceTemplates/TEMPLATE_NAME",
  "updatePolicy": {
    "type": "PROACTIVE"
   }
}

MIG의 VM을 업데이트하는 다른 방법은 MIG의 VM에 새 구성 업데이트 및 적용을 참조하세요.

배치 정책 보기

gcloud CLI와 Compute Engine API를 사용하여 VM에 적용된 배치 정책과 특정 배치 정책의 세부정보를 볼 수 있습니다.

VM 배치 정책 보기

gcloud

VM 리소스 배치 정책을 보려면 gcloud compute instances describe 명령어를 사용합니다.

gcloud compute instances describe VM_NAME

VM_NAME을 VM 이름으로 바꿉니다.

배치 정책을 사용할 수 있으면 출력에 resourcePolicies 필드가 포함됩니다.

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

API

VM 리소스 배치 정책을 보려면 instances.get 메서드를 사용합니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: VM이 포함된 영역입니다.
  • VM_NAME: VM의 이름입니다.

배치 정책을 사용할 수 있으면 resourcePolicies 필드에서 VM의 리소스 정책을 반환합니다.

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

배치 정책 세부정보 보기

gcloud

배치 정책 세부정보를 보려면 gcloud compute resource-policies describe 명령어를 사용합니다.

gcloud compute resource-policies describe POLICY_NAME

POLICY_NAME을 배치 정책의 이름으로 바꿉니다.

배치 정책을 사용할 수 있으면 출력에 배치 정책 세부정보가 포함됩니다.

...
groupPlacementPolicy:
  availabilityDomainCount: 2
kind: compute#resourcePolicy
name: POLICY_NAME
region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION
...

API

배치 정책 세부정보를 보려면 resourcePolicies.get 메서드를 사용합니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: VM이 포함된 리전입니다.
  • POLICY_NAME: 배치 정책의 이름입니다.

배치 정책을 사용할 수 있으면 응답 본문에 배치 정책 세부정보가 포함됩니다.

...
"region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION",
"name": "POLICY_NAME",
"groupPlacementPolicy": {
  "availabilityDomainCount": 2
},
"kind": "compute#resourcePolicy"
...

VM 배치 토폴로지 보기

다른 VM과 관련하여 VM이 있는 위치에 대한 정보를 볼 수 있습니다. 이 정보는 VM의 토폴로지를 빌드하고 서로 가장 가까운 VM과 최소 하드웨어 용량을 공유하는 VM을 결정하는 데 도움이 됩니다.

동일한 배치 정책을 사용하는 VM에 대해서만 VM 배치 토폴로지 정보를 비교할 수 있습니다.

gcloud

배치 정책으로 만든 VM의 resource 속성을 봅니다.

gcloud compute instances describe VM_NAME \
    --format="table[box,title=VM-Topology](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)"

VM_NAME을 배치 정책을 사용하는 VM 인스턴스의 이름으로 바꿉니다.

출력은 다음과 비슷하게 표시됩니다.

VM-Topology

RESOURCE_POLICIES: us-central1/resourcePolicies/policy_name']
PHYSICAL_HOST: /xxxxxxxx/xxxxxx/xxxxx

PHYSICAL_HOST의 값은 필드 3개로 구성됩니다. 이 필드에는 VM이 있는 클러스터, 서버 랙, 호스트 머신을 나타내는 해시 값이 포함됩니다. 이 값을 다른 VM과 비교할 때 동일한 문자열이 있는 필드가 많을수록 VM이 서로 더 가깝게 배치됩니다. 예를 들어 같은 프로젝트, 클러스터에 속하고 같은 랙에서 실행되는 두 VM에서는 PHYSICAL_HOST 필드의 처음 두 부분의 값이 같습니다.

API

압축 배치 정책으로 만든 VM의 세부정보를 봅니다. instances.get 메서드에 대해 GET 요청을 실행합니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 이 쿼리의 프로젝트 ID
  • ZONE: 쿼리할 인스턴스의 영역
  • VM_NAME: 배치 정책을 사용하는 VM의 이름

응답 본문에는 다음과 유사한 스니펫이 포함됩니다.

{
  ...
  resourcePolicies:
  - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE/resourcePolicies/POLICY_NAME
  resourceStatus:
      physical_host: /xxxxxxxx/xxxxxx/xxxxx
  ...
}

physical_host 값은 VM이 있는 클러스터, 서버 랙, 호스트 머신을 나타내는 해시 값이 포함된 필드 3개로 구성됩니다. 이 값을 다른 VM과 비교할 때 동일한 문자열이 있는 필드가 많을수록 VM이 서로 더 가깝게 배치됩니다. 예를 들어 같은 프로젝트, 클러스터에 속하고 같은 랙에서 실행되는 두 VM에서는 physicalHost 필드의 처음 두 부분의 값이 같습니다.

VM에서 압축 배치 정책을 사용하지 않으면 속성 값은 출력에 다음과 같이 표시됩니다.

resourceStatus: {}

배치 정책 삭제

필요하지 않은 배치 정책을 삭제할 수 있습니다.

gcloud

gcloud CLI를 사용하여 정책을 삭제합니다.

gcloud compute resource-policies delete POLICY_NAME \
    --region REGION \
    --project PROJECT_ID

다음을 바꿉니다.

  • POLICY_NAME: 삭제할 새 정책의 이름
  • REGION: 이 정책을 사용하는 VM 인스턴스를 만든 리전
  • PROJECT_ID: 프로젝트 ID입니다.

API

분산 배치 정책을 만들려면 Google Cloud 콘솔 API 및 서비스에서 resourcePolicies.insert 메서드를 사용합니다.

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

요청 본문에 배치 정책 세부정보를 제공합니다.

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 이 정책을 사용하는 VM 인스턴스를 만들려는 리전입니다.
  • POLICY_NAME: 새 정책 이름입니다.
  • DOMAIN_COUNT: 이 정책이 인스턴스를 구분하는 데 사용할 호스트 하드웨어 및 물리적 네트워크의 고유한 집합 수입니다.

다음 단계