예약과 약정 사용 할인 조합


약정 사용 할인(CUD)은 1년 또는 3년 약정 사용 계약(약정)을 대가로 Compute Engine 리소스에 대해 대폭 할인된 가격을 제공합니다. 최소 리소스 사용 금액 또는 최소 지출 금액을 약속하고 그 대가로 리소스 사용 비용에 대한 CUD를 받습니다. 하지만 약정에 따라 약정 리소스에 대한 영역별 용량이 예약되지는 않습니다. 할인된 가격으로 영역별 리소스를 구입하고 용량 예약을 보장하기 위해서는 이러한 영역별 리소스에 대해 약정을 구매하고 예약을 만들어야 합니다.

이 문서에서는 예약된 리소스에 대해 CUD를 받는 방법과 리소스 기반 약정에 예약을 연결하는 방법을 설명합니다.

시작하기 전에

  • 요구사항 및 제한사항과 함께 예약 기본사항을 검토합니다. 자세한 내용은 Compute Engine 영역별 리소스 예약을 참조하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    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 사용 인증을 참조하세요.

예약된 리소스의 CUD

프로젝트의 모든 적격한 리소스 사용에 대해 활성 약정으로부터 CUD를 받습니다. 또한 이 프로젝트 내의 리소스 용량 예약에 대해 우려가 있는 경우 활성 약정의 CUD를 이러한 예약된 리소스에도 적용할 수 있습니다. 예약 리소스로 CUD 자격을 얻기 위해서는 다음 요구사항이 적용됩니다.

  • 리소스 사용에 대해 어떠한 형태로든 할인을 받지 않아야 합니다.
  • 약정이 활성화된 동안 VM이 예약을 소비해야 합니다.
  • 최소한 활성 약정과 VM에 소비되는 예약 사이에 다음 속성이 일치해야 합니다.

    • 적용되는 프로젝트 및 리전
    • 머신 계열 시리즈

리소스 유형에 따라 다음 방법 중 하나로 예약 리소스에 대해 CUD를 받을 수 있습니다.

  • vCPU 및 메모리: 리소스 유형 중 하나 또는 모두에 대해 CUD를 받으려면 필요한 리소스 유형을 포함하는 리소스 기반 또는 지출 기반 약정을 구입하면 됩니다. 프로젝트의 VM에 해당 속성이 활성 약정과 일치하는 예약이 소비되는 경우 이러한 유형의 예약 리소스에 대해 적용 가능한 CUD가 자동으로 제공됩니다. 약정보다 많은 리소스를 예약한 경우에는 이러한 추가 리소스에 대해 CUD가 제공되지 않습니다.

  • GPU 및 로컬 SSD 디스크: 이러한 리소스 유형 중 하나 또는 모두에 대해 CUD를 받으려면 다음을 수행해야 합니다.

    • 필요한 리소스 유형이 포함된 리소스 기반 약정을 구입합니다.
    • 속성이 약정과 일치하는 모든 약정 리소스에 대해 예약을 만들고 이러한 예약을 약정에 연결합니다.

    프로젝트의 VM에 이러한 연결된 예약이 소비되면 이러한 유형의 예약 리소스에 대해 적용 가능한 CUD가 제공됩니다.

리소스 기반 약정에 예약 연결

리소스 기반 약정에 예약을 연결하고 사용하려는 약정 리소스에 대해 특정 영역에 용량이 예약되어 있도록 보장할 수 있습니다. 단일 약정에 여러 예약을 연결할 수 있지만, 각 예약을 단일 약정에만 연결할 수 있습니다. 약정을 구매할 때 다음 방법 중 하나로 약정에 예약을 연결할 수 있습니다.

  • 속성이 약정과 일치하는 기존 예약 사용
  • 약정을 구매하는 동안 새로운 일치하는 예약 만들기

예약이 연결된 약정을 구매한 후에는 약정이 활성 상태로 있는 한 예약이 활성 상태로 유지됩니다. 약정이 만료되면 Compute Engine이 연결된 예약을 자동으로 삭제합니다. 이러한 예약을 삭제해도 해당 예약을 소비 중인 실행 중인 VM에 아무런 영향을 주지 않습니다. 실행 중인 VM은 계속 실행되며 VM에 대한 요금은 계속 청구됩니다.

연결된 예약이 필요하지 않은 약정 리소스

약정 vCPU 및 메모리의 경우 해당 약정에 일치하는 예약을 연결할 필요가 없습니다. 그렇더라도 vCPU나 메모리 또는 둘 다 포함된 약정을 구매할 때에도 이러한 리소스를 지정하는 예약을 연결하도록 선택할 수 있습니다. 예약을 연결하지 않고 vCPU나 메모리 또는 둘 다에 대해 약정을 구매하는 방법은 연결된 예약 없이 약정 구매를 참조하세요.

연결된 예약이 필요한 약정된 리소스

약정 GPU 및 로컬 SSD 디스크의 경우 약정에 일치하는 예약을 연결해야 합니다. 또한 GPU나 로컬 SSD 디스크 또는 둘 다 포함된 약정을 구매할 때는 이러한 리소스를 예약하고 예약을 약정에 연결해야 합니다. 단일 예약 또는 예약 조합을 사용하여 이를 수행할 수 있습니다. 또한 이러한 약정을 구매할 때 vCPU나 메모리 또는 둘 다 포함할 수 있습니다. 하지만 이러한 vCPU 또는 메모리를 예약할 필요는 없습니다. GPU나 로컬 SSD 디스크 또는 둘 다 포함된 약정을 구매하는 방법은 이 문서에서 연결된 예약이 있는 약정 구매를 참조하세요.

GPU 및 로컬 SSD 디스크에 대해 CUD를 지원하는 머신 시리즈의 전체 목록은 리소스 기반 CUD 문서의 약정 유형 섹션을 참조하세요.

연결된 예약에 허용되는 리소스 수량

vCPU 및 메모리의 경우 약정보다 많거나 적은 리소스를 지정하는 예약을 연결할 수 있습니다. 예약한 것보다 많은 vCPU 또는 메모리를 약정할 경우 Compute Engine이 이러한 예약된 리소스에 대해서만 용량을 예약합니다. 하지만 리전에서 가용성에 따라 추가 약정 리소스를 계속 사용할 수 있습니다. 약정보다 많은 vCPU 또는 메모리를 예약할 경우 예약하는 추가 리소스에 대해 CUD가 제공되지 않습니다.

예를 들어 vCPU 4개 및 30GB 메모리 약정을 구매할 때 다음 중 하나를 수행하도록 선택할 수 있습니다.

  • 예약을 전혀 연결하지 않습니다.
  • 해당 리소스 유형의 조합을 지정하는 예약을 연결합니다. 예를 들면 다음과 같습니다.

    • vCPU 4개 및 30GB 메모리
    • vCPU 2개 및 50GB 메모리
    • vCPU 10개 및 10GB 메모리

하지만 약정에 GPU나 로컬 SSD 디스크 또는 둘 다 포함된 경우 이러한 리소스를 모두 예약하고 연결해야 합니다. 연결된 예약에는 약정 대상 GPU 및 로컬 SSD 디스크와 정확히 동일한 개수와 유형을 지정해야 합니다. 따라서 연결된 예약에서 GPU 또는 로컬 SSD 디스크에 대해 추가 개수 또는 유형을 지정할 수 없습니다. 예를 들어 30GB 메모리 및 NVIDIA P100 GPU 4개의 약정을 구매한다고 가정해 보세요. 연결된 예약(또는 연결된 예약의 조합)에서 vCPU 또는 메모리를 제한 없이 지정할 수 있지만 NVIDIA P100 유형의 GPU가 정확히 4개 있어야 합니다. 이 예시에서는 다음 리소스 조합을 지정하는 예약을 연결할 수 없습니다.

  • NVIDIA P100 GPU 6개
  • NVIDIA P100 GPU 2개
  • NVIDIA P100 GPU 4개 및 NVIDIA V100 GPU 2개
  • NVIDIA P100 GPU 4개 및 로컬 SSD 디스크 4개

연결된 예약이 있는 약정 구매

새 약정을 구매할 때 다음 방법 중 하나로 약정에 예약을 연결할 수 있습니다.

약정을 구매하면 미국 및 캐나다 태평양 표준시(UTC-8 또는 일광 절약 시간 중에는 UTC-7) 기준 다음 날 오전 12시에 약정이 활성화됩니다. 약정 구매 시점부터 활성화 전까지는 약정 상태가 NOT_YET_ACTIVE(또는 Google Cloud 콘솔의 PENDING)로 유지됩니다. 활성화되면 약정 상태는 ACTIVE로 변경됩니다. 예를 들어 미국 및 캐나다 태평양 표준시(UTC-8 또는 UTC-7) 기준 1월 20일 오후 10시에 약정을 구매한다고 가정해 보겠습니다. Compute Engine에서 상태가 NOT_YET_ACTIVE인 약정을 즉시 만듭니다. 하지만 약정은 미국 및 캐나다 태평양 표준시(UTC-8 또는 UTC-7) 기준 1월 21일 오전 12시에만 ACTIVE가 됩니다.

요구사항

