간단한 배치 정책을 사용하여 지연 시간 감소


이 문서에서는 압축 배치 정책을 만들고 적용하여 가상 머신(VM) 인스턴스 간의 네트워크 지연 시간을 줄이는 방법을 설명합니다.

압축 배치 정책은 VM이 물리적으로 서로 가까이 배치되도록 지정합니다. 예를 들어 고성능 컴퓨팅(HPC), 머신러닝(ML), 데이터베이스 서버 워크로드를 실행할 때 성능을 개선하고 VM 간의 네트워크 지연 시간을 줄이는 데 도움이 될 수 있습니다.

다음을 수행할 때 압축 배치 정책을 적용할 수 있습니다.

  • VM을 만들거나 업데이트합니다.
  • 단일 프로젝트 예약을 만듭니다.
  • VM을 일괄 생성합니다.
  • 인스턴스 템플릿을 만듭니다. 그러면 인스턴스 템플릿을 사용하여 다음을 수행할 때 인스턴스 템플릿이 압축 배치 정책을 적용합니다.
    • VM을 만듭니다.
    • 관리형 인스턴스 그룹(MIG)을 만들거나 업데이트합니다.
    • 단일 프로젝트 예약을 만듭니다.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

필요한 역할

압축 배치 정책을 만들고 VM에 적용하는 데 필요한 권한을 얻으려면 관리자에게 VM 또는 프로젝트에 대한 Compute 인스턴스 관리자(v1)(roles/compute.instanceAdmin.v1) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 압축 배치 정책을 만들고 VM에 적용하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

압축 배치 정책을 만들고 VM에 적용하려면 다음 권한이 필요합니다.

  • 배치 정책 만들기: 프로젝트에 대한 compute.resourcePolicies.create
  • 기존 VM에 배치 정책 적용: 프로젝트에 대한 compute.instances.addResourcePolicies
  • VM 세부정보 보기: 프로젝트에 대한 compute.instances.get 권한

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

제한사항

배치 정책의 일반적인 제한사항 외에도 압축 배치 정책에는 다음과 같은 제한사항이 있습니다.

  • 압축 배치 정책의 경우 max-distance(미리보기)를 사용하면 VM 배치 간격을 더 효과적으로 제어할 수 있습니다. 다음 표에는 각 max-distance 값에 지원되는 VM 수와 호스트 유지보수 정책이 요약되어 있습니다.

    max-distance 설명 최대 VM 수 지원되는 호스트 유지보수 정책
    지정되지 않음 가용성에 따라 VM은 최대한 서로 가깝게 배치됩니다. 1,500 마이그레이션 또는 종료
    3 VM은 지연 시간을 단축하기 위해 인접한 클러스터에 배치됩니다. 1,500 마이그레이션 또는 종료
    2 VM은 인접한 랙에 배치되며 인접한 클러스터에 배치된 VM보다 네트워크 지연 시간이 짧습니다. 150 종료
    1 VM을 동일한 랙에 배치하고 네트워크 지연 시간을 최대한 최소화합니다. 22 종료
  • 압축 배치 정책은 A2, A3, C2, C3, C2D, C3D, G2, H3, N2, N2D 머신 시리즈에만 적용할 수 있습니다. 압축 배치 정책을 만들 때 max-distance를 사용하면 정책을 A3, G2, N2, N2D 머신 시리즈에 적용할 수 없습니다.

  • 단독 테넌트 노드를 지정하는 VM에는 압축 배치 정책을 적용할 수 없습니다.

  • 예약에 대한 압축 배치 정책을 만들려면 예약 추가 요구사항을 참조하세요.

압축 배치 정책 만들기

압축 배치 정책을 만들려면 다음 방법 중 하나를 사용합니다.

  • 권장: 고정된 수를 지정하지 않음

    지정되지 않은 수의 VM에 고정된 VM 수를 지정하지 않는 압축 배치 정책을 적용할 수 있습니다. 이렇게 하면 적용되는 VM 수에 관계없이 압축 배치 정책이 효과적입니다.

  • 고정된 수 지정

    정확한 수의 VM에만 고정된 VM 수를 지정하는 압축 배치 정책을 적용할 수 있습니다. 이렇게 하면 압축 배치 정책이 지정된 VM 수에 적용되는 경우에만 효과적입니다.

