이 문서에서는 Google Cloud 콘솔, gcloud CLI 또는 REST를 사용하여 예약이 연결된 리소스 기반 약정을 구매하는 방법을 설명합니다.
연결된 예약의 작동 방식에 대해 자세히 알아보려면 리소스 기반 약정에 예약 연결을 참고하세요.
연결된 예약 없이 vCPU 및 메모리 약정을 구매하려면 연결된 예약 없이 리소스 기반 약정 구매를 참고하세요.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인합니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.
이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.
콘솔
Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스하는 경우 인증을 설정할 필요가 없습니다.
gcloud
-
Google Cloud CLI를 설치합니다. 설치 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.
gcloud init외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
- 기본 리전 및 영역을 설정합니다.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.
Google Cloud CLI를 설치합니다.
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참조하세요.
필요한 역할
약정을 구매하고 예약을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 관리자 (roles/compute.admin) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 약정을 구매하고 예약을 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
약정을 구매하고 예약을 만들려면 다음 권한이 필요합니다.
-
compute.commitments.create -
compute.reservations.create
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
기본적으로 프로젝트 소유자는 리소스 기반 약정을 구매할 권한이 있습니다. 소유자가 특정 사용자를 포함하거나 제외하는 커스텀 역할을 만들 수도 있습니다. 액세스 제어에 대해 읽고 리소스 기반 약정을 구매할 권한이 있는지 확인하세요.
연결된 예약이 있는 하드웨어 리소스 기반 약정 구매
새 약정을 구매할 때 다음 방법 중 하나로 약정에 예약을 연결할 수 있습니다.약정을 구매하면 미국 및 캐나다 태평양 표준시(UTC-8 또는 일광 절약 시간 중에는 UTC-7) 기준 다음 날 오전 12시에 약정이 활성화됩니다. Compute Engine은 약정을 구매한 프로젝트의 리전마다 프로젝트에 대한 선취권을 유지합니다. 프로젝트의 임의 리전에 대한 새 약정을 구매하면 Compute Engine이 해당 리전의 선취권을 새로 생성된 약정과 연결합니다.
약정 구매 시점부터 활성화 전까지는 약정 상태가 NOT_YET_ACTIVE(또는Google Cloud 콘솔의 PENDING)로 유지됩니다. 활성화되면 약정 상태는 ACTIVE로 변경됩니다.
예를 들어 2024년 1월 20일 오후 10시(미국 및 캐나다 태평양 표준시(UTC-8 또는 UTC-7))에 약정을 구매한다고 가정해 보겠습니다. Compute Engine에서 상태가 NOT_YET_ACTIVE인 약정을 즉시 만듭니다. 약정은 2024년 1월 21일 미국 및 캐나다 태평양 표준시 (UTC-8 또는 UTC-7) 기준 오전 12시에 ACTIVE가 됩니다.
요구사항
연결된 예약이 있는 약정을 구매하려면 먼저 이러한 요구사항을 검토하고 약정 및 예약이 다음 조건을 충족하는지 확인합니다.
- 약정을 구매하고 동일한 프로젝트 및 리전에서 연결된 예약을 만들어야 합니다.
- 약정을 구매하고 동일한 머신 계열 시리즈의 리소스에 대해 연결된 예약을 만들어야 합니다.
- 약정에서 연결된 예약이 필요한 리소스 유형을 지정하는 경우 연결된 예약에서 자동 삭제 옵션을 사용 중지해야 합니다. 연결된 예약이 필요한 리소스 유형에 대해 자세히 알아보세요.
- 약정에 GPU가 포함된 경우 예약에 지정된 GPU 유형과 약정이 일치해야 합니다.
GPU와 대부분의 로컬 SSD 디스크의 경우 각 리소스 유형의 예약된 리소스 수가 해당 리소스 유형에 약정된 리소스 수와 정확히 일치해야 합니다. 하지만 C4, C4A, C4D, C4N, G4, H4D 또는 Z3 머신 유형과 함께 사용할 로컬 티타늄 SSD 디스크를 약정에 지정하는 경우에는 이 요구사항이 적용되지 않습니다.
예를 들어 V100 GPU 4개 및 로컬 SSD 디스크 2개에 대한 약정을 구매하려면 약정의 연결된 예약에 총 V100 GPU 4개 및 로컬 SSD 2개를 지정해야 합니다. 예약하는 vCPU 및 메모리의 크기는 약정하는 크기보다 크거나 작을 수 있습니다. 하지만 약정에 C4A vCPU 4개 및 로컬 티타늄 SSD 디스크 2개를 지정하는 경우에는 약정에 예약을 연결하지 않아도 됩니다.
GPU의 경우 사용할 특정 GPU 유형의 약정을 구매합니다. 예를 들어 NVIDIA P100 또는 NVIDIA V100의 약정을 구매할 수 있지만 NVIDIA P100 GPU용으로 구매한 약정을 사용하여 NVIDIA V100 GPU를 적용할 수는 없습니다.
연결된 예약이 공유 예약이고 약정 프로젝트 외부에서 해당 예약을 소비할 때 적용 가능한 CUD를 받으려면 다음 작업을 모두 수행해야 합니다.
- 약정과 동일한 Cloud Billing 계정에 속하는 프로젝트 사이에만 예약을 공유합니다.
- 해당 Cloud Billing 계정에 CUD 공유가 사용 설정되어 있는지 확인합니다.
기존 예약 연결
Google Cloud 콘솔, Google Cloud CLI 또는 REST를 사용하여 약정을 구매하는 동안 기존 예약을 연결할 수 있습니다.
콘솔
Google Cloud 콘솔을 사용하여 약정을 구매하기 전에 약정을 구매하는 데 사용할 프로젝트를 선택합니다. Cloud Billing 계정에 CUD 공유가 사용 설정된 경우 해당 Cloud Billing 계정의 프로젝트를 사용하여 약정을 구매할 수 있습니다. 프로젝트를 선택한 후 다음을 수행합니다.
Google Cloud 콘솔에서 약정 사용 할인 페이지로 이동합니다. 약정 사용 할인으로 이동
약정 구매를 클릭합니다. 약정 구매 페이지가 표시됩니다.
이름 필드에 약정의 이름을 입력합니다.
리전 필드에서 약정을 구매할 리전을 선택합니다.
약정 유형 필드에서 약정의 머신 계열 시리즈를 선택합니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.
- A2 머신 유형의 경우 가속기 최적화 A2를 선택합니다.
- A3 Edge 및 A3 High 머신 유형의 경우 가속기 최적화 A3를 선택합니다.
- A3 Mega 머신 유형의 경우 가속기 최적화 A3 Mega를 선택합니다.
- G2 머신 유형의 경우 그래픽 최적화 G2를 선택합니다.
- G4 머신 유형의 경우 그래픽 최적화 G4를 선택합니다.
- C2 머신 유형의 경우 컴퓨팅 최적화 C2를 선택합니다.
- C2D 머신 유형의 경우 컴퓨팅 최적화 C2D를 선택합니다.
- C3 머신 유형의 경우 범용 C3를 선택합니다.
- C3D 머신 유형의 경우 범용 C3D를 선택합니다.
- C4 머신 유형의 경우 범용 C4를 선택합니다.
- C4A 머신 유형의 경우 범용 C4A를 선택합니다.
- C4D 머신 유형의 경우 범용 C4D를 선택합니다.
- C4N 머신 유형의 경우 네트워크 최적화 C4N을 선택합니다.
- N1 머신 유형의 경우 범용 N1을 선택합니다.
- N2 머신 유형의 경우 범용 N2를 선택합니다.
- N2D 머신 유형의 경우 범용 N2D를 선택합니다.
- M1 머신 유형의 경우 메모리 최적화 M1/M2를 선택합니다.
- M3 머신 유형의 경우 메모리 최적화 M3를 선택합니다.
- Z3 머신 유형의 경우 스토리지 최적화 Z3를 선택합니다.
하나 이상의 기존 예약을 약정에 연결하려면 다음을 수행합니다.
신규 또는 기존 예약 연결 체크박스를 선택합니다.
기존 예약 연결을 클릭합니다. 기존 예약 연결 창이 표시되고 프로젝트의 예약이 표시됩니다. 이 목록은 지정된 리전 및 약정 유형과 일치하도록 필터링됩니다.
기존 예약 연결 창에서 연결할 각 예약의 체크박스를 선택합니다.
선택한 예약의 리소스 요약을 검토한 다음 첨부를 클릭합니다.
예약을 연결하면 Compute Engine에서 약정 세부정보 섹션의 필드를 자동으로 채워 연결된 예약의 리소스 수와 유형을 일치시킵니다. 예약을 첨부하기 전에 약정 세부정보 섹션에 리소스 값을 수동으로 입력한 경우 예약의 값으로 덮어쓰여집니다.
약정 세부정보 섹션에서 다음을 수행합니다.
코어 필드에서 미리 입력된 값을 확인합니다. 원하는 경우 다른 vCPU 수를 지정할 수 있습니다.
메모리 필드에서 미리 채워진 메모리 양(GB)을 확인합니다. 원하는 경우 다른 금액을 지정할 수 있습니다. 메모리를 0.25GB 단위로만 지정할 수 있습니다. 약정의 커스텀 메모리 값을 지정하려면 대신 gcloud CLI 또는 REST를 사용합니다.
GPU 및 로컬 SSD 섹션을 펼치고 약정과 연결된 예약 간에 유형과 수가 일치하는지 다음과 같이 확인합니다.
GPU 유형 필드에서 미리 채워진 GPU 유형을 확인합니다.
GPU 수 필드에서 미리 채워진 GPU 수를 확인합니다.
로컬 SSD 필드에서 미리 입력된 디스크 수를 확인합니다.
이러한 필드에 첨부된 예약과 다른 값을 수동으로 지정하면 약정 구매가 진행되지 않습니다. 모든 GPU와 대부분의 로컬 SSD 디스크의 경우 약정과 연결된 예약 간에 총 개수와 유형이 일치해야 합니다.
기간 섹션에서 다음을 수행합니다.
약정의 요금제를 지정하려면 1년 또는 3년을 선택합니다. 요금제에 따라 CUD 요율과 약정의 사전 설정된 기간이 결정됩니다.
시작일 필드에서 약정이 활성화되는 날짜와 시간을 확인합니다. 이 필드는 현재 날짜 다음 날 오전 12시(미국 및 캐나다 태평양 표준시)로 자동 설정됩니다.
선택사항입니다. 약정 요금제에 정의된 사전 설정 기간 이상으로 약정의 기간을 연장하려면 종료일 필드에 약정의 맞춤 종료일을 지정합니다. 자세한 내용은 약정 기간 연장을 참고하세요.
선택사항입니다. 약정이 기간이 끝날 때 자동으로 갱신되도록 하려면 약정 자동 갱신 체크박스를 선택합니다.
요약 창에서 약정 세부정보와 잠재적인 할당량 제한을 검토합니다.
약정 구매를 완료하려면 다음을 수행합니다.
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=PLAN \
--type=COMMITMENT_TYPE \
--custom-end-time=CUSTOM_END_DATE \
--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입니다.PLAN: 약정 요금제로, CUD 요금과 사전 설정된 기간을 결정합니다.12-month또는36-month를 지정합니다.CUSTOM_END_DATE: 선택사항. 기간의 커스텀 종료일로, 형식은YYYY-MM-DD여야 합니다. 예를 들어 커스텀 종료일을 2024년 4월 20일로 지정하려면2024-04-20형식을 지정합니다.COMMITMENT_TYPE: 약정 유형입니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.- A2 머신 유형의 경우
accelerator-optimized를 사용합니다. - A3 Edge 및 A3 High 머신 유형의 경우
accelerator-optimized-a3를 사용합니다. - A3 Mega 머신 유형의 경우
accelerator-optimized-a3-mega를 사용합니다. - G2 머신 유형의 경우
graphics-optimized를 사용합니다. - G4 머신 유형의 경우
graphics-optimized-g4를 사용합니다. - C2 머신 유형의 경우
compute-optimized를 사용합니다. - C2D 머신 유형의 경우
compute-optimized-c2d를 사용합니다. - C3 머신 유형의 경우
compute-optimized-c3를 사용합니다. - C3D 머신 유형의 경우
compute-optimized-c3d를 사용합니다. - N1 머신 유형의 경우
general-purpose를 사용합니다. - C4 머신 유형의 경우
general-purpose-c4를 사용합니다. - C4A 머신 유형의 경우
general-purpose-c4a를 사용합니다. - C4D 머신 유형의 경우
general-purpose-c4d를 사용합니다. - C4N 머신 유형의 경우
network-optimized-c4n를 사용합니다. - N2 머신 유형의 경우
general-purpose-n2를 사용합니다. - N2D 머신 유형의 경우
general-purpose-n2d를 사용합니다. - M1 머신 유형의 경우
memory-optimized를 사용합니다. - M3 머신 유형의 경우
memory-optimized-m3를 사용합니다. - Z3 머신 유형의 경우
storage-optimized-z3를 사용합니다.
- A2 머신 유형의 경우
COMMITTED_VCPUS: 약정에 포함할 vCPU 수입니다. 값은 양의 정수여야 합니다.COMMITTED_MEMORY: 약정에 포함하려는 메모리 크기(MB 또는 GB)입니다. 예를 들면10240MB또는10GB입니다. gcloud CLI의 경우 메모리를 MB 또는 GB로 지정할 수 있습니다. 단위를 지정하지 않으면 Compute Engine에서 GB를 기본 단위로 사용합니다. 하지만 REST를 사용하는 경우 Compute Engine에서 MB를 기본 단위로 사용합니다.COMMITTED_LOCAL_SSD: 약정에 포함하려는 로컬 SSD 공간의 크기(GB)입니다.COMMITTED_ACCELERATOR_COUNT: 약정에 포함할 GPU 수입니다.COMMITTED_ACCELERATOR_TYPE: 약정에 포함할 GPU 유형입니다.RESERVATION_NAME_1및RESERVATION_NAME_2: 약정에 연결하려는 기존 예약의 이름입니다.RESERVATION_ZONE_1및RESERVATION_ZONE_2: 약정에 연결하려는 기존 예약의 영역입니다.
예시: 기존 예약을 연결하여 약정 구매
myproject 프로젝트의 us-central1-a 및 us-central1-b 영역에 res-01 및 res-02의 2개 예약이 있다고 가정해 보세요.
이러한 예약에는 NVIDIA P100 GPU 4개 및 로컬 SSD 디스크 4개가 조합된 용량이 포함됩니다. 이러한 GPU 및 로컬 SSD 디스크에 대해 이 프로젝트의 us-central1 리전에서 새 약정을 구매하고 이러한 기존 예약을 연결된 예약으로 사용하려면 다음 명령어를 실행합니다. 약정에는 vCPU 96개, 메모리 624GB, NVIDIA P100 GPU 4개, 로컬 SSD 스토리지 1,500GB(로컬 SSD 디스크 4개에 해당)가 명시되어 있습니다. 로컬 SSD 스토리지 값은 GB로 지정해야 합니다 (예: 375GB). gcloud CLI의 경우 메모리를 MB 또는 GB로 지정할 수 있습니다. 단위를 지정하지 않으면 Compute Engine에서 GB가 기본 단위로 사용됩니다. 하지만 REST를 사용하는 경우 Compute Engine에서 MB를 기본 단위로 사용합니다.
gcloud compute commitments create commitment-01 \
--region=us-central1 \
--project=myproject \
--resources=vcpu=96,memory=624GB,local-ssd=1500 \
--resources-accelerator=type=nvidia-tesla-p100,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": "PLAN",
"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"
}
],
"customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
"existingReservations": "RESERVATION_URLs"
}
다음을 바꿉니다.
COMMITMENT_NAME: 약정의 이름입니다.REGION: 약정이 있는 리전입니다.PROJECT_ID: 연결된 예약이 있는 약정을 구매하려는 프로젝트의 ID입니다.PLAN: 약정 요금제로, CUD 요금과 사전 설정된 기간을 결정합니다.TWELVE_MONTH또는THIRTY_SIX_MONTH를 지정합니다.COMMITMENT_TYPE: 약정 유형입니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.- A2 머신 유형의 경우
ACCELERATOR_OPTIMIZED를 사용합니다. - A3 Edge 및 A3 High 머신 유형의 경우
ACCELERATOR_OPTIMIZED_A3를 사용합니다. - A3 Mega 머신 유형의 경우
ACCELERATOR_OPTIMIZED_A3_MEGA를 사용합니다. - G2 머신 유형의 경우
GRAPHICS_OPTIMIZED를 사용합니다. - G4 머신 유형의 경우
GRAPHICS_OPTIMIZED_G4를 사용합니다. - C2 머신 유형의 경우
COMPUTE_OPTIMIZED를 사용합니다. - C2D 머신 유형의 경우
COMPUTE_OPTIMIZED_C2D를 사용합니다. - C3 머신 유형의 경우
COMPUTE_OPTIMIZED_C3를 사용합니다. - C3D 머신 유형의 경우
COMPUTE_OPTIMIZED_C3D를 사용합니다. - N1 머신 유형의 경우
GENERAL_PURPOSE를 사용합니다. - C4 머신 유형의 경우
GENERAL_PURPOSE_C4를 사용합니다. - C4A 머신 유형의 경우
GENERAL_PURPOSE_C4A를 사용합니다. - C4D 머신 유형의 경우
GENERAL_PURPOSE_C4D를 사용합니다. - C4N 머신 유형의 경우
NETWORK_OPTIMIZED_C4N를 사용합니다. - N2 머신 유형의 경우
GENERAL_PURPOSE_N2를 사용합니다. - N2D 머신 유형의 경우
GENERAL_PURPOSE_N2D를 사용합니다. - M1 머신 유형의 경우
MEMORY_OPTIMIZED를 사용합니다. - M3 머신 유형의 경우
MEMORY_OPTIMIZED_M3를 사용합니다. - Z3 머신 유형의 경우
STORAGE_OPTIMIZED_Z3를 사용합니다.
- A2 머신 유형의 경우
COMMITTED_VCPUS: 약정에 포함할 vCPU 수입니다. 값은 양의 정수여야 합니다.COMMITTED_MEMORY: 약정에 포함하려는 메모리 크기입니다. REST의 경우 Compute Engine은 MB를 기본 단위로 사용합니다. 하지만 gcloud CLI를 사용하는 경우 Compute Engine은 GB를 기본 단위로 사용합니다.COMMITTED_LOCAL_SSD: 약정에 포함하려는 로컬 SSD 스토리지의 크기(GB)입니다.COMMITTED_ACCELERATOR_COUNT: 약정에 포함할 GPU 수입니다.COMMITTED_ACCELERATOR_TYPE: 약정에 포함할 GPU 유형입니다.CUSTOM_END_DATE: 선택사항. 기간의 커스텀 종료일로, 형식은YYYY-MM-DD여야 합니다. 예를 들어 커스텀 종료일을 2024년 4월 20일로 지정하려면2024-04-20형식을 지정합니다.END_TIME: 협정 세계시(UTC)의 오프셋으로, 미국 및 캐나다 태평양 표준시(UTC-8 또는 UTC-7) 기준 오전 12시입니다. 약정의 커스텀 종료일을 지정한 경우에만 이 값을 지정하세요. 다음 값 중 하나를 지정합니다.- 일광 절약 시간 동안:
07:00:00 - 그 외 시간 동안:
08:00:00
- 일광 절약 시간 동안:
RESERVATION_URLs: 약정에 연결하려는 기존 예약의 쉼표로 구분된 URL 목록입니다. 예를 들어res-1및res-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-a 및 us-central1-b 영역에 res-01 및 res-02의 2개 예약이 있다고 가정해 보세요.
이러한 예약에는 NVIDIA P100 GPU 4개 및 로컬 SSD 디스크 4개가 조합된 용량이 포함됩니다. 이러한 GPU 및 로컬 SSD 디스크에 대해 이 프로젝트의 us-central1 리전에서 새 약정을 구매하고 이러한 기존 예약을 연결된 예약으로 사용하려면 다음 POST 요청을 수행합니다. 약정에는 vCPU 96개, 메모리 624GB, NVIDIA P100 GPU 4개, 로컬 SSD 스토리지 1,500GB가 지정되어 있습니다.
로컬 SSD 스토리지 값은 GB로 지정해야 합니다. 메모리의 경우 값을 MB 단위로 지정해야 합니다. 하지만 gcloud CLI를 사용하는 경우 Compute Engine은 메모리의 기본 단위로 GB를 사용합니다.
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-p100",
"amount": "4",
"type": "ACCELERATOR"
},
{
"amount": "1500",
"type": "LOCAL_SSD"
}
],
"existingReservations":
[
"https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/res-01",
"https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-b/reservations/res-02"
]
}
연결할 새 예약 만들기
Google Cloud 콘솔, Google Cloud CLI 또는 REST를 사용하여 약정을 구매하는 동안 연결된 예약을 만들 수 있습니다.
콘솔
Google Cloud 콘솔을 사용하여 약정을 구매하기 전에 약정을 구매하는 데 사용할 프로젝트를 선택합니다. Cloud Billing 계정에 CUD 공유가 사용 설정된 경우 해당 Cloud Billing 계정의 프로젝트를 사용하여 약정을 구매할 수 있습니다. 프로젝트를 선택한 후 다음을 수행합니다.
Google Cloud 콘솔에서 약정 사용 할인 페이지로 이동합니다. 약정 사용 할인으로 이동
약정 구매를 클릭합니다. 약정 구매 페이지가 표시됩니다.
이름 필드에 약정의 이름을 입력합니다.
리전 필드에서 약정을 구매할 리전을 선택합니다.
약정 유형 필드에서 약정의 머신 계열 시리즈를 선택합니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.
- A2 머신 유형의 경우 가속기 최적화 A2를 선택합니다.
- A3 Edge 및 A3 High 머신 유형의 경우 가속기 최적화 A3를 선택합니다.
- A3 Mega 머신 유형의 경우 가속기 최적화 A3 Mega를 선택합니다.
- G2 머신 유형의 경우 그래픽 최적화 G2를 선택합니다.
- G4 머신 유형의 경우 그래픽 최적화 G4를 선택합니다.
- C2 머신 유형의 경우 컴퓨팅 최적화 C2를 선택합니다.
- C2D 머신 유형의 경우 컴퓨팅 최적화 C2D를 선택합니다.
- C3 머신 유형의 경우 범용 C3를 선택합니다.
- C3D 머신 유형의 경우 범용 C3D를 선택합니다.
- C4 머신 유형의 경우 범용 C4를 선택합니다.
- C4A 머신 유형의 경우 범용 C4A를 선택합니다.
- C4D 머신 유형의 경우 범용 C4D를 선택합니다.
- C4N 머신 유형의 경우 네트워크 최적화 C4N을 선택합니다.
- N1 머신 유형의 경우 범용 N1을 선택합니다.
- N2 머신 유형의 경우 범용 N2를 선택합니다.
- N2D 머신 유형의 경우 범용 N2D를 선택합니다.
- M1 머신 유형의 경우 메모리 최적화 M1/M2를 선택합니다.
- M3 머신 유형의 경우 메모리 최적화 M3를 선택합니다.
- Z3 머신 유형의 경우 스토리지 최적화 Z3를 선택합니다.
새 예약을 만들고 약정에 연결하려면 다음 단계를 따르세요.
신규 또는 기존 예약 연결 체크박스를 선택합니다.
새 예약 만들기를 클릭합니다. 새 예약 만들기 창이 표시됩니다.
이름 필드에 예약 이름을 입력합니다.
선택사항: 설명 필드에 설명을 입력합니다.
영역 필드에서 예약된 리소스를 사용할 수 있는 영역을 선택합니다.
공유 유형 섹션에서 이 예약을 공유할 방법을 지정합니다.
- 단일 프로젝트 예약을 만들려면 로컬을 선택합니다.
- 여러 프로젝트와 공유되는 예약을 만들려면 공유를 선택합니다. 그런 다음 프로젝트 추가를 클릭하고 원하는 프로젝트를 선택합니다.
Google Cloud 서비스 섹션에서 이 예약된 인스턴스를 Google Kubernetes Engine 또는 Vertex AI와 같은 다른 서비스와 공유할지 여부를 지정합니다.
VM 인스턴스와 함께 사용 섹션에서 VM이 예약을 사용하는 방식을 선택합니다.
- 속성이 일치하는 VM이 이 예약을 자동으로 사용하도록 허용하려면 예약 자동 사용을 선택합니다.
- 이름을 통해 명시적으로 타겟팅할 때만 이 예약의 리소스를 사용하려면 특정 예약 선택을 선택합니다.
리소스 세부정보 섹션에서 다음을 수행합니다.
VM 인스턴스 수 필드에 VM 수를 입력합니다.
머신 구성 섹션에서 머신 유형을 선택하여 속성을 지정합니다. 목록에서 머신 유형을 선택하거나 커스텀을 선택하여 코어 수와 메모리 양을 지정합니다.
선택사항: GPU를 예약하려면 GPU 추가를 클릭하고 각 VM의 GPU 유형과 GPU 수를 지정합니다.
선택사항: 로컬 SSD 디스크를 예약하려면 디스크 수와 인터페이스 유형을 지정합니다.
선택사항: 그룹 배치 정책을 지정하려면 그룹 배치 정책 목록에서 정책을 선택하거나 만듭니다.
이 예약의 속성 지정을 완료하려면 만들기 및 연결을 클릭합니다.
선택사항: 새 예약을 추가로 만들어 연결하려면 새 예약 만들기를 다시 클릭하고 이 단계를 반복합니다.
예약을 연결하면 Compute Engine에서 약정 세부정보 섹션의 필드를 자동으로 채워 연결된 예약의 리소스 수와 유형을 일치시킵니다. 예약을 첨부하기 전에 약정 세부정보 섹션에 리소스 값을 수동으로 입력한 경우 예약의 값으로 덮어쓰여집니다.
약정 세부정보 섹션에서 다음을 수행합니다.
코어 필드에서 미리 입력된 값을 확인합니다. 원하는 경우 다른 vCPU 수를 지정할 수 있습니다.
메모리 필드에서 미리 채워진 메모리 양(GB)을 확인합니다. 원하는 경우 다른 금액을 지정할 수 있습니다. 메모리를 0.25GB 단위로만 지정할 수 있습니다. 약정의 커스텀 메모리 값을 지정하려면 대신 gcloud CLI 또는 REST를 사용합니다.
GPU 및 로컬 SSD 섹션을 펼치고 약정과 연결된 예약 간에 유형과 수가 일치하는지 다음과 같이 확인합니다.
GPU 유형 필드에서 미리 채워진 GPU 유형을 확인합니다.
GPU 수 필드에서 미리 채워진 GPU 수를 확인합니다.
로컬 SSD 필드에서 미리 입력된 디스크 수를 확인합니다.
이러한 필드에 첨부된 예약과 다른 값을 수동으로 지정하면 약정 구매가 진행되지 않습니다. 모든 GPU와 대부분의 로컬 SSD 디스크의 경우 약정과 연결된 예약 간에 총 개수와 유형이 일치해야 합니다.
기간 섹션에서 다음을 수행합니다.
약정의 요금제를 지정하려면 1년 또는 3년을 선택합니다. 요금제에 따라 CUD 요율과 약정의 사전 설정된 기간이 결정됩니다.
시작일 필드에서 약정이 활성화되는 날짜와 시간을 확인합니다. 이 필드는 현재 날짜 다음 날 오전 12시(미국 및 캐나다 태평양 표준시)로 자동 설정됩니다.
선택사항입니다. 약정 요금제에 정의된 사전 설정 기간 이상으로 약정의 기간을 연장하려면 종료일 필드에 약정의 맞춤 종료일을 지정합니다. 자세한 내용은 약정 기간 연장을 참고하세요.
선택사항입니다. 약정이 기간이 끝날 때 자동으로 갱신되도록 하려면 약정 자동 갱신 체크박스를 선택합니다.
요약 창에서 약정 세부정보와 잠재적인 할당량 제한을 검토합니다.
약정 구매를 완료하려면 다음을 수행합니다.
gcloud
약정을 구매하는 동안 연결된 예약을 만들려면 gcloud compute commitments create 명령어를 실행합니다.
단일 예약 또는 다중 예약을 연결할지 여부에 따라 다음 방법 중 하나로 명령어를 실행합니다.
단일 예약을 만들고 약정에 연결하려면 다음 명령어를 실행하여 연결된 예약의 속성을 정의합니다.
gcloud compute commitments create COMMITMENT_NAME \ --region=REGION \ --project=PROJECT_ID \ --plan PLAN \ --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 \ --custom-end-time=CUSTOM_END_DATE \ --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 파일 방법을 사용해서 단일 예약을 만들고 약정에 연결할 수도 있습니다. 이 방법을 사용해서 연결된 예약을 만들려면 다음을 수행합니다.
현재 디렉터리에 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다중 예약 구성을 지정하려면 만들려는 각 예약에 대해 해당 속성을 반복합니다. 기존 예약을 원하는 만큼 약정에 연결할 수 있습니다.
gcloud compute commitments create명령어를 실행하고--reservation-from-file플래그를 포함합니다.gcloud compute commitments create COMMITMENT_NAME \ --region REGION \ --project PROJECT_ID \ --plan PLAN \ --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입니다.PLAN: 약정 요금제로, CUD 요금과 사전 설정된 기간을 결정합니다.12-month또는36-month를 지정합니다.CUSTOM_END_DATE: 선택사항. 기간의 커스텀 종료일로, 형식은YYYY-MM-DD여야 합니다. 예를 들어 커스텀 종료일을 2024년 4월 20일로 지정하려면2024-04-20형식을 지정합니다.COMMITMENT_TYPE: 약정 유형입니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.- A2 머신 유형의 경우
accelerator-optimized를 사용합니다. - A3 Edge 및 A3 High 머신 유형의 경우
accelerator-optimized-a3를 사용합니다. - A3 Mega 머신 유형의 경우
accelerator-optimized-a3-mega를 사용합니다. - G2 머신 유형의 경우
graphics-optimized를 사용합니다. - G4 머신 유형의 경우
graphics-optimized-g4를 사용합니다. - C2 머신 유형의 경우
compute-optimized를 사용합니다. - C2D 머신 유형의 경우
compute-optimized-c2d를 사용합니다. - C3 머신 유형의 경우
compute-optimized-c3를 사용합니다. - C3D 머신 유형의 경우
compute-optimized-c3d를 사용합니다. - N1 머신 유형의 경우
general-purpose를 사용합니다. - C4 머신 유형의 경우
general-purpose-c4를 사용합니다. - C4A 머신 유형의 경우
general-purpose-c4a를 사용합니다. - C4D 머신 유형의 경우
general-purpose-c4d를 사용합니다. - C4N 머신 유형의 경우
network-optimized-c4n를 사용합니다. - N2 머신 유형의 경우
general-purpose-n2를 사용합니다. - N2D 머신 유형의 경우
general-purpose-n2d를 사용합니다. - M1 머신 유형의 경우
memory-optimized를 사용합니다. - M3 머신 유형의 경우
memory-optimized-m3를 사용합니다. - Z3 머신 유형의 경우
storage-optimized-z3를 사용합니다.
- A2 머신 유형의 경우
COMMITTED_VCPUS: 약정에 포함할 vCPU 수입니다. 값은 양의 정수여야 합니다.COMMITTED_MEMORY: 약정에 포함하려는 메모리 크기(MB 또는 GB)입니다. 예를 들면10GB또는10240MB입니다. gcloud CLI의 경우 메모리를 MB 또는 GB로 지정할 수 있습니다. 단위를 지정하지 않으면 Compute Engine에서 GB를 기본 단위로 사용합니다. 하지만 REST를 사용하는 경우 Compute Engine에서 MB를 기본 단위로 사용합니다.COMMITTED_LOCAL_SSD: 로컬 SSD 스토리지의 양입니다. GB로 지정해야 합니다(예: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_1및INTERFACE_2: 예약된 각 VM에서 로컬 SSD 디스크에 사용할 인터페이스 유형입니다. 유효한 옵션은scsi및nvme입니다. 추가하려는 각 로컬 SSD 디스크에 대해local_ssd매개변수를 반복합니다. 로컬 SSD 디스크를 최대 24개까지 지정할 수 있습니다.OWNER_PROJECT_ID: 연결된 예약이 있는 약정을 구매하려는 프로젝트의 ID입니다. 여러 소비자 프로젝트 간에 연결된 예약을 공유하려면 이 필드를 지정합니다.MINIMUM_CPU_PLATFORM: 연결된 예약에 지정하려는 최소 CPU 플랫폼입니다.SHARE_SETTING: 연결된 예약의 공유 유형입니다. 여러 소비자 프로젝트 간에 연결된 예약을 공유하려면 이 필드의 값을projects로 지정합니다. 단일 프로젝트 예약을 만들려면 이 필드를 제외합니다.CONSUMER_PROJECT_ID_1및CONSUMER_PROJECT_ID_2: 이 예약을 공유할 수 있는 프로젝트의 프로젝트 ID입니다(예:project-1및project-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 리전에서 vCPU 96개, 메모리 624GB, NVIDIA V100 GPU 4개가 포함된 범용 리소스 (또는 GPU 리소스)에 대한 1년 약정을 구매한다고 가정해 보세요. 이러한 약정된 리소스를 사용하기 위해 us-central1-a 영역에서 n1-standard-32 VM 2개 (각 VM에는 vCPU 32개, 메모리 120GB, NVIDIA V100 GPU 2개 포함)를 예약하는 새 예약 reservation-01를 만들려고 합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 명령어를 실행합니다. gcloud CLI의 경우 메모리를 MB 또는 GB로 지정할 수 있습니다.
단위를 지정하지 않으면 Compute Engine에서 GB가 기본 단위로 사용됩니다. 하지만 REST를 사용하는 경우 Compute Engine에서 MB를 기본 단위로 사용합니다.
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 리전에서 vCPU 0개, 메모리 0GB, NVIDIA P4 GPU 1개로 GPU 리소스에 대한 1년 약정을 구매한다고 가정해 보세요. 또한 약정에 연결할 us-west2-b 영역에 새 예약 reservation-01을 만들어 n1-standard-2 VM 1개 (vCPU 2개, 메모리 7.5GB, NVIDIA P4 GPU 1개)를 예약하려고 합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 명령어를 실행합니다. gcloud CLI의 경우 메모리를 MB 또는 GB로 지정할 수 있습니다. 단위를 지정하지 않으면 Compute Engine에서 GB가 기본 단위로 사용됩니다. 하지만 REST를 사용하는 경우 Compute Engine에서 MB를 기본 단위로 사용합니다.
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 리전에서 범용 리소스 (또는 GPU 및 로컬 SSD 리소스)에 대해 1년 약정을 구매한다고 가정해 보세요. vCPU 96개, 메모리 624GB, NVIDIA V100 GPU 1개, 로컬 SSD 스토리지 750GB (로컬 SSD 디스크 2개와 일치)에 대한 약정을 원합니다.
또한 us-central1-a 영역에서 2개의 예약을 만들고 연결하려고 합니다. 첫 번째 예약 res-01에서 n1-standard-2 VM 1개 (vCPU 2개, 메모리 7.5GB, NVIDIA V100 GPU 1개)를 예약하려고 합니다. 이는 타겟팅된 예약입니다. 두 번째 예약 res-02에서 n1-standard-8 VM (vCPU 8개, 메모리 30GB) 1개를 예약하고 로컬 SSD 디스크 2개 (SCSI 인터페이스 1개, NVMe 인터페이스 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 파일을 만든 후 연결된 예약이 있는 약정 구매를 완료하기 위해 다음 명령어를 실행합니다. 로컬 SSD 스토리지 값은 GB로 지정해야 합니다 (예: 375GB). gcloud CLI의 경우 메모리를 MB 또는 GB로 지정할 수 있습니다. 단위를 지정하지 않으면 Compute Engine에서 GB가 기본 단위로 사용됩니다. 하지만 REST를 사용하는 경우 Compute Engine에서는 메모리의 기본 단위로 MB를 사용합니다.
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": "PLAN", "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" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "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": "PLAN", "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" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "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입니다.PLAN: 약정 요금제로, CUD 요금과 사전 설정된 기간을 결정합니다.TWELVE_MONTH또는THIRTY_SIX_MONTH를 지정합니다.COMMITMENT_TYPE: 약정 유형입니다. 다음 약정 유형은 GPU, 로컬 SSD 디스크 또는 둘 다를 위한 옵션을 제공합니다.- A2 머신 유형의 경우
ACCELERATOR_OPTIMIZED를 사용합니다. - A3 Edge 및 A3 High 머신 유형의 경우
ACCELERATOR_OPTIMIZED_A3를 사용합니다. - A3 Mega 머신 유형의 경우
ACCELERATOR_OPTIMIZED_A3_MEGA를 사용합니다. - G2 머신 유형의 경우
GRAPHICS_OPTIMIZED를 사용합니다. - G4 머신 유형의 경우
GRAPHICS_OPTIMIZED_G4를 사용합니다. - C2 머신 유형의 경우
COMPUTE_OPTIMIZED를 사용합니다. - C2D 머신 유형의 경우
COMPUTE_OPTIMIZED_C2D를 사용합니다. - C3 머신 유형의 경우
COMPUTE_OPTIMIZED_C3를 사용합니다. - C3D 머신 유형의 경우
COMPUTE_OPTIMIZED_C3D를 사용합니다. - N1 머신 유형의 경우
GENERAL_PURPOSE를 사용합니다. - C4 머신 유형의 경우
GENERAL_PURPOSE_C4를 사용합니다. - C4A 머신 유형의 경우
GENERAL_PURPOSE_C4A를 사용합니다. - C4D 머신 유형의 경우
GENERAL_PURPOSE_C4D를 사용합니다. - C4N 머신 유형의 경우
NETWORK_OPTIMIZED_C4N를 사용합니다. - N2 머신 유형의 경우
GENERAL_PURPOSE_N2를 사용합니다. - N2D 머신 유형의 경우
GENERAL_PURPOSE_N2D를 사용합니다. - M1 머신 유형의 경우
MEMORY_OPTIMIZED를 사용합니다. - M3 머신 유형의 경우
MEMORY_OPTIMIZED_M3를 사용합니다. - Z3 머신 유형의 경우
STORAGE_OPTIMIZED_Z3를 사용합니다.
- A2 머신 유형의 경우
COMMITTED_VCPUS: 약정에 포함할 vCPU 수입니다. 값은 양의 정수여야 합니다.COMMITTED_MEMORY: 약정에 포함하려는 메모리 크기입니다. REST의 경우 Compute Engine은 MB를 기본 단위로 사용합니다. 하지만 gcloud CLI를 사용하는 경우 Compute Engine은 GB를 기본 단위로 사용합니다.COMMITTED_LOCAL_SSD: 약정에 포함하려는 로컬 SSD 스토리지의 크기(GB)입니다.COMMITTED_ACCELERATOR_COUNT: 약정에 포함할 GPU 수입니다.COMMITTED_ACCELERATOR_TYPE: 약정에 포함할 GPU 유형입니다.CUSTOM_END_DATE: 선택사항. 기간의 커스텀 종료일로, 형식은YYYY-MM-DD여야 합니다. 예를 들어 커스텀 종료일을 2024년 4월 20일로 지정하려면2024-04-20형식을 지정합니다.END_TIME: 협정 세계시(UTC)의 오프셋으로, 미국 및 캐나다 태평양 표준시(UTC-8 또는 UTC-7) 기준 오전 12시입니다. 약정의 커스텀 종료일을 지정한 경우에만 이 값을 지정하세요. 다음 값 중 하나를 지정합니다.- 일광 절약 시간 동안:
07:00:00 - 그 외 시간 동안:
08:00:00
- 일광 절약 시간 동안:
연결된 예약
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_1및INTERFACE_2: 예약된 각 VM에서 로컬 SSD 디스크에 사용할 인터페이스 유형입니다. 유효한 옵션은scsi및nvme입니다. 추가하려는 각 로컬 SSD 디스크에 대해localSsds매개변수를 반복합니다. 로컬 SSD 디스크를 최대 24개까지 지정할 수 있습니다.MINIMUM_CPU_PLATFORM: 연결된 예약에 지정하려는 최소 CPU 플랫폼입니다.INSTANCE_TEMPLATE_NAME: 연결된 예약을 만드는 데 사용하려는 인스턴스 템플릿의 이름입니다.SHARE_SETTING: 연결된 예약의 공유 유형입니다. 여러 소비자 프로젝트 간에 연결된 예약을 공유하려면 이 필드의 값을SPECIFIC_PROJECTS로 지정합니다. 단일 프로젝트 예약을 만들려면 이 필드를 제외합니다.CONSUMER_PROJECT_ID_1및CONSUMER_PROJECT_ID_2: 이 예약을 공유할 수 있는 프로젝트의 프로젝트 ID입니다(예:project-1및project-2). 소비자 프로젝트를 최대 100개까지 포함할 수 있습니다. 이러한 프로젝트는 소유자 프로젝트와 동일한 조직에 있어야 합니다. 기본적으로 프로젝트가 이 예약을 소비하도록 허용되므로 이 예약을 만드는 프로젝트의 ID를 포함하지 마세요. 단일 프로젝트 예약을 만들려면 이러한 필드를 제외합니다.
Compute Engine은 대상 영역에 지정된 머신 유형의 리소스가 충분하고 요청 시 할당량이 충분한 경우에만 약정 및 연결된 예약을 만듭니다. 구매가 성공하면 Compute Engine이 REST API 요청에 대해 200 상태를 반환합니다.
예시
다음 예시 시나리오 및 명령어는 새 예약을 만들고 이를 약정에 연결해서 GPU나 로컬 SSD 디스크 또는 둘 다에 대한 약정을 구매하는 방법을 보여줍니다.
예 1: 단일 새 예약을 연결하여 GPU 약정 구매
us-central1 리전에서 vCPU 96개, 메모리 624GB (638976MB에 해당), NVIDIA V100 GPU 4개가 포함된 범용 리소스에 대한 1년 약정을 구매한다고 가정해 보세요.
us-central1-a 영역에서 새 예약 reservation-01을 만들어 n1-standard-8 VM 2개 (각 VM에 vCPU 8개, 메모리 30GB, NVIDIA V100 GPU 2개)를 예약하여 해당 약정에 연결하려고 합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 POST 요청을 수행합니다. REST의 경우 메모리를 MB 단위로 지정해야 합니다. 하지만 gcloud CLI를 사용하는 경우 Compute Engine은 GB를 기본 단위로 사용합니다.
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 리전에서 GPU 리소스에 대해서만 1년 약정을 구매하려고 하며 vCPU는 0개, 메모리는 0MB, NVIDIA P4 GPU는 4개라고 가정해 보겠습니다. 또한 약정에 연결할 us-west2-b 영역에서 n1-standard-2 VM 1개 (vCPU 2개, 메모리 7.5GB, NVIDIA P4 GPU 4개)를 예약하는 새 예약 reservation-01을 만듭니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 POST 요청을 수행합니다. REST의 경우 메모리를 MB 단위로 지정해야 합니다.
하지만 gcloud CLI를 사용하는 경우 Compute Engine은 GB를 기본 단위로 사용합니다.
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 리전에서 범용 리소스에 대해 1년 약정을 구매한다고 가정해 보겠습니다. 이 약정에는 vCPU 96개, 메모리 624GB(638976MB에 해당), NVIDIA V100 GPU 1개, 로컬 SSD 스토리지 750GB가 포함됩니다. 또한 us-central1-a 영역에서 2개의 예약을 만들고 연결하려고 합니다. 첫 번째 예약 res-01에서 n1-standard-2 VM 1개 (vCPU 2개, 메모리 7.5GB, NVIDIA V100 GPU 1개)를 예약하려고 합니다. 이는 타겟팅된 예약입니다. 두 번째 예약 res-02에서 n1-standard-8 VM(vCPU 8개, 메모리 30GB) 1개를 예약하고 로컬 SSD 디스크 2개(SCSI 인터페이스 1개, NVMe 인터페이스 1개)를 연결합니다. 연결된 예약이 있는 이 예시 약정을 구매하려면 다음 POST 요청을 수행합니다. 로컬 SSD 스토리지 값은 GB로 지정해야 합니다.
메모리의 경우 값을 MB 단위로 지정해야 합니다. 하지만 gcloud CLI를 사용하는 경우 Compute Engine은 메모리의 기본 단위로 GB를 사용합니다.
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": "750",
"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"
}
]
}