연결된 예약이 있는 약정을 구매하려면 먼저 이러한 요구사항을 검토하고 약정 및 예약이 다음 조건을 충족하는지 확인합니다.

  • 약정을 구매하고 동일한 프로젝트 및 리전에서 연결된 예약을 만들어야 합니다.
  • 약정을 구매하고 동일한 머신 계열 시리즈의 리소스에 대해 연결된 예약을 만들어야 합니다.
  • 연결된 예약에서 자동 삭제 옵션을 사용 중지해야 합니다.
  • 약정에 GPU가 포함된 경우 예약에 지정된 GPU 유형과 약정이 일치해야 합니다.
  • GPU와 로컬 SSD 디스크의 경우 각 리소스 유형의 예약된 리소스 수가 해당 리소스 유형에 약정된 리소스 수와 정확히 일치해야 합니다. 예를 들어 V100 GPU 4개의 약정을 구매하려면 약정의 연결된 예약에 V100 GPU 총 4개를 지정해야 합니다. 하지만 예약하는 vCPU 및 메모리의 크기는 약정하는 크기보다 크거나 작을 수 있습니다.
  • GPU의 경우 사용할 특정 GPU 유형의 약정을 구매합니다. 예를 들어 NVIDIA P100 또는 NVIDIA V100의 약정을 구매할 수 있지만 NVIDIA P100 GPU용으로 구매한 약정을 사용하여 NVIDIA V100 GPU를 적용할 수는 없습니다.
  • 연결된 예약이 공유 예약이고 약정 프로젝트 외부에서 해당 예약을 소비할 때 적용 가능한 CUD를 받으려면 다음 작업을 모두 수행해야 합니다.

    • 약정과 동일한 Cloud Billing 계정에 속하는 프로젝트 사이에만 예약을 공유합니다.
    • 해당 Cloud Billing 계정에 대해 CUD 공유를 사용 설정합니다.

기존 예약 연결

Google Cloud CLI 또는 REST를 사용해서 약정에 기존 예약을 연결하여 약정을 구매할 수 있습니다.

gcloud

기존 예약을 연결하여 약정을 구매하려면 gcloud compute commitments create 명령어를 실행합니다. 명령어에 --existing-reservation 플래그를 포함하여 약정에 연결하려는 기존 예약을 지정합니다. 연결하려는 기존 예약에 대해 이 플래그의 새 인스턴스를 포함합니다. 약정에 기존 예약을 원하는 만큼 연결할 수 있습니다.

예를 들어 2개의 예약을 연결하여 약정을 구매하려면 다음 명령어를 실행합니다.

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
    --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
    --plan=DURATION \
    --type=COMMITMENT_TYPE \
    --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \
    --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'

다음을 바꿉니다.

  • COMMITMENT_NAME: 약정의 이름입니다.
  • REGION: 약정이 있는 리전입니다.
  • PROJECT_ID: 연결된 예약이 있는 약정을 구매하려는 프로젝트의 ID입니다.
  • DURATION: 약정 기간입니다(12-month 또는 36-month).
  • COMMITMENT_TYPE: 약정 유형입니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.

    • 머신 유형 리소스의 경우 accelerator-optimized
    • C2 머신 유형 리소스의 경우 compute-optimized
    • C2D 머신 유형 리소스의 경우 compute-optimized-c2d
    • C3 머신 유형 리소스의 경우 compute-optimized-c3
    • C3D 머신 유형 리소스의 경우 compute-optimized-c3d
    • N1 머신 유형 리소스의 경우 general-purpose
    • E2 머신 유형 리소스의 경우 general-purpose-e2
    • N2 머신 유형 리소스의 경우 general-purpose-n2
    • N2D 머신 리소스의 경우 general-purpose-n2d
    • Tau T2D 머신 유형 리소스의 경우 general-purpose-t2d
    • G2 머신 유형 리소스의 경우 graphics-optimized
    • M1 또는 M2 머신 유형 리소스의 경우 memory-optimized
    • 메모리 최적화 M3 머신 유형의 경우 memory-optimized-m3
  • COMMITTED_VCPUS: 약정에 포함할 vCPU 수입니다. 값은 양의 정수여야 합니다.

  • COMMITTED_MEMORY: 약정에 포함하려는 메모리 크기(MB 또는 GB)입니다. 예를 들면 10240MB 또는 10GB입니다. 단위를 지정하지 않으면 Compute Engine에서 GB가 단위로 사용됩니다. 메모리는 0.25GB 단위로 구매할 수 있습니다.

  • COMMITTED_LOCAL_SSD: 약정에 포함하려는 로컬 SSD 공간의 크기(GB)입니다. 각 로컬 SSD 디스크는 375GB입니다.

  • COMMITTED_ACCELERATOR_COUNT: 약정에 포함할 GPU 수입니다.

  • COMMITTED_ACCELERATOR_TYPE: 약정에 포함할 GPU 유형입니다.

  • RESERVATION_NAME_1RESERVATION_NAME_2: 약정에 연결하려는 기존 예약의 이름입니다.

  • RESERVATION_ZONE_1RESERVATION_ZONE_2: 약정에 연결하려는 기존 예약의 영역입니다.

예시: 기존 예약을 연결하여 약정 구매

myproject 프로젝트의 us-central1-aus-central1-b 영역에 res-01res-02의 2개 예약이 있다고 가정해 보세요. 이러한 예약에는 NVIDIA P100 GPU 4개 및 로컬 SSD 디스크 4개가 조합된 용량이 포함됩니다. 이러한 GPU 및 로컬 SSD 디스크에 대해 이 프로젝트의 us-central1 리전에서 새 약정을 구매하고 이러한 기존 예약을 연결된 예약으로 사용하려면 다음 명령어를 실행합니다. 예시 약정에는 vCPU와 메모리도 포함됩니다.

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --existing-reservation=name=res-01,zone=us-central1-a \
    --existing-reservation=name=res-02,zone=us-central1-b
    

REST

기존 예약을 연결하여 약정을 구매하려면 regionCommitments.insert 메서드에 대해 POST 요청을 수행합니다. 요청에 existingReservations 필드를 포함하여 약정에 연결하려는 모든 기존 예약의 쉼표로 구분된 목록을 지정합니다. 약정에 기존 예약을 원하는 만큼 연결할 수 있습니다.

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