고정된 수를 지정하지 않음

gcloud CLI 및 REST를 사용하여 압축 배치 정책을 만들 수 있습니다.

gcloud

압축 배치 정책을 만들려면 gcloud compute resource-policies create group-placement 명령어--collocation=collocated 플래그와 함께 사용합니다.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --region=REGION

다음을 바꿉니다.

  • POLICY_NAME: 만들 정책의 이름입니다.

  • REGION: 정책을 만들려는 리전입니다. 압축 배치 정책을 기존 VM에 적용하려면 VM이 있는 영역이 포함된 리전에 정책을 만듭니다.

선택적으로 네트워크 지연 시간 요구사항이 엄격한 경우 VM 배치 간격을 더 효과적으로 제어하려면 --collocation=collocated--max-distance 플래그와 함께 gcloud beta compute resource-policies create group-placement 명령어를 사용하여 압축 배치 정책을 만들면 됩니다.

gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --max-distance=MAX_DISTANCE \
    --region=REGION

MAX_DISTANCE를 VM의 최대 거리 구성으로 바꿉니다. 값은 1(가능한 한 가장 짧은 네트워크 지연 시간을 위해 VM을 동일한 랙에 배치하도록 지정)과 3(VM을 인접한 클러스터에 배치하도록 지정) 사이여야 합니다. 압축 배치 정책을 적용할 VM에 지정된 머신 유형 및 영역에 따라 다음 조건이 적용됩니다.

  • 영역에 사용 가능한 용량이 있는 경우 maxDistance 값이 더 높은 압축 배치 정책(예: 3)으로 인해 VM이 서로 더 가깝게 배치될 수 있습니다.

  • 영역에 용량이 부족하면 maxDistance 값이 낮은(예: 1) 압축 배치 정책으로 인해 하나 이상의 VM에 대한 정책의 애플리케이션이 실패할 가능성이 높습니다.

REST

압축 배치 정책을 만들려면 resourcePolicies.insert 메서드POST 요청을 수행합니다. 요청 본문에 collocation 필드를 포함하고 COLLOCATED로 설정합니다.

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

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

다음을 바꿉니다.

  • PROJECT_ID: 배치 정책을 만들려는 프로젝트의 ID입니다.

  • REGION: 배치 정책을 만들려는 리전입니다. 압축 배치 정책을 기존 VM에 적용하려면 VM이 있는 영역이 포함된 리전에 정책을 만듭니다.

  • POLICY_NAME: 만들려는 압축 배치 정책의 이름입니다.

선택적으로 네트워크 지연 시간 요구사항이 엄격한 경우 VM 배치 간격을 더 효과적으로 제어하려면 beta.resourcePolicies.insert 메서드POST 요청을 수행하여 압축 배치 정책을 만들면 됩니다. 요청 본문에 COLLOCATED로 설정된 collocation 필드와 maxDistance 필드를 포함합니다.

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

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

MAX_DISTANCE를 VM의 최대 거리 구성으로 바꿉니다. 값은 1(가능한 한 가장 짧은 네트워크 지연 시간을 위해 VM을 동일한 랙에 배치하도록 지정)과 3(VM을 인접한 클러스터에 배치하도록 지정) 사이여야 합니다. 압축 배치 정책을 적용할 VM에 지정된 머신 유형 및 영역에 따라 다음 조건이 적용됩니다.

  • 영역에 사용 가능한 용량이 있는 경우 maxDistance 값이 더 높은 압축 배치 정책(예: 3)으로 인해 VM이 서로 더 가깝게 배치될 수 있습니다.

  • 영역에 용량이 부족하면 maxDistance 값이 낮은(예: 1) 압축 배치 정책으로 인해 하나 이상의 VM에 대한 정책의 애플리케이션이 실패할 가능성이 높습니다.