{
  "name": "COMMITMENT_NAME",
  "plan": "DURATION",
  "type": COMMITMENT_TYPE,
  "resources":
  [
    {
      "amount": "COMMITTED_VCPUS",
      "type": "VCPU"
    },
    {
      "amount": "COMMITTED_MEMORY",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
      "amount": "COMMITTED_ACCELERATOR_COUNT",
      "type": "ACCELERATOR"
    }
    {
      "amount": "COMMITTED_LOCAL_SSD",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations": "RESERVATION_URLs"
}

다음을 바꿉니다.

  • COMMITMENT_NAME: 약정의 이름입니다.
  • REGION: 약정이 있는 리전입니다.
  • PROJECT_ID: 연결된 예약이 있는 약정을 구매하려는 프로젝트의 ID입니다.
  • DURATION: 약정 기간입니다(TWELVE_MONTH 또는 THIRTY_SIX_MONTH).
  • COMMITMENT_TYPE: 약정 유형입니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.

    • E2 머신 유형 리소스의 경우 GENERAL_PURPOSE_E2
    • N2 머신 유형 리소스의 경우 GENERAL_PURPOSE_N2
    • N2D 머신 리소스의 경우 GENERAL_PURPOSE_N2D
    • C3 머신 유형 리소스의 경우 COMPUTE_OPTIMIZED_C3
    • C3D 머신 유형 리소스의 경우 GENERAL_PURPOSE_C3D
    • Tau T2D 머신 유형 리소스의 경우 GENERAL_PURPOSE_T2D
    • N1 머신 유형 리소스의 경우 GENERAL_PURPOSE
    • C2 머신 유형 리소스의 경우 COMPUTE_OPTIMIZED
    • C2D 머신 유형 리소스의 경우 COMPUTE_OPTIMIZED_C2D
    • M1 또는 M2 머신 유형 리소스의 경우 MEMORY_OPTIMIZED
    • 메모리 최적화 M3 머신 유형의 경우 MEMORY_OPTIMIZED_M3
    • 머신 유형 리소스의 경우 ACCELERATOR_OPTIMIZED
    • G2 머신 유형 리소스의 경우 GRAPHICS_OPTIMIZED
  • COMMITTED_VCPUS: 약정에 포함할 vCPU 수입니다. 값은 양의 정수여야 합니다.

  • COMMITTED_MEMORY: 약정에 포함하려는 메모리의 크기(MB)입니다. 예를 들면 10240MB입니다. 메모리는 256MB 단위로 구매할 수 있습니다.

  • COMMITTED_LOCAL_SSD: 약정에 포함하려는 로컬 SSD 스토리지의 크기(GB)입니다. 각 로컬 SSD 디스크는 375GB입니다.

  • COMMITTED_ACCELERATOR_COUNT: 약정에 포함할 GPU 수입니다.

  • COMMITTED_ACCELERATOR_TYPE: 약정에 포함할 GPU 유형입니다.

  • RESERVATION_URLs: 약정에 연결하려는 기존 예약의 쉼표로 구분된 URL 목록입니다. 예를 들어 res-1res-2라는 2개의 예약을 연결하려면 다음을 지정합니다.

    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
    

예시: 기존 예약을 연결하여 약정 구매

myproject 프로젝트의 us-central1-aus-central1-b 영역에 res-01res-02의 2개 예약이 있다고 가정해 보세요. 이러한 예약에는 NVIDIA P100 GPU 4개 및 로컬 SSD 디스크 4개가 조합된 용량이 포함됩니다. 이러한 GPU 및 로컬 SSD 디스크에 대해 이 프로젝트의 us-central1 리전에서 새 약정을 구매하고 이러한 기존 예약을 연결된 예약으로 사용하려면 다음 POST 요청을 수행합니다. 예시 약정에는 vCPU와 메모리도 포함됩니다.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE"
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    },
    {
      "amount": "1536000",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations":
  [
    "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/reservations/res-01",
    "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-b/reservations/res-02"
  ]
}

연결할 새 예약 만들기

Google Cloud 콘솔, Google Cloud CLI, REST를 사용해서 약정을 구매하는 동안 연결된 예약을 만들 수 있습니다.

콘솔

Google Cloud 콘솔을 사용하여 약정을 구매하기 전에 약정을 구매하는 데 사용할 프로젝트를 선택합니다. Cloud Billing 계정에 할인 공유가 사용 설정된 경우 해당 Cloud Billing 계정 계정의 프로젝트를 사용하여 약정을 구매할 수 있습니다. 프로젝트를 선택한 후 다음을 수행합니다.

  1. Google Cloud 콘솔에서 약정 사용 할인 페이지로 이동합니다.

    약정 사용 할인으로 이동

  2. 새 약정을 구매하려면 약정 구매를 클릭합니다.

  3. 약정 이름을 지정하고 적용할 리전을 선택합니다.

  4. 약정 유형을 선택합니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.

    • C3 머신 유형 리소스의 경우 범용 C3
    • C3D 머신 유형 리소스의 경우 범용 C3D
    • N2 머신 유형 리소스의 경우 범용 N2
    • N2D 머신 유형 리소스의 경우 범용 N2D
    • N1 머신 유형 리소스의 경우 범용 N1
    • H3 머신 유형 리소스의 경우 컴퓨팅 최적화 H3
    • C2 머신 유형 리소스의 경우 컴퓨팅 최적화 C2
    • C2D 머신 유형 리소스의 경우 컴퓨팅 최적화 C2D
    • M1 및 M2 머신 유형 리소스의 경우 메모리 최적화 M1/M2
    • M3 머신 유형 리소스의 경우 메모리 최적화 M3
    • A3 머신 유형 리소스의 경우 가속기 최적화 A3
    • A2 머신 유형 리소스의 경우 가속기 최적화 A2
    • G2 머신 유형 리소스의 경우 그래픽 최적화 G2
  5. 약정 기간을 1년 또는 3년으로 선택합니다.

  6. 구매하려는 코어메모리 수량을 입력합니다. vCPU와 메모리에 대한 약정 없이 GPU 또는 로컬 SSD 디스크만 약정하고 예약하려면 vCPU와 메모리 약정 수량을 0으로 지정합니다.

  7. GPU 추가를 클릭하고 약정할 GPU 유형GPU 수를 선택합니다.

  8. 로컬 SSD 추가를 클릭하고 약정할 디스크 수를 지정합니다.

  9. 예약을 만들고 약정에 연결하려면 예약 추가를 클릭합니다.

    1. 이름 필드에 예약 이름을 입력합니다.
    2. 리소스를 예약할 리전영역을 선택합니다.
    3. 원하는 공유 유형을 선택합니다.
      • 단일 프로젝트에 대한 예약을 만들려면 로컬을 선택합니다.
      • 여러 프로젝트 간에 공유 예약을 만들려면 공유를 선택합니다. 이 예약을 다른 프로젝트와 공유하려면 프로젝트 추가를 클릭하고 현재 프로젝트의 조직에서 원하는 프로젝트를 선택합니다.
    4. VM 인스턴스와 함께 사용 필드에서 다음 옵션 중 하나를 선택합니다.

      • 이름을 통해 이 예약을 명시적으로 타겟팅하는 일치하는 VM을 만들 때만 이 예약의 리소스를 사용하려면 특정 예약 선택을 선택합니다.
      • 일치하는 VM 인스턴스에서 이 예약을 자동으로 사용하도록 허용하려면 예약 자동 사용을 선택합니다.
    5. VM 인스턴스 수 필드에 예약할 VM 인스턴스 수를 입력합니다.

    6. VM 인스턴스마다 예약할 리소스를 지정합니다.

      • 기존 인스턴스 템플릿과 일치하는 VM을 예약하려면 인스턴스 템플릿 사용을 선택하고 목록에서 인스턴스 템플릿을 선택합니다.
      • 또는 머신 유형 지정을 선택하고 다음을 지정합니다.
        1. 머신 계열 필드에서 범용, 컴퓨팅 최적화, 메모리 최적화 또는 GPU 머신 계열을 선택합니다.
        2. 시리즈머신 유형 필드에서 머신 시리즈와 머신 유형을 선택합니다.
        3. 선택사항: 최소 CPU 플랫폼 또는 GPU를 지정합니다.
          1. CPU 플랫폼 및 GPU를 클릭하여 섹션을 펼칩니다.
          2. 선택사항: 최소 CPU 플랫폼을 지정하려면 CPU 플랫폼 목록에서 옵션을 선택합니다.
          3. 선택사항: GPU를 추가하려면 GPU 추가를 클릭합니다. 그런 다음 GPU 유형 필드와 GPU 수 필드에서 각 VM의 GPU 유형과 수를 선택합니다.
        4. 선택사항: 로컬 SSD 디스크를 추가합니다.
          1. 디스크 수 필드에서 각 VM의 로컬 SSD 디스크 수를 선택합니다.
          2. 인터페이스 유형 필드에서 로컬 SSD 디스크의 인터페이스를 선택합니다.
    7. 이 예약의 속성 지정을 완료하려면 완료를 클릭합니다.

  10. 구매 버튼을 클릭하여 약정을 구매합니다.

  11. 구매 약관을 읽고 약정을 구매할 준비가 되면 구매를 클릭합니다.

gcloud

약정을 구매하는 동안 연결된 예약을 만들려면 gcloud compute commitments create 명령어를 실행합니다.

단일 예약 또는 다중 예약을 연결할지 여부에 따라 다음 방법 중 하나로 명령어를 실행합니다.

  • 단일 예약을 만들고 약정에 연결하려면 다음 명령어를 실행하여 연결된 예약의 속성을 정의합니다.

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan DURATION \
        --type COMMITMENT_TYPE
        --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
        --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
        --reservation=RESERVATION_NAME \
        --reservation-zone=RESERVATION_ZONE \
        --machine-type=RESERVED_MACHINE_TYPE \
        --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \
        --vm-count=NUMBER_OF_RESERVED_VMs \
        --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \
        --local-ssd=interface=INTERFACE_1,size=375 \
        --local-ssd=interface=INTERFACE_2,size=375 \
        --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \
        --share-setting=SHARE_SETTING \
        --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2
    
  • 다중 예약을 만들고 약정에 연결하려면 YAML 파일을 사용해서 예약 속성을 정의한 후 약정 구매를 위해 사용하는 명령어에 이 YAML 파일을 지정합니다. 또한 선택적으로 이 YAML 파일 방법을 사용해서 단일 예약을 만들고 약정에 연결할 수도 있습니다. 이 방법을 사용해서 연결된 예약을 만들려면 다음을 수행합니다.

    1. 현재 디렉터리에 YAML 파일을 만들고 연결된 각 예약에 대해 원하는 구성을 지정합니다. 예를 들어 GPU, 2개의 로컬 SSD 디스크, 최소 CPU 플랫폼을 지정하는 2개의 프로젝트와 공유된 공유 예약 구성을 지정하려면 YAML 파일에 다음 텍스트를 포함합니다.

      - reservation: RESERVATION_NAME
        reservation_zone: RESERVATION_ZONE
        require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE
        vm_count: NUMBER_OF_RESERVED_VMs
        machine_type: RESERVED_MACHINE_TYPE
        accelerator:
        - count: RESERVED_ACCELERATOR_COUNT
          type: RESERVED_ACCELERATOR_TYPE
        localssd:
        - interface: INTERFACE_1
          size: 375
        - interface: INTERFACE_2
          size: 375
        project: OWNER_PROJECT_ID
        minimum-cpu-platform: MINIMUM_CPU_PLATFORM
        share-setting: SHARE_SETTING
        share-with:
        - CONSUMER_PROJECT_ID_1
        - CONSUMER_PROJECT_ID_2
      
      

      다중 예약 구성을 지정하려면 만들려는 각 예약에 대해 해당 속성을 반복합니다. 기존 예약을 원하는 만큼 약정에 연결할 수 있습니다.

    2. gcloud compute commitments create 명령어를 실행하고 --reservation-from-file 플래그를 포함합니다.

      gcloud compute commitments create COMMITMENT_NAME \
          --region REGION \
          --project PROJECT_ID \
          --plan DURATION \
          --type COMMITMENT_TYPE \
          --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
          --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
          --reservations-from-file=YAML_FILE
      

다음을 약정 및 연결된 예약의 해당 속성으로 바꿉니다.

약정

  • COMMITMENT_NAME: 약정의 이름입니다.
  • REGION: 약정이 있는 리전입니다.
  • PROJECT_ID: 연결된 예약이 있는 약정을 구매하려는 프로젝트의 ID입니다.
  • DURATION: 약정 기간입니다(12-month 또는 36-month).
  • COMMITMENT_TYPE: 약정 유형입니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.

    • E2 머신 유형 리소스의 경우 general-purpose-e2
    • N2 머신 유형 리소스의 경우 general-purpose-n2
    • N2D 머신 리소스의 경우 general-purpose-n2d
    • C3 머신 유형 리소스의 경우 compute-optimized-c3
    • C3D 머신 유형 리소스의 경우 general-purpose-c3d
    • Tau T2D 머신 유형 리소스의 경우 general-purpose-t2d
    • N1 머신 유형 리소스의 경우 general-purpose
    • C2 머신 유형 리소스의 경우 compute-optimized
    • C2D 머신 유형 리소스의 경우 compute-optimized-c2d
    • M1 또는 M2 머신 유형 리소스의 경우 memory-optimized
    • 메모리 최적화 M3 머신 유형의 경우 memory-optimized-m3
    • 머신 유형 리소스의 경우 accelerator-optimized
    • G2 머신 유형 리소스의 경우 graphics-optimized
  • COMMITTED_VCPUS: 약정에 포함할 vCPU 수입니다. 값은 양의 정수여야 합니다.

  • COMMITTED_MEMORY: 약정에 포함하려는 메모리 크기(MB 또는 GB)입니다. 예를 들면 10GB 또는 10240MB입니다. 단위를 지정하지 않으면 Compute Engine에서 GB가 단위로 사용됩니다. 메모리는 0.25GB 단위로 구매할 수 있습니다.

  • COMMITTED_LOCAL_SSD: 약정에 포함하려는 로컬 SSD 스토리지의 크기(GB)입니다. 각 로컬 SSD 디스크는 375GB입니다.

  • COMMITTED_ACCELERATOR_COUNT: 약정에 포함할 GPU 수입니다.

  • COMMITTED_ACCELERATOR_TYPE: 약정에 포함할 GPU 유형입니다.

  • YAML_FILE: 연결된 예약의 구성이 포함된 YAML 파일의 경로입니다.

연결된 예약

  • RESERVATION_NAME: 연결된 예약의 이름입니다.
  • RESERVATION_ZONE: 연결된 예약의 영역입니다.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: 연결된 예약이 특정 대상이 지정된 예약인지 여부를 지정합니다. true 또는 false입니다. 특정 대상이 지정된 예약에 대한 자세한 내용은 예약 작동 방법을 참조하세요.
  • NUMBER_OF_RESERVED_VMS: 연결된 예약에서 예약하려는 VM 수입니다.
  • RESERVED_MACHINE_TYPE: 연결된 예약에서 VM에 사용하려는 머신 유형입니다.

    • 사전 정의된 머신 유형의 경우 MACHINE_FAMILY-standard-CPUS 형식을 사용합니다(예: n2-standard-4).
    • 커스텀 머신 유형의 경우 MACHINE_FAMILY-custom-CPUS-MEMORY 형식을 사용합니다(예: n2-custom-4-5120). 제한사항의 전체 목록은 커스텀 머신 유형의 사양을 참조하세요.

      다음을 바꿉니다.

      • MACHINE_FAMILY: 머신 유형의 계열. 예를 들어 N2 VM의 경우 n2를 지정합니다.
      • CPUS: vCPU의 수입니다.
      • MEMORY: 예약된 VM의 총 메모리입니다. 메모리는 256MB의 배수여야 하며 MB 단위로 제공되어야 합니다. 예를 들어 vCPU 4개, 5GB(5,120MB) 메모리의 N2 VM을 만들려면 n2-custom-4-5120을 사용합니다.
  • RESERVED_ACCELERATOR_COUNT: 연결된 예약에서 VM당 추가하려는 GPU 수입니다.

  • RESERVED_ACCELERATOR_TYPE: 연결된 예약에서 추가하려는 가속기 유형입니다.

  • INTERFACE_1INTERFACE_2: 예약된 각 VM에서 로컬 SSD 디스크에 사용할 인터페이스 유형입니다. 유효한 옵션은 scsinvme입니다. 각 로컬 SSD 디스크는 375GB입니다. 추가하려는 각 로컬 SSD 디스크에 대해 local_ssd 매개변수를 반복합니다. 로컬 SSD 디스크를 최대 24개까지 지정할 수 있습니다.

  • OWNER_PROJECT_ID: 연결된 예약이 있는 약정을 구매하려는 프로젝트의 ID입니다. 여러 소비자 프로젝트 간에 연결된 예약을 공유하려면 이 필드를 지정합니다.

  • MINIMUM_CPU_PLATFORM: 연결된 예약에 지정하려는 최소 CPU 플랫폼입니다.

  • SHARE_SETTING: 연결된 예약의 공유 유형입니다. 여러 소비자 프로젝트 간에 연결된 예약을 공유하려면 이 필드의 값을 projects로 지정합니다. 단일 프로젝트 예약을 만들려면 이 필드를 제외합니다.

  • CONSUMER_PROJECT_ID_1CONSUMER_PROJECT_ID_2: 이 예약을 공유할 수 있는 프로젝트의 프로젝트 ID입니다(예: project-1project-2). 소비자 프로젝트를 최대 100개까지 포함할 수 있습니다. 이러한 프로젝트는 소유자 프로젝트와 동일한 조직에 있어야 합니다. 기본적으로 프로젝트가 이 예약을 소비하도록 허용되므로 이 예약을 만드는 프로젝트의 ID를 포함하지 마세요. 단일 프로젝트 예약을 만들려면 이러한 필드를 제외합니다.

Compute Engine은 대상 영역에 지정된 머신 유형의 리소스가 충분하고 요청 시 할당량이 충분한 경우에만 약정 및 연결된 예약을 만듭니다. 구매가 성공하면 다음과 비슷한 성공 메시지가 표시됩니다.

Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]

연결할 새 예약을 만들어서 약정을 구매하는 예시

다음 예시 시나리오 및 명령어는 새 예약을 만들고 이를 약정에 연결해서 GPU나 로컬 SSD 디스크 또는 둘 다에 대한 약정을 구매하는 방법을 보여줍니다.

예시 1: 단일 새 예약을 연결하여 GPU 약정 구매

us-central1 리전에서 NVIDIA V100 GPU 4개가 포함된 commitment-01 약정을 구매한다고 가정해 보세요. 새 예약 reservation-01을 이러한 GPU에 대한 연결된 예약으로 만들어야 합니다. 또한 Compute Engine이 us-central1-a 영역에서 2개의 n1-standard-32 VM에 이러한 예약된 GPU를 사용하도록 지정해야 합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 명령어를 실행합니다.

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-32 \
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

예시 2: vCPU 또는 메모리 약정 없이 GPU에 대한 약정 구매

vCPU 또는 메모리 약정 없이 GPU 및 로컬 SSD 디스크를 약정하고 예약하려면 vCPU 및 메모리 수량의 값으로 0을 지정합니다. 예를 들어 us-west2 리전에서 단일 NVIDIA P4 GPU에 대해 commitment-02 약정을 구매한다고 가정해 보세요. 또한 새 예약을 연결된 예약으로 만들고 Compute Engine이 us-west2-b 영역에서 n1-standard-2 VM에 예약된 GPU를 사용하도록 지정합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 명령어를 실행합니다.

gcloud compute commitments create commitment-02 \
    --region=us-west2 \
    --project=myproject \
    --resources=vcpu=0,memory=0 \
    --resources-accelerator=type=nvidia-tesla-p4,count=1 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-west2-b \
    --machine-type=n1-standard-2 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

예시 3: 새로운 다중 예약을 연결하여 GPU 및 로컬 SSD 디스크의 약정 구매

us-central1 리전에서 NVIDIA V 100 GPU 1개 및 로컬 SSD 디스크 2개에 대해 commitment-03 약정을 구매한다고 가정해 보세요. 또한 us-central1-a 영역에서 2개의 예약을 만들고 연결하려고 합니다. 첫 번째 예약 res-01에서 GPU 1개가 있는 n1-standard-2 VM 1개를 예약하려고 합니다. res-01을 대상이 지정된 예약으로 만들어야 합니다. 즉, 예약된 VM을 사용하도록 이름별로 예약 대상을 지정해야 합니다. 두 번째 예약 res-02에서 두 가지 유형의 연결된 로컬 SSD 디스크가 있는 n1-standard-8 VM 1개를 예약합니다.

연결된 예약이 있는 이 예시 약정을 구매하려면 먼저 두 예약의 속성을 사용해서 YAML 파일을 만듭니다.

- reservation: res-01
  reservation_zone: us-central1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-v100
- reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-8
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

YAML 파일을 만든 후 연결된 예약이 있는 약정 구매를 완료하기 위해 다음 명령어를 실행합니다. 예시 약정에는 vCPU 및 메모리 리소스도 포함됩니다.