고정된 수 지정

gcloud CLI 및 REST를 사용하여 고정된 VM 수를 지정하는 압축 배치 정책을 만들 수 있습니다.

gcloud

고정된 VM 수를 지정하는 압축 배치 정책을 만들려면 --collocation=collocated--vm-count 플래그와 함께 gcloud compute resource-policies create group-placement 명령어를 사용합니다.

gcloud compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --region=REGION \
    --vm-count=VM_COUNT

다음을 바꿉니다.

  • POLICY_NAME: 만들 정책의 이름입니다.

  • REGION: 정책을 만들려는 리전입니다. 압축 배치 정책을 기존 VM에 적용하려면 VM이 있는 영역이 포함된 리전에 정책을 만듭니다.

  • VM_COUNT: 압축 배치 정책을 적용할 수 있는 정확한 VM 수입니다. 값은 1과 압축 배치 정책을 적용할 수 있는 최대 VM 수 사이여야 합니다.

선택적으로 네트워크 지연 시간 요구사항이 엄격한 경우 VM 배치 간격을 더 효과적으로 제어하려면 --collocation=collocated, --max-distance, --vm-count 플래그와 함께 gcloud beta compute resource-policies create group-placement 명령어를 사용하여 압축 배치 정책을 만들면 됩니다.

gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --max-distance=MAX_DISTANCE \
    --region=REGION \
    --vm-count=VM_COUNT

MAX_DISTANCE를 VM의 최대 거리 구성으로 바꿉니다. 값은 1(가능한 한 가장 짧은 네트워크 지연 시간을 위해 VM을 동일한 랙에 배치하도록 지정)과 3(VM을 인접한 클러스터에 배치하도록 지정) 사이여야 합니다. 압축 배치 정책을 적용할 VM에 지정된 머신 유형 및 영역에 따라 다음 조건이 적용됩니다.

  • 영역에 사용 가능한 용량이 있는 경우 maxDistance 값이 더 높은 압축 배치 정책(예: 3)으로 인해 VM이 서로 더 가깝게 배치될 수 있습니다.

  • 영역에 용량이 부족하면 maxDistance 값이 낮은(예: 1) 압축 배치 정책으로 인해 하나 이상의 VM에 대한 정책의 애플리케이션이 실패할 가능성이 높습니다.

REST

고정된 VM 수를 지정하는 압축 배치 정책을 만들려면 resourcePolicies.insert 메서드POST 요청을 수행합니다. 요청 본문에 COLLOCATED로 설정된 collocation 필드와 vmCount 필드를 포함합니다.

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

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

다음을 바꿉니다.

  • PROJECT_ID: 배치 정책을 만들려는 프로젝트의 ID입니다.

  • REGION: 배치 정책을 만들려는 리전입니다. 압축 배치 정책을 기존 VM에 적용하려면 VM이 있는 영역이 포함된 리전에 정책을 만듭니다.

  • POLICY_NAME: 만들려는 압축 배치 정책의 이름입니다.

  • VM_COUNT: 압축 배치 정책을 적용할 수 있는 정확한 VM 수입니다. 값은 1과 압축 배치 정책을 적용할 수 있는 최대 VM 수 사이여야 합니다.

선택적으로 네트워크 지연 시간 요구사항이 엄격한 경우 VM 배치 간격을 더 효과적으로 제어하려면 beta.resourcePolicies.insert 메서드POST 요청을 수행하여 압축 배치 정책을 만들면 됩니다. 요청 본문에 COLLOCATED로 설정된 collocation 필드, maxDistance 필드, vmCount 필드를 포함합니다.

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

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "collocation": "COLLOCATED",
    "maxDistance": "MAX_DISTANCE",
    "vmCount": "VM_COUNT"
  }
}