gcloud compute commitments create commitment-03 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624,local-ssd=750 \
    --resources-accelerator=type=nvidia-tesla-v100,count=1 \
    --plan 12-month \
    --reservations-from-file=YAML_FILE

REST

약정을 구매하는 동안 연결된 예약을 만들려면 regionCommitments.insert 메서드에 대해 POST 요청을 수행합니다. 요청에서 reservations 필드를 포함하여 만들고 연결하려는 모든 새 예약 목록을 정의합니다. 기존 예약을 원하는 만큼 약정에 연결할 수 있습니다.

  • 모든 VM 속성을 수동으로 지정하여 새 예약을 만들려면 instanceProperties 필드를 포함하고 sourceInstanceTemplate 필드는 제외합니다.

    예를 들어 GPU, 로컬 SSD 디스크 2개, 최소 CPU 플랫폼을 지정하는 2개의 프로젝트와 공유된 공유 예약 구성을 수동으로 지정하려면 다음 요청을 수행합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "RESERVED_ACCELERATOR_COUNT",
                "acceleratorType": "RESERVED_ACCELERATOR_TYPE"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_1"
              },
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_2"
              }
            ],
            "machineType": "RESERVED_MACHINE_TYPE",
            "minCpuPlatform": "MINIMUM_CPU_PLATFORM"
          }
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    
  • 인스턴스 템플릿을 지정하여 새 예약을 만들려면 sourceInstanceTemplate 필드를 포함하고 instanceProperties 필드는 제외합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    

다음을 약정 및 연결된 예약의 해당 속성으로 바꿉니다.

약정

  • COMMITMENT_NAME: 약정의 이름입니다.
  • REGION: 약정이 있는 리전입니다.
  • PROJECT_ID: 연결된 예약이 있는 약정을 구매하려는 프로젝트의 ID입니다.
  • DURATION: 약정 기간입니다(TWELVE_MONTH 또는 THIRTY_SIX_MONTH).
  • COMMITMENT_TYPE: 약정 유형입니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.

    • 머신 유형 리소스의 경우 ACCELERATOR_OPTIMIZED
    • C2 머신 유형 리소스의 경우 COMPUTE_OPTIMIZED
    • C2D 머신 유형 리소스의 경우 COMPUTE_OPTIMIZED_C2D
    • C3 머신 유형 리소스의 경우 COMPUTE_OPTIMIZED_C3
    • C3D 머신 유형 리소스의 경우 COMPUTE_OPTIMIZED_C3D
    • N1 머신 유형 리소스의 경우 GENERAL_PURPOSE
    • E2 머신 유형 리소스의 경우 GENERAL_PURPOSE_E2
    • N2 머신 유형 리소스의 경우 GENERAL_PURPOSE_N2
    • N2D 머신 리소스의 경우 GENERAL_PURPOSE_N2D
    • Tau T2D 머신 유형 리소스의 경우 GENERAL_PURPOSE_T2D
    • G2 머신 유형 리소스의 경우 GRAPHICS_OPTIMIZED
    • M1 또는 M2 머신 유형 리소스의 경우 MEMORY_OPTIMIZED
    • 메모리 최적화 M3 머신 유형의 경우 MEMORY_OPTIMIZED_M3
  • COMMITTED_VCPUS: 약정에 포함할 vCPU 수입니다. 값은 양의 정수여야 합니다.

  • COMMITTED_MEMORY: 약정에 포함하려는 메모리의 크기(MB)입니다. 예를 들면 10240MB입니다. 메모리는 256MB 단위로 구매할 수 있습니다.

  • COMMITTED_LOCAL_SSD: 약정에 포함하려는 로컬 SSD 스토리지의 크기(GB)입니다. 각 로컬 SSD 디스크는 375GB입니다.

  • COMMITTED_ACCELERATOR_COUNT: 약정에 포함할 GPU 수입니다.

  • COMMITTED_ACCELERATOR_TYPE: 약정에 포함할 GPU 유형입니다.

연결된 예약

  • RESERVATION_NAME: 연결된 예약의 이름입니다.
  • RESERVATION_ZONE: 연결된 예약의 영역입니다.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: 연결된 예약이 특정 대상이 지정된 예약인지 여부를 지정합니다. true 또는 false입니다. 특정 대상이 지정된 예약에 대한 자세한 내용은 예약 작동 방법을 참조하세요.
  • NUMBER_OF_RESERVED_VMS: 연결된 예약에서 예약하려는 VM 수입니다.
  • RESERVED_MACHINE_TYPE: 연결된 예약에서 VM에 사용하려는 머신 유형입니다.

    • 사전 정의된 머신 유형의 경우 MACHINE_FAMILY-standard-CPUS 형식을 사용합니다(예: n2-standard-4).
    • 커스텀 머신 유형의 경우 MACHINE_FAMILY-custom-CPUS-MEMORY 형식을 사용합니다(예: n2-custom-4-5120). 제한사항의 전체 목록은 커스텀 머신 유형의 사양을 참조하세요.

      다음을 바꿉니다.

      • MACHINE_FAMILY: 머신 유형의 계열. 예를 들어 N2 VM의 경우 n2를 지정합니다.
      • CPUS: vCPU의 수입니다.
      • MEMORY: 예약된 VM의 총 메모리입니다. 메모리는 256MB의 배수여야 하며 MB 단위로 제공되어야 합니다. 예를 들어 vCPU 4개, 5GB(5,120MB) 메모리의 N2 VM을 만들려면 n2-custom-4-5120을 사용합니다.
  • RESERVED_ACCELERATOR_COUNT: 연결된 예약에서 VM당 추가하려는 GPU 수입니다.

  • RESERVED_ACCELERATOR_TYPE: 연결된 예약에서 추가하려는 가속기 유형입니다.

  • INTERFACE_1INTERFACE_2: 예약된 각 VM에서 로컬 SSD 디스크에 사용할 인터페이스 유형입니다. 유효한 옵션은 scsinvme입니다. 각 로컬 SSD 디스크는 375GB입니다. 추가하려는 각 로컬 SSD 디스크에 대해 localSsds 매개변수를 반복합니다. 로컬 SSD 디스크를 최대 24개까지 지정할 수 있습니다.

  • MINIMUM_CPU_PLATFORM: 연결된 예약에 지정하려는 최소 CPU 플랫폼입니다.

  • INSTANCE_TEMPLATE_NAME: 연결된 예약을 만드는 데 사용하려는 인스턴스 템플릿의 이름입니다.

  • SHARE_SETTING: 연결된 예약의 공유 유형입니다. 여러 소비자 프로젝트 간에 연결된 예약을 공유하려면 이 필드의 값을 SPECIFIC_PROJECTS로 지정합니다. 단일 프로젝트 예약을 만들려면 이 필드를 제외합니다.

  • CONSUMER_PROJECT_ID_1CONSUMER_PROJECT_ID_2: 이 예약을 공유할 수 있는 프로젝트의 프로젝트 ID입니다(예: project-1project-2). 소비자 프로젝트를 최대 100개까지 포함할 수 있습니다. 이러한 프로젝트는 소유자 프로젝트와 동일한 조직에 있어야 합니다. 기본적으로 프로젝트가 이 예약을 소비하도록 허용되므로 이 예약을 만드는 프로젝트의 ID를 포함하지 마세요. 단일 프로젝트 예약을 만들려면 이러한 필드를 제외합니다.

Compute Engine은 대상 영역에 지정된 머신 유형의 리소스가 충분하고 요청 시 할당량이 충분한 경우에만 약정 및 연결된 예약을 만듭니다. 구매가 성공하면 Compute Engine이 REST API 요청에 대해 200 상태를 반환합니다.

연결할 새 예약을 만들어서 약정을 구매하는 예시

다음 예시 시나리오 및 명령어는 새 예약을 만들고 이를 약정에 연결해서 GPU나 로컬 SSD 디스크 또는 둘 다에 대한 약정을 구매하는 방법을 보여줍니다.

예시 1: 단일 새 예약을 연결하여 GPU 약정 구매

us-central1 리전에서 NVIDIA V100 GPU 4개가 포함된 commitment-01 약정을 구매한다고 가정해 보세요. 새 예약 reservation-01을 이러한 GPU에 대한 연결된 예약으로 만들어야 합니다. 또한 Compute Engine이 us-central1-a 영역에서 2개의 n1-standard-8 VM에 이러한 예약된 GPU를 사용하도록 지정해야 합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 POST 요청을 수행합니다.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE"
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

예시 2: vCPU 또는 메모리 약정 없이 GPU에 대한 약정 구매

vCPU 또는 메모리 약정 없이 GPU 및 로컬 SSD 디스크를 약정하고 예약하려면 vCPU 및 메모리 수량의 값으로 0을 지정합니다. 예를 들어 us-west2 리전에서 단일 NVIDIA P4 GPU에 대해 commitment-02 약정을 구매한다고 가정해 보세요. 또한 새 예약을 연결된 예약으로 만들고 Compute Engine이 us-west2-b 영역에서 n1-standard-2 VM에 예약된 GPU를 사용하도록 지정합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 POST 요청을 수행합니다.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments

{
  "name": "commitment-02",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-p4",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 4,
              "acceleratorType": "nvidia-tesla-p4"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-west2-b"
    }
  ]
}

예시 3: 새로운 다중 예약을 연결하여 GPU 및 로컬 SSD 디스크의 약정 구매

us-central1 리전에서 NVIDIA V 100 GPU 1개 및 로컬 SSD 디스크 2개에 대해 commitment-03 약정을 구매한다고 가정해 보세요. 또한 us-central1-a 영역에서 2개의 예약을 만들고 연결하려고 합니다. 첫 번째 예약 res-01에서 GPU 1개가 있는 n1-standard-2 VM 1개를 예약하려고 합니다. res-01을 대상이 지정된 예약으로 만들어야 합니다. 즉, 예약된 VM을 사용하도록 이름별로 예약 대상을 지정해야 합니다. 두 번째 예약 res-02에서 두 가지 유형의 연결된 로컬 SSD 디스크가 있는 n1-standard-8 VM 1개를 예약합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 POST 요청을 수행합니다. 예시 약정에는 vCPU 및 메모리 리소스도 포함됩니다.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-03",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "1",
      "type": "ACCELERATOR"
    },
    {
      "amount": "768000",
      "type": "LOCAL_SSD"
    }
  ],
  "reservations":
  [
    {
      "name": "res-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": true,
      "zone": "us-central1-a"
    },
    {
      "name": "res-02",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "SCSI"
            },
            {
              "diskSizeGb": "375",
              "interface": "NVME"
            }
          ]
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

약정에 연결된 예약 교체

약정된 리소스를 사용하는 VM 유형과 수를 수정하려면 약정의 기존 연결 예약을 새 예약으로 바꿉니다.

허용된 변경사항

약정의 기존 연결된 예약을 새 예약으로 바꾸면 다음 변경사항을 요청할 수 있습니다.

  • 다른 머신 유형에서 VM을 예약할 수 있습니다. 그러나 예약된 리소스에 CUD를 계속 받으려면 같은 머신 계열에서 VM을 계속 예약해야 합니다.
  • 예약할 VM 수를 변경할 수 있습니다.
  • 예약된 GPU와 로컬 SSD 디스크의 총 수량이 동일하게 유지되는 한 VM당 연결되는 GPU와 로컬 SSD 디스크의 수량을 변경할 수 있습니다.
  • 바뀐 예약을 로컬 예약이나 공유 예약으로 지정할 수 있습니다.

요구사항

약정의 연결된 예약을 새 예약으로 바꿀 때는 요청이 다음 요구사항을 모두 충족해야 합니다.

  • 한 번에 연결된 예약 하나만 새 연결 예약 하나로 바꿀 수 있습니다. 연결된 예약을 바꾸려면 VM 수를 0으로 설정하여 기존 연결된 예약을 동시에 삭제하고 바꾸려는 새로운 연결된 예약을 정의합니다.
  • 새 예약은 약정과 동일한 프로젝트에 있어야 합니다.
  • 새 예약은 삭제된 예약과 동일한 영역에 있어야 합니다.
  • 새 예약에 지정된 GPU 양과 유형은 삭제된 예약과 일치해야 합니다.
  • 새 예약에 지정된 로컬 SSD 디스크의 수와 유형은 삭제된 예약과 일치해야 합니다.
  • 요청당 VM을 최대 100대까지만 변경할 수 있습니다. 100개를 초과하는 VM과 관련된 변경 작업을 수행하려면 변경사항을 여러 개의 작은 요청으로 나누거나 Google Cloud 지원팀에 문의하세요.

예약 교체 요청은 또한 당시의 용량 가용성에 따라 달라집니다. 요청 용량을 사용할 수 없으면 요청이 실패하고 리소스 가용성 오류가 반환됩니다. 요청을 수정하거나 연기해서 오류 해결을 시도할 수 있습니다. 자세한 내용은 리소스 가용성 문제 해결 문서를 참조하세요.

연결된 예약 교체 요청이 실패하더라도 연결된 예약과 기존 예약된 리소스는 영향을 받지 않습니다. 용량을 보존하려면 예약 교체 요청이 성공할 때까지 VM 변경을 기다려야 합니다.

연결된 예약 교체 단계

Google Cloud CLI 또는 REST를 사용하여 약정 예약을 바꿀 수 있습니다.

gcloud

약정에 연결된 예약을 교체하려면 다음을 수행합니다.

  1. 다음과 같은 연결된 예약의 구성을 사용해서 현재 디렉토리에 YAML 파일을 만듭니다.

    • 바꾸려는 현재 예약입니다.

      이 예약의 세부정보를 검색하려면 예약 세부정보 보기를 참조하세요.

    • 새로운 교체 예약입니다.

    YAML 파일의 콘텐츠는 다음과 비슷합니다.

    - reservation: CURRENT_RESERVATION_NAME
      reservation_zone: CURRENT_RESERVATION_ZONE
      vm_count: 0
      machine_type: CURRENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
        type: CURRENT_RESERVATION_ACCELERATOR_TYPE
      localssd:
      - interface: CURRENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: CURRENT_RESERVATION_INTERFACE_2
        size: 375
      project: CURRENT_RESERVATION_PROJECT_ID
      share-setting: CURRENT_RESERVATION_SHARE_SETTING
      share-with:
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
    - reservation: REPLACEMENT_RESERVATION_NAME
      reservation_zone: REPLACEMENT_RESERVATION_ZONE
      vm_count: REPLACEMENT_RESERVATION_NUMBER_OF_VMs
      machine_type: REPLACEMENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: REPLACEMENT_RESERVATION_ACCELERATOR_COUNT
        type: REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
      localssd:
      - interface: REPLACEMENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: REPLACEMENT_RESERVATION_INTERFACE_2
        size: 375
      project: REPLACEMENT_RESERVATION_PROJECT_ID
      share-setting: REPLACEMENT_RESERVATION_SHARE_SETTING
      share-with:
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
    
    

    다음을 현재 및 교체 예약의 해당 속성으로 바꿉니다.

    현재 예약

    현재 예약의 경우 다음과 같은 모든 속성이 예약을 봤을 때와 정확하게 동일해야 합니다. 현재 예약에 아직 없는 모든 속성은 필드를 생략합니다.

    • CURRENT_RESERVATION_NAME: 현재 연결된 예약의 이름입니다.
    • CURRENT_RESERVATION_ZONE: 현재 연결된 예약의 영역입니다.
    • CURRENT_RESERVATION_MACHINE_TYPE: 현재 연결된 예약의 머신 유형입니다.
    • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: 현재 연결된 예약에 포함된 GPU 수입니다.
    • CURRENT_RESERVATION_ACCELERATOR_TYPE: 현재 연결된 예약에 포함된 가속기 유형입니다.
    • CURRENT_RESERVATION_INTERFACE_1CURRENT_RESERVATION_INTERFACE_2: 현재 연결된 예약에서 예약된 각 VM의 로컬 SSD 디스크에 사용되는 인터페이스 유형입니다. 유효한 옵션은 scsinvme입니다. 각 로컬 SSD 디스크는 375GB입니다. 예약된 모든 로컬 SSD 디스크에 local_ssd 매개변수를 반복합니다.
    • CURRENT_RESERVATION_PROJECT_ID: 약정 및 연결된 예약을 포함하는 현재 프로젝트의 프로젝트 ID입니다. 현재 연결된 예약이 여러 소비자 프로젝트 간에 공유된 경우 이 필드를 지정합니다.
    • CURRENT_RESERVATION_SHARE_SETTING: 현재 예약의 공유 유형입니다. 현재 연결된 예약이 여러 소비자 프로젝트 간에 공유된 경우 이 필드의 값을 projects로 지정합니다.
    • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: 현재 연결된 예약을 공유하는 프로젝트의 프로젝트 ID입니다(예: project-1project-2).

    교체 예약

    교체 예약의 경우 필요에 따라 다음 속성을 설정합니다. 이러한 속성을 지정할 때는 모든 요구사항을 충족해야 합니다. 사용하지 않으려는 추가 필드는 생략합니다.

    • REPLACEMENT_RESERVATION_NAME: 새 교체 예약의 이름입니다.
    • REPLACEMENT_RESERVATION_ZONE: 새 교체 예약의 영역입니다.
    • REPLACEMENT_RESERVATION_NUMBER_OF_VMS: 새 교체 영역에서 예약하려는 VM 수입니다.
    • REPLACEMENT_RESERVATION_MACHINE_TYPE: 새 교체 영역에서 VM에 지정하려는 머신 유형입니다.

      • 사전 정의된 머신 유형의 경우 MACHINE_FAMILY-standard-CPUS 형식을 사용합니다(예: n2-standard-4).
      • 커스텀 머신 유형의 경우 MACHINE_FAMILY-custom-CPUS-MEMORY 형식을 사용합니다(예: n2-custom-4-5120). 제한사항의 전체 목록은 커스텀 머신 유형의 사양을 참조하세요.

      다음을 바꿉니다.

      • MACHINE_FAMILY: 머신 유형의 계열. 예를 들어 N2 VM의 경우 n2를 지정합니다.
      • CPUS: vCPU의 수입니다.
      • MEMORY: 예약된 VM의 총 메모리입니다. 메모리는 256MB의 배수여야 하며 MB 단위로 제공되어야 합니다. 예를 들어 vCPU 4개, 5GB(5,120MB) 메모리의 N2 VM을 만들려면 n2-custom-4-5120을 사용합니다.
    • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: 교체 예약에서 VM당 추가하려는 GPU 수입니다.

    • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE: 교체 예약에서 추가하려는 가속기 유형입니다.

    • REPLACEMENT_RESERVATION_INTERFACE_1REPLACEMENT_RESERVATION_INTERFACE_2: 예약된 각 VM에서 로컬 SSD 디스크에 사용할 인터페이스 유형입니다. 유효한 옵션은 scsinvme입니다. 각 로컬 SSD 디스크는 375GB입니다. 추가하려는 각 로컬 SSD 디스크에 대해 local_ssd 매개변수를 반복합니다. 로컬 SSD 디스크를 최대 24개까지 지정할 수 있습니다.

    • REPLACEMENT_RESERVATION_PROJECT_ID: 약정 및 연결된 예약을 포함하는 현재 프로젝트의 프로젝트 ID입니다. 여러 소비자 프로젝트 간에 교체 예약을 공유하려면 이 필드를 지정합니다.

    • REPLACEMENT_RESERVATION_SHARE_SETTING: 교체 예약의 문자열 유형입니다. 여러 소비자 프로젝트 간에 교체 예약을 공유하려면 이 필드의 값을 projects로 지정합니다.

    • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: 이 예약을 공유할 수 있는 프로젝트의 프로젝트 ID입니다(예: project-1,project-2). 소비자 프로젝트를 최대 100개까지 포함할 수 있습니다. 이러한 프로젝트는 소유자 프로젝트와 동일한 조직에 있어야 합니다. 이 예약을 기본적으로 소비할 수 있도록 이미 허용된 REPLACEMENT_RESERVATION_PROJECT_ID는 포함하지 마세요.

  2. gcloud beta compute commitments update-reservations 명령어를 실행하고 --reservations-from-file 플래그를 사용해서 YAML 파일 경로를 지정합니다.

    gcloud beta compute commitments update-reservations COMMITMENT_NAME \
        --project= PROJECT_ID \
        --region= REGION \
        --reservations-from-file= YAML_FILE
    

    다음을 바꿉니다.

    • COMMITMENT_NAME: 연결된 예약이 있는 약정 이름입니다.
    • PROJECT_ID: 연결된 예약이 있는 약정의 프로젝트 ID입니다.
    • REGION: 약정이 있는 리전입니다.
    • YAML_FILE: 현재 및 교체 예약의 구성이 포함된 YAML 파일의 경로입니다.