MAX_DISTANCE를 VM의 최대 거리 구성으로 바꿉니다. 값은 1(가능한 한 가장 짧은 네트워크 지연 시간을 위해 VM을 동일한 랙에 배치하도록 지정)과 3(VM을 인접한 클러스터에 배치하도록 지정) 사이여야 합니다. 압축 배치 정책을 적용할 VM에 지정된 머신 유형 및 영역에 따라 다음 조건이 적용됩니다.

  • 영역에 사용 가능한 용량이 있는 경우 maxDistance 값이 더 높은 압축 배치 정책(예: 3)으로 인해 VM이 서로 더 가깝게 배치될 수 있습니다.

  • 영역에 용량이 부족하면 maxDistance 값이 낮은(예: 1) 압축 배치 정책으로 인해 하나 이상의 VM에 대한 정책의 애플리케이션이 실패할 가능성이 높습니다.

압축 배치 정책 적용

압축 배치 정책은 기존 VM에 적용하거나 VM, 인스턴스 템플릿, MIG 또는 VM 예약을 만들 때 적용할 수 있습니다.

압축 배치 정책을 지정하는 Compute Engine 리소스를 만들려면 다음 방법 중 하나를 선택합니다.

속성을 직접 지정하여 단일 프로젝트 예약을 만들 때 압축 배치 정책을 지정하려면 대신 단일 프로젝트에 예약 만들기를 참조하세요.

압축 배치 정책이 VM에 적용된 후에는 동일한 정책을 지정하는 다른 VM과 비교하여 VM의 물리적 위치를 확인할 수 있습니다.

기존 VM에 압축 배치 정책 적용

gcloud CLI 및 REST를 사용하여 기존 VM에 압축 배치 정책을 적용할 수 있습니다.

기존 VM에 압축 배치 정책을 적용하기 전에 다음을 확인합니다.

그렇지 않으면 압축 배치 정책을 기존 VM에 적용할 수 없습니다.

gcloud

기존 VM에 압축 배치 정책을 적용하려면 --resource-policies 플래그와 함께 gcloud compute instances add-resource-policies 명령어를 사용합니다.

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

다음을 바꿉니다.

  • VM_NAME: 기존 VM의 이름입니다.

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

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

REST

기존 VM에 압축 배치 정책을 적용하려면 resourcePolicies 필드를 사용하여 instances.addResourcePolicies 메서드POST 요청을 수행합니다.

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

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

다음을 바꿉니다.

  • PROJECT_ID: 압축 배치 정책 및 VM이 있는 프로젝트의 ID입니다.

  • ZONE: VM이 있는 영역입니다. 압축 배치 정책이 있는 리전 내에 있어야 합니다.

  • VM_NAME: 기존 VM의 이름입니다.

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

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

압축 배치 정책을 지정하는 VM 만들기

gcloud CLI 및 REST를 사용하여 기존 압축 배치 정책을 지정하는 VM을 만들 수 있습니다.

gcloud

압축 배치 정책을 지정하는 VM을 만들려면 --resource-policies 플래그와 함께 gcloud compute instances create 명령어를 사용합니다.

예를 들어 c2d-standard-2 머신 유형을 지정하는 VM을 만들려면 다음 명령어를 실행합니다.

gcloud compute instances create VM_NAME \
    --machine-type=c2d-standard-2 \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

다음을 바꿉니다.

  • VM_NAME: 만들려는 VM의 이름입니다.

  • MAINTENANCE_POLICY: VM의 호스트 유지보수 정책입니다. 지정한 압축 배치 정책이 1 또는 2max-distance 값을 사용하는 경우 TERMINATE만 지정할 수 있습니다. 그렇지 않으면 MIGRATE 또는 TERMINATE를 지정할 수 있습니다.

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

  • ZONE: VM을 만들 영역입니다. 지정한 압축 배치 정책의 리전 내에 있는 영역에서만 VM을 만들 수 있습니다.

REST

압축 배치 정책을 지정하는 VM을 만들려면 resourcePolicies 필드를 사용하여 instances.insert 메서드POST 요청을 수행합니다.

예를 들어 c2d-standard-2 머신 유형을 지정하는 VM을 만들려면 다음 POST 요청을 수행합니다.

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