약정에 연결된 예약을 교체하는 예시

이를 설명하기 위해 이 섹션에서는 연결된 예약이 포함된 약정 예시연결된 예약 예시를 교체하는 방법을 보여줍니다.

연결된 예약이 포함된 약정 예시

예를 들어 다음 명령어를 사용해서 구입한 my-commitment-with-reservations 약정에 대해 연결된 예약을 업데이트한다고 가정해 보세요.

  gcloud beta compute commitments create my-commitment-with-reservations \
      --region=asia-east1 \
      --resources=vcpu=16,memory=60GB,local-ssd=3000GB \
      --resources-accelerator=type=nvidia-tesla-p100,count=4 \
      --plan=12-month \
      --type=general-purpose \
      --reservations-from-file=one-reservation.yaml

이 예시에서는 이 명령어를 실행할 때 one-reservation.yaml이 현재 디렉터리에 있는 파일이고, res-1이라는 연결된 예약을 정의하는 다음 콘텐츠가 포함되었다고 가정합니다.

  - reservation: res-1
    reservation_zone: asia-east1-a
    vm_count: 4
    machine_type: n1-standard-4
    accelerator:
    - count: 1
      type: nvidia-tesla-p100
    local_ssd:
    - interface: scsi
      size: 375
    - interface: scsi
      size: 375

my-commitment-with-reservations 약정과 연결된 예약 res-1에 따라 다음과 같은 약정 및 예약된 리소스가 발생했습니다.

리소스 유형 약정의 리소스
(my-commitment-with-reservations)
현재 연결된 예약의 리소스
(res-1)
vCPU 및 메모리 vCPU 16개 및 60GB vCPU 16개 및 60GB
(예약된 n1-standard-4 VM 4개)*
GPU P100 GPU 4개 P100 GPU 4개
(VM 4개에 대해 VM당 P100 GPU 1개)*
로컬 SSD 디스크 3,000GB 또는 8개의 로컬 SSD 디스크 3,000GB 또는 로컬 SSD 디스크 8개
(VM 4개에 대해 VM당 750GB 또는 로컬 SSD 디스크 2개)*

*특히 연결된 예약 예시 res-1n1-standard-4 VM 4개를 예약하며, 각 VM에는 scsi 인터페이스 유형의 P100 GPU 1개 및 로컬 SSD 디스크 2개가 포함됩니다. n1-standard-4 머신 유형은 각 VM에 대해 vCPU 4개와 15GB를 사용합니다.

연결된 예약 예시 바꾸기

연결된 예약 res-1을 새로운 연결된 예약 res-2로 바꾸고 예약된 리소스를 다음과 같이 변경한다고 가정해 보세요.

리소스 유형 약정의 리소스
(my-commitment-with-reservations)
현재 연결된 예약의 리소스
(res-1)
연결된 교체 예약의 리소스
(res-2)
vCPU 및 메모리 vCPU 16개 및 60GB vCPU 16개 및 60GB
(예약된 n1-standard-4 VM 4개)*
vCPU 16개 및 60GB
(예약 및 공유된 n1-standard-8 VM 2개)
GPU P100 GPU 4개 P100 GPU 4개
(VM 4개에 대해 VM당 P100 GPU 1개)*
P100 GPU 4개
(VM 2개에 대해 VM당 P100 GPU 2개)
로컬 SSD 디스크 3,000GB 또는 8개의 로컬 SSD 디스크 3,000GB 또는 로컬 SSD 디스크 8개
(VM 4개에 대해 VM당 750GB 또는 로컬 SSD 디스크 2개)*
3,000GB 또는 로컬 SSD 디스크 8개
(VM 2개에 대해 VM당 1,500GB 또는 로컬 SSD 디스크 4개)*

*특히 연결된 예약 예시 res-1n1-standard-4 VM 4개를 예약하며, 각 VM에는 scsi 인터페이스 유형의 P100 GPU 1개 및 로컬 SSD 디스크 2개가 포함됩니다. n1-standard-4 머신 유형은 각 VM에 대해 vCPU 4개와 15GB를 사용합니다.

특히 연결된 교체 예약은 n1-standard-8 VM 2개를 예약하는 res-2를 정의합니다. 각 VM에는 scsi 인터페이스 유형의 P100 GPU 1개 및 로컬 SSD 디스크 4개가 포함됩니다. 또한 res-2는 2개의 다른 프로젝트 project-1project-2에 공유되고 현재 프로젝트 my-project의 소유입니다. n1-standard-8 머신 유형은 각 VM에 대해 vCPU 8개 및 30GB를 사용합니다.

my-commitment-with-reservations 약정에 대해 연결된 예약 res-1res-2로 바꾸려면 다음을 수행합니다.

  1. 현재 디렉터리에 다음 콘텐츠가 포함된 two-reservations.yaml이라는 파일을 만듭니다.

    - reservation: res-1
      reservation_zone: asia-east1-a
      vm_count: 0
      machine_type: n1-standard-4
      accelerator:
      - count: 1
        type: nvidia-tesla-p100
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    - reservation: res-2
      reservation_zone: asia-east1-a
      vm_count: 2
      machine_type: n1-standard-8
      accelerator:
      - count: 2
        type: nvidia-tesla-p100
      project: my-project
      share-setting: projects
      share-with:
      - project-1
      - project-2
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    
  2. 다음 명령어를 실행합니다.

    gcloud beta compute commitments update-reservations my-commitment-with-reservations \
        --region=asia-east1-a \
        --reservations-from-file=two-reservations.yaml
    

REST

약정에 연결된 예약을 바꾸려면 regionCommitments.updateReservations 메서드를 사용해서 POST 요청을 수행합니다.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/COMMITMENT_ZONE/commitments/COMMITMENT_NAME/updateReservations

{
  "reservations":
  [
    {
      "name": "REPLACEMENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "REPLACEMENT_RESERVATION_NUMBER_OF_VMS",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "REPLACEMENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "REPLACEMENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "REPLACEMENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    },
    {
      "name": "CURRENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "0",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "CURRENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "CURRENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "CURRENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    }
  ]
}

다음을 약정의 해당 속성, 현재 예약, 교체 예약으로 바꿉니다.

약정

  • COMMITMENT_NAME: 연결된 예약이 있는 약정 이름입니다.
  • PROJECT_ID: 연결된 예약이 있는 약정의 프로젝트 ID입니다. 또한 현재 및 연결된 약정의 프로젝트 ID입니다.
  • COMMITMENT_ZONE: 연결된 예약이 있는 약정의 영역입니다.

현재 예약

현재 예약의 경우 다음과 같은 모든 속성이 예약을 봤을 때와 정확하게 동일해야 합니다. 현재 예약에 아직 지정되지 않은 모든 속성은 필드를 생략합니다.

  • CURRENT_RESERVATION_NAME: 현재 연결된 예약의 이름입니다.
  • CURRENT_RESERVATION_ZONE: 현재 연결된 예약의 영역입니다.
  • CURRENT_RESERVATION_MACHINE_TYPE: 현재 연결된 예약의 머신 유형입니다.
  • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: 현재 연결된 예약에 포함된 GPU 수입니다.
  • CURRENT_RESERVATION_ACCELERATOR_TYPE: 현재 연결된 예약에 포함된 가속기 유형입니다.
  • CURRENT_RESERVATION_INTERFACE_1CURRENT_RESERVATION_INTERFACE_2: 현재 연결된 예약에서 예약된 각 VM의 로컬 SSD 디스크에 사용되는 인터페이스 유형입니다. 유효한 옵션은 scsinvme입니다. 각 로컬 SSD 디스크는 375GB입니다. 예약된 모든 로컬 SSD 디스크에 localSsds 매개변수를 반복합니다.
  • CURRENT_RESERVATION_SHARE_SETTING: 현재 예약의 공유 유형입니다. 현재 연결된 예약이 여러 소비자 프로젝트 간에 공유된 경우 이 매개변수의 값을 projects로 지정합니다.
  • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: 현재 연결된 예약을 공유하는 프로젝트의 프로젝트 ID입니다(예: project-1project-2).

교체 예약

교체 예약의 경우 필요에 따라 다음 속성을 설정합니다. 이러한 속성을 지정할 때는 모든 요구사항을 충족해야 합니다. 사용하지 않으려는 추가 필드는 생략합니다.

  • REPLACEMENT_RESERVATION_NAME: 새 교체 예약의 이름입니다.
  • REPLACEMENT_RESERVATION_ZONE: 새 교체 예약의 영역입니다.
  • REPLACEMENT_RESERVATION_NUMBER_OF_VMS: 새 교체 영역에서 예약하려는 VM 수입니다.
  • REPLACEMENT_RESERVATION_MACHINE_TYPE: 새 교체 영역에서 VM에 지정하려는 머신 유형입니다.

    • 사전 정의된 머신 유형의 경우 MACHINE_FAMILY-standard-CPUS 형식을 사용합니다(예: n2-standard-4).
    • 커스텀 머신 유형의 경우 MACHINE_FAMILY-custom-CPUS-MEMORY 형식을 사용합니다(예: n2-custom-4-5120). 제한사항의 전체 목록은 커스텀 머신 유형의 사양을 참조하세요.

    다음을 바꿉니다.

    • MACHINE_FAMILY: 머신 유형의 계열. 예를 들어 N2 VM의 경우 n2를 지정합니다.
    • CPUS: vCPU의 수입니다.
    • MEMORY: 예약된 VM의 총 메모리입니다. 메모리는 256MB의 배수여야 하며 MB 단위로 제공되어야 합니다. 예를 들어 vCPU 4개, 5GB(5,120MB) 메모리의 N2 VM을 만들려면 n2-custom-4-5120을 사용합니다.
  • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: 교체 예약에서 VM당 추가하려는 GPU 수입니다.

  • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE: 교체 예약에서 추가하려는 가속기 유형입니다.

  • REPLACEMENT_RESERVATION_INTERFACE_1REPLACEMENT_RESERVATION_INTERFACE_2: 예약된 각 VM에서 로컬 SSD 디스크에 사용할 인터페이스 유형입니다. 유효한 옵션은 scsinvme입니다. 각 로컬 SSD 디스크는 375GB입니다. 추가하려는 각 로컬 SSD 디스크에 대해 localSsds 매개변수를 반복합니다. 로컬 SSD 디스크를 최대 24개까지 지정할 수 있습니다.

  • REPLACEMENT_RESERVATION_SHARE_SETTING: 교체 예약의 문자열 유형입니다. 여러 소비자 프로젝트 간에 교체 예약을 공유하려면 이 매개변수의 값을 projects로 지정합니다.

  • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: 이 예약을 공유할 수 있는 프로젝트의 프로젝트 ID입니다(예: project-1,project-2). 소비자 프로젝트를 최대 100개까지 포함할 수 있습니다. 이러한 프로젝트는 소유자 프로젝트와 동일한 조직에 있어야 합니다. 이 예약을 기본적으로 소비할 수 있도록 이미 허용된 PROJECT_ID는 포함하지 마세요.

약정에 연결된 예약을 교체하는 예시

이를 설명하기 위해 이 섹션에서는 연결된 예약이 포함된 약정 예시연결된 예약 예시를 교체하는 방법을 보여줍니다.

연결된 예약이 포함된 약정 예시

예를 들어 다음 POST 요청을 수행하여 구입한 my-commitment-with-reservations 약정에 대해 연결된 예약 res-1을 바꾼다고 가정해 보세요.

  POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments

  {
    "name": "my-commitment-with-reservations",
    "plan": "TWELVE_MONTH",
    "reservations":
    [
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "4",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "1",
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ],
    "resources":
    [
      {
        "amount": "16",
        "type": "VCPU"
      },
      {
        "amount": "61440",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "nvidia-tesla-p100",
        "amount": "4",
        "type": "ACCELERATOR"
      }
      {
        "amount": "3072000",
        "type": "LOCAL_SSD"
      }
    ],
    "type": "GENERAL_PURPOSE"
  }

my-commitment-with-reservations 약정과 연결된 예약 res-1에 따라 다음과 같은 약정 및 예약된 리소스가 발생했습니다.

리소스 유형 약정의 리소스
(my-commitment-with-reservations)
현재 연결된 예약의 리소스
(res-1)
vCPU 및 메모리 vCPU 16개 및 60GB vCPU 16개 및 60GB
(예약된 n1-standard-4 VM 4개)*
GPU P100 GPU 4개 P100 GPU 4개
(VM 4개에 대해 VM당 P100 GPU 1개)*
로컬 SSD 디스크 3,000GB 또는 8개의 로컬 SSD 디스크 3,000GB 또는 로컬 SSD 디스크 8개
(VM 4개에 대해 VM당 750GB 또는 로컬 SSD 디스크 2개)*

*특히 연결된 예약 예시 res-1n1-standard-4 VM 4개를 예약하며, 각 VM에는 scsi 인터페이스 유형의 P100 GPU 1개 및 로컬 SSD 디스크 2개가 포함됩니다. n1-standard-4 머신 유형은 각 VM에 대해 vCPU 4개와 15GB를 사용합니다.

연결된 예약 예시 바꾸기

연결된 예약 res-1을 새로운 연결된 예약 res-2로 바꾸고 예약된 리소스를 다음과 같이 변경한다고 가정해 보세요.

리소스 유형 약정의 리소스
(my-commitment-with-reservations)
현재 연결된 예약의 리소스
(res-1)
연결된 교체 예약의 리소스
(res-2)
vCPU 및 메모리 vCPU 16개 및 60GB vCPU 16개 및 60GB
(예약된 n1-standard-4 VM 4개)*
vCPU 16개 및 60GB
(예약 및 공유된 n1-standard-8 VM 2개)
GPU P100 GPU 4개 P100 GPU 4개
(VM 4개에 대해 VM당 P100 GPU 1개)*
P100 GPU 4개
(VM 2개에 대해 VM당 P100 GPU 2개)
로컬 SSD 디스크 3,000GB 또는 8개의 로컬 SSD 디스크 3,000GB 또는 로컬 SSD 디스크 8개
(VM 4개에 대해 VM당 750GB 또는 로컬 SSD 디스크 2개)*
3,000GB 또는 로컬 SSD 디스크 8개
(VM 2개에 대해 VM당 1,500GB 또는 로컬 SSD 디스크 4개)*

*특히 연결된 예약 예시 res-1n1-standard-4 VM 4개를 예약하며, 각 VM에는 scsi 인터페이스 유형의 P100 GPU 1개 및 로컬 SSD 디스크 2개가 포함됩니다. n1-standard-4 머신 유형은 각 VM에 대해 vCPU 4개와 15GB를 사용합니다.

특히 연결된 교체 예약은 n1-standard-8 VM 2개를 예약하는 res-2를 정의합니다. 각 VM에는 scsi 인터페이스 유형의 P100 GPU 1개 및 로컬 SSD 디스크 4개가 포함됩니다. 또한 res-2는 2개의 다른 프로젝트 project-1project-2에 공유되고 현재 프로젝트 my-project의 소유입니다. n1-standard-8 머신 유형은 각 VM에 대해 vCPU 8개 및 30GB를 사용합니다.

my-commitment-with-reservations 약정에 대해 연결된 예약 res-1res-2로 바꾸려면 regionCommitments.updateReservations 메서드를 사용해서 다음 POST 요청을 수행합니다.

  POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservations/updateReservations

  {
    "reservations":
    [
      {
        "name": "res-2",
        "specificReservation":
        {
          "count": "2",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 2,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-8"
          }
        },
        "zone": "asia-east1-a"
      },
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "0",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 1,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ]
  }

다음 단계