{
  "machineType": "zones/ZONE/machineTypes/c2d-standard-2",
  "name": "VM_NAME",
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 압축 배치 정책이 있는 프로젝트의 ID입니다.

  • ZONE: VM을 만들 영역과 머신 유형이 있는 영역입니다. 지정한 압축 배치 정책의 리전 내에 있는 영역에서만 VM을 만들 수 있습니다.

  • VM_NAME: 만들려는 VM의 이름입니다.

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

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

  • MAINTENANCE_POLICY: VM의 호스트 유지보수 정책입니다. 지정한 압축 배치 정책이 1 또는 2max-distance 값을 사용하는 경우 TERMINATE만 지정할 수 있습니다. 그렇지 않으면 MIGRATE 또는 TERMINATE를 지정할 수 있습니다.

VM을 만들기 위한 구성 옵션 및 IAM 역할에 대한 자세한 내용은 VM 인스턴스 만들기 및 시작을 참조하세요.

압축 배치 정책을 지정하는 VM 일괄 생성

gcloud CLI 및 REST를 사용하여 기존 압축 배치 정책을 지정하는 VM을 일괄 생성할 수 있습니다.

gcloud

압축 배치 정책을 지정하는 VM을 일괄 생성하려면 --resource-policies 플래그와 함께 gcloud compute instances bulk create 명령어를 사용합니다.

예를 들어 c2d-standard-2 머신 유형과 동일한 압축 배치 정책을 모두 지정하는 VM을 일괄 생성하려면 다음 명령어를 실행합니다.

gcloud compute instances bulk create \
    --async \
    --count=COUNT \
    --machine-type=c2d-standard-2 \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

다음을 바꿉니다.

  • COUNT: 만들 VM 수입니다.

  • MAINTENANCE_POLICY: VM의 호스트 유지보수 정책입니다. 지정한 압축 배치 정책이 1 또는 2max-distance 값을 사용하는 경우 TERMINATE만 지정할 수 있습니다. 그렇지 않으면 MIGRATE 또는 TERMINATE를 지정할 수 있습니다.

  • NAME_PATTERN: 만들려는 VM의 이름 패턴입니다. 해시 문자(#)를 일련의 숫자로 바꿉니다. 예를 들어 vm-#을 지정하면 vm-1, vm-2 등의 이름으로 COUNT에 지정된 VM 수까지 VM이 생성됩니다.

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

  • ZONE: VM을 일괄 생성할 영역입니다. 지정한 압축 배치 정책의 리전 내에 있는 영역에서만 VM을 만들 수 있습니다.

REST

압축 배치 정책을 지정하는 VM을 일괄 생성하려면 resourcePolicies 필드를 사용하여 instances.bulkInsert 메서드POST 요청을 수행합니다.

예를 들어 c2d-standard-2 머신 유형과 동일한 압축 배치 정책을 모두 지정하는 VM을 일괄 생성하려면 다음 POST 요청을 수행합니다.

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

{
  "count": "COUNT",
  "machineType": "zones/ZONE/machineTypes/c2d-standard-2",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "resourcePolicies": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 압축 배치 정책이 있는 프로젝트의 ID입니다.

  • ZONE: VM을 일괄 생성할 영역과 머신 유형이 있는 영역입니다. 지정한 압축 배치 정책의 리전 내에 있는 영역에서만 VM을 만들 수 있습니다.

  • COUNT: 만들 VM 수입니다.

  • NAME_PATTERN: 만들려는 VM의 이름 패턴입니다. 해시 문자(#)를 일련의 숫자로 바꿉니다. 예를 들어 vm-#을 지정하면 vm-1, vm-2 등의 이름으로 COUNT에 지정된 VM 수까지 VM이 생성됩니다.

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

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

  • MAINTENANCE_POLICY: VM의 호스트 유지보수 정책입니다. 지정한 압축 배치 정책이 1 또는 2max-distance 값을 사용하는 경우 TERMINATE만 지정할 수 있습니다. 그렇지 않으면 MIGRATE 또는 TERMINATE를 지정할 수 있습니다.

VM을 일괄 생성하기 위한 구성 옵션 또는 IAM 역할에 대한 자세한 내용은 VM 일괄 생성을 참조하세요.

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

gcloud CLI 및 REST를 사용하여 기존 압축 배치 정책을 지정하는 인스턴스 템플릿을 만들 수 있습니다.

인스턴스 템플릿을 만든 후에는 이를 사용하여 다음을 수행할 수 있습니다.

gcloud

압축 배치 정책을 지정하는 인스턴스 템플릿을 만들려면 --resource-policies 플래그와 함께 gcloud compute instance-templates create 명령어를 사용합니다.

예를 들어 c2d-standard-2 머신 유형과 기존 압축 배치 정책을 지정하는 전역 인스턴스 템플릿을 만들려면 다음 명령어를 실행합니다.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=c2d-standard-2 \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME

다음을 바꿉니다.

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

  • MAINTENANCE_POLICY: VM의 호스트 유지보수 정책입니다. 지정한 압축 배치 정책이 1 또는 2max-distance 값을 사용하는 경우 TERMINATE만 지정할 수 있습니다. 그렇지 않으면 MIGRATE 또는 TERMINATE를 지정할 수 있습니다.

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

REST

압축 배치 정책을 지정하는 인스턴스 템플릿을 만들려면 instanceTemplates.insert 메서드POST 요청을 수행합니다. 요청 본문에서 resourcePolicies 필드를 지정합니다.

예를 들어 c2d-standard-2 머신 유형과 기존 압축 배치 정책을 지정하는 전역 인스턴스 템플릿을 만들려면 다음 POST 요청을 수행합니다.

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

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "machineType": "zones/ZONE/machineTypes/c2d-standard-2",
  "properties": {
    "resourcePolicies": {
      "POLICY_NAME"
    },
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스 템플릿에 적용할 압축 배치 정책이 있는 프로젝트의 ID입니다.

  • ZONE: 머신 유형이 있는 영역입니다.

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

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

  • MAINTENANCE_POLICY: VM의 호스트 유지보수 정책입니다. 지정한 압축 배치 정책이 1 또는 2max-distance 값을 사용하는 경우 TERMINATE만 지정할 수 있습니다. 그렇지 않으면 MIGRATE 또는 TERMINATE를 지정할 수 있습니다.

인스턴스 템플릿을 만들기 위한 구성 옵션에 대한 자세한 내용은 인스턴스 템플릿 만들기를 참조하세요.

MIG의 VM에 압축 배치 정책 적용

압축 배치 정책을 지정하는 인스턴스 템플릿을 만든 후에는 템플릿을 사용하여 다음을 수행할 수 있습니다.

MIG에 압축 배치 정책을 적용하려면 모든 단일 영역 분산 형태를 사용하여 정책을 만들거나 리전 MIG에 적용하는 것이 좋습니다. 이렇게 하면 리전 MIG에서 VM을 만들어 수평 확장해야 할 때마다 예약, 할당량, 하드웨어 요구사항에 따라 VM을 만들 영역을 선택합니다.

압축 배치 정책을 지정하는 MIG 만들기

gcloud CLI 및 REST를 사용하여 압축 배치 정책을 지정하는 인스턴스 템플릿을 사용하여 MIG를 만들 수 있습니다.

gcloud

압축 배치 정책을 지정하는 인스턴스 템플릿을 사용하여 MIG를 만들려면 --template 플래그와 함께 gcloud compute instance-groups managed create 명령어를 사용합니다.

예를 들어 모든 단일 영역 분산 형태로 리전 MIG를 만들려면 다음 명령어를 실행합니다.

gcloud compute instance-groups managed create MIG_NAME \
    --region=REGION \
    --size=SIZE \
    --target-distribution-shape=any-single-zone \
    --template=INSTANCE_TEMPLATE_NAME

다음을 바꿉니다.

  • MIG_NAME: 만들려는 MIG의 이름입니다.

  • REGION: MIG를 만들려는 리전으로, 압축 배치 정책이 있는 리전과 일치해야 합니다.

  • SIZE: MIG의 크기입니다.

  • INSTANCE_TEMPLATE_NAME: 압축 배치 정책을 지정하는 기존 인스턴스 템플릿의 이름입니다.

REST

압축 배치 정책을 지정하는 인스턴스 템플릿을 사용하여 MIG를 만들려면 instanceTemplate 필드를 기존 템플릿의 이름으로 설정하여 instanceGroupManagers.insert 또는 regionInstanceGroupManagers.insert 메서드에 POST 요청을 수행합니다.

예를 들어 기본 VM 속성 및 모든 단일 영역 분산 형태를 사용하여 리전 MIG를 만들려면 다음 POST 요청을 수행합니다.

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

{
  "name": "MIG_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "distributionPolicy": {
    "targetShape": "ANY_SINGLE_ZONE"
  },
  "targetSize": SIZE
}

다음을 바꿉니다.

  • PROJECT_ID: 압축 배치 정책 및 배치 정책을 지정하는 인스턴스 템플릿이 있는 프로젝트의 ID입니다.

  • REGION: MIG를 만들려는 리전으로, 압축 배치 정책이 있는 리전과 일치해야 합니다.

  • MIG_NAME: 만들려는 MIG의 이름입니다.

  • INSTANCE_TEMPLATE_NAME: 압축 배치 정책을 지정하는 기존 인스턴스 템플릿의 이름입니다.

  • SIZE: MIG의 크기입니다.

MIG를 만들기 위한 구성 옵션 및 IAM 역할에 대한 자세한 내용은 를 만들기 위한 기본 시나리오를 참조하세요.

기존 MIG에 압축 배치 정책 적용

gcloud CLI와 REST를 사용하여 동일한 배치 정책을 지정하는 인스턴스 템플릿으로 기존 MIG에 압축 배치 정책을 적용할 수 있습니다.

gcloud

압축 배치 정책을 지정하는 인스턴스 템플릿을 사용하도록 MIG를 업데이트하려면 --version=template 플래그와 함께 gcloud compute instance-groups managed rolling-action start-update 명령어를 사용합니다.

예를 들어 압축 배치 정책을 지정하는 인스턴스 템플릿을 사용하고 MIG의 기존 VM을 템플릿 속성을 지정하는 새 VM으로 교체하도록 리전 MIG를 업데이트하려면 다음 명령어를 실행합니다.

gcloud compute instance-groups managed rolling-action start-update MIG_NAME \
    --region=REGION \
    --type=proactive \
    --version=template=INSTANCE_TEMPLATE_NAME

다음을 바꿉니다.

  • MIG_NAME: 기존 MIG 이름입니다.

  • REGION: MIG가 있는 리전입니다. 동일한 리전에 있는 MIG에만 압축 배치 정책을 적용할 수 있습니다.

  • INSTANCE_TEMPLATE_NAME: 압축 배치 정책을 지정하는 기존 인스턴스 템플릿의 이름입니다.

REST

압축 배치 정책을 지정하는 인스턴스 템플릿을 사용하고 MIG의 기존 VM에 템플릿 속성과 배치 정책을 자동으로 적용하도록 MIG를 업데이트하려면 instanceTemplate 필드를 사용하여 instanceGroupManagers.insert 또는 regionInstanceGroupManagers.insertPATCH 요청을 실행합니다.

예를 들어 압축 배치 정책을 지정하는 인스턴스 템플릿을 사용하고 MIG의 기존 VM을 템플릿 속성을 지정하는 새 VM으로 교체하도록 리전 MIG를 업데이트하려면 다음 PATCH 요청을 실행합니다.

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

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

다음을 바꿉니다.

  • PROJECT_ID: MIG, 압축 배치 정책, 배치 정책을 지정하는 인스턴스 템플릿이 있는 프로젝트의 ID입니다.

  • REGION: MIG가 있는 리전입니다. 동일한 리전에 있는 MIG에만 압축 배치 정책을 적용할 수 있습니다.

  • MIG_NAME: 기존 MIG 이름입니다.

  • INSTANCE_TEMPLATE_NAME: 압축 배치 정책을 지정하는 기존 인스턴스 템플릿의 이름입니다.

MIG의 VM을 업데이트하기 위한 구성 옵션 및 IAM 역할에 대한 자세한 내용은 MIG의 VM에 새 구성 업데이트 및 적용을 참조하세요.

VM의 물리적 위치 확인

VM에 압축 배치 정책을 적용한 후에는 동일한 정책을 지정하는 다른 VM과 비교하여 압축 배치 정책이 물리적 위치에 미치는 영향을 확인할 수 있습니다. 이렇게 하면 압축 배치 정책이 VM에 올바르게 적용되었는지 확인하고 서로 가장 가까운 VM을 매핑할 수 있습니다.

gcloud CLI 및 REST를 사용하여 배치 정책을 지정하는 VM의 물리적 위치를 확인할 수 있습니다.

gcloud

압축 배치 정책을 지정하는 VM의 물리적 위치를 보려면 --format 플래그와 함께 gcloud compute instances describe 명령어를 사용합니다.

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

다음을 바꿉니다.

  • VM_NAME: 기존 VM의 이름입니다.

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

출력은 다음과 비슷합니다.

VM-Position

RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA

PHYSICAL_HOST 필드 값은 세 부분으로 구성됩니다. 이러한 부분은 각각 VM이 있는 클러스터, 랙, 호스트를 나타냅니다.

동일한 압축 배치 정책을 지정하는 두 VM의 위치를 비교할 때 VM이 공유하는 PHYSICAL_HOST 필드에 있는 부분이 많을수록 서로 더 가깝게 배치됩니다. 예를 들어 두 VM 모두 PHYSICAL_HOST 필드에 다음 샘플 값 중 하나를 지정하는 경우 다음과 같습니다.

  • /CCCCCCC/xxxxxx/xxxx: 두 VM이 동일한 클러스터에 배치되며 max-distance 값은 2입니다. 동일한 클러스터에 배치된 VM은 네트워크 지연 시간이 짧습니다.

  • /CCCCCCC/BBBBBB/xxxx: 두 VM이 동일한 랙에 배치되며 max-distance 값은 1입니다. 동일한 랙에 배치된 VM은 동일한 클러스터에 배치된 VM보다 네트워크 지연 시간이 짧습니다.

  • /CCCCCCC/BBBBBB/AAAA: 두 VM이 동일한 호스트를 공유합니다. 동일한 호스트에 배치된 VM은 네트워크 지연 시간을 최소화합니다.

REST

압축 배치 정책을 지정하는 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": [
  "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy"
],
"resourceStatus": {
  "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx"
},
...
}

physicalHost 필드 값은 세 부분으로 구성됩니다. 이러한 부분은 각각 VM이 있는 클러스터, 랙, 호스트를 나타냅니다.

동일한 압축 배치 정책을 지정하는 두 VM의 위치를 비교할 때 VM이 공유하는 physicalHost 필드에 있는 부분이 많을수록 서로 더 가깝게 배치됩니다. 예를 들어 두 VM 모두 physicalHost 필드에 다음 샘플 값 중 하나를 지정하는 경우 다음과 같습니다.

  • /CCCCCCC/xxxxxx/xxxx: 두 VM이 동일한 클러스터에 배치되며 max-distance 값은 2입니다. 동일한 클러스터에 배치된 VM은 네트워크 지연 시간이 짧습니다.

  • /CCCCCCC/BBBBBB/xxxx: 두 VM이 동일한 랙에 배치되며 max-distance 값은 1입니다. 동일한 랙에 배치된 VM은 동일한 클러스터에 배치된 VM보다 네트워크 지연 시간이 짧습니다.

  • /CCCCCCC/BBBBBB/AAAA: 두 VM이 동일한 호스트를 공유합니다. 동일한 호스트에 배치된 VM은 네트워크 지연 시간을 최소화합니다.

다음 단계