Compute Engine 영역 리소스 예약

추가 GPU 또는 로컬 SSD를 사용하거나 사용하지 않고 커스텀 또는 사전 정의된 머신 유형을 사용해 특정 영역에서 VM 인스턴스의 예약을 생성하여 필요할 때 워크로드에 리소스를 사용할 수 있도록 합니다. 예약을 생성한 후에 바로 예약된 리소스의 비용을 지불하기 시작하며, 예약이 삭제될 때까지 예약된 리소스를 프로젝트에 무제한 사용할 수 있습니다.

예약을 사용하면 계획되거나 계획되지 않은 급증, 많은 수의 VM 마이그레이션, 백업 및 재해 복구를 포함한 향후 수요 증가에 필요한 리소스 또는 계획된 성장 및 버퍼에 필요한 리소스를 프로젝트에 확보할 수 있습니다.

더 이상 예약이 필요하지 않으면 예약을 삭제하여 요금 청구를 중지하세요. 예약도 일반 VM처럼 리소스를 사용하므로 각 예약에 기존의 주문형 요금대로 요금이 청구됩니다. 여기에 지속 사용 할인이 포함되고 약정 사용 할인이 적용될 수 있습니다.

시작하기 전에

이점

예약을 사용하면 다음과 같은 이점이 있습니다.

  • 머신을 바로 사용하지 않더라도 언제든지 사용 가능하도록 예약할 수 있습니다.
  • 언제든 예약을 생성할 수 있고 언제든 예약을 삭제하여 지불을 중지할 수 있습니다.

  • 예약은 예약 중인 리소스와 동일한 방식으로 그리고 동일한 가격으로 요금이 청구됩니다. 따라서 예약한 리소스는 약정 사용 할인 및 지속 사용 할인을 받을 수 있습니다.

제한사항 및 제약조건

예약에는 다음과 같은 제한사항 및 제약조건이 적용됩니다.

  • 예약은 Compute Engine, Cloud Dataproc, Google Kubernetes Engine VM 사용에만 적용됩니다.
  • f1-micro 또는 g1-small 머신 유형, 선점형 VM, 단독 테넌트 노드 또는 Cloud SQL 및 Dataflow처럼 위에 나열되지 않은 기타 서비스에는 예약이 적용되지 않습니다.
  • 예약당 최대 1,000대의 VM 인스턴스를 예약할 수 있습니다.
  • 예약하는 리소스에 충분한 할당량이 프로젝트에 있어야 합니다. 예약이 성공하면 해당 리소스의 할당량에 맞게 요금이 청구됩니다.
  • 예약이 생성될 때 리소스가 할당됩니다. 요청 시점에 영역에 리소스가 충분하지 않으면 용량 부족 오류로 예약이 실패합니다.
  • 약정 사용 할인과 결합하는 경우:
    • GPU 및 로컬 SSD에 약정 사용 할인 가격을 적용하려면 약정을 구매할 때 예약을 생성해야 합니다.
    • 예약이 약정에 연결되어 있으면 예약을 삭제할 수 없습니다.
    • K80 GPU에 대한 1년 약정만 구매할 수 있습니다.
  • 약정 사용 할인에 연결되지 않은 예약은 기간 제한 없이 유지할 수 있지만, 일반 인스턴스와 마찬가지로 최소 1분 요금이 적용됩니다.

예약의 작동 원리

필요한 VM 인스턴스를 예약하기 위해 예약을 생성합니다. 예약이 생성되면 해당 리소스가 항상 사용할 수 있게 보장됩니다. 예약 생성 프로세스 중에 예약 사용 방식을 선택할 수 있습니다. 예를 들어 예약의 속성(기본 동작)과 일치하는 새 인스턴스 또는 기존 인스턴스에 예약이 자동으로 적용되도록 선택하거나, 특정 VM 인스턴스만 예약을 사용할 수 있도록 지정할 수 있습니다.

어떤 경우든 VM 인스턴스의 속성이 예약의 속성과 정확하게 일치할 때 하나의 VM 인스턴스가 하나의 예약만 사용할 수 있습니다. 구체적으로 말해서 인스턴스가 예약을 사용하려면 다음과 같은 예약의 속성과 인스턴스가 일치해야 합니다.

  • 영역
  • vCPU
  • 최소 CPU 플랫폼
  • 메모리
  • GPU
  • 로컬 SSD

VM 인스턴스가 예약의 속성과 일치할 때 기본 동작은 별도로 지정하지 않는 한 기존 VM 인스턴스와 새로운 VM 인스턴스가 모두 자동으로 예약을 사용하는 것입니다. 예를 들어 기본적으로 10개의 custom-8-10240 인스턴스에 대한 예약을 생성하는 경우에 이미 일치하는 custom-8-10240 인스턴스가 5개 있으면 이 5개의 인스턴스가 5개의 예약을 사용합니다. 일치하는 인스턴스 3개를 추가로 생성하면 다른 3개의 예약이 사용됩니다.

예약 및 인스턴스를 생성할 때 특정 옵션을 지정하여 이러한 기본 동작을 재정의할 수 있습니다.

  • 자동으로 사용되지 않는 예약을 생성하려면 specificReservationRequired 옵션을 사용하세요. 그러면 이러한 예약은 인스턴스 생성 시 예약을 명시적으로 지정한 경우에만 사용할 수 있습니다.
  • 인스턴스가 예약을 사용하도록 지정하려면 인스턴스를 생성할 때 또는 인스턴스 템플릿에서 reservationAffinity 옵션을 사용하세요. 인스턴스가 일치하는 예약을 자동으로 사용하거나, 일치하는 예약을 자동으로 사용하지 않거나, 특정 예약을 사용하도록 지정할 수 있습니다.

예약을 사용 중인 인스턴스를 중지하거나 삭제하면 해당 인스턴스가 더 이상 예약에 포함되지 않으며 예약된 리소스는 다시 사용 가능한 상태가 됩니다.

예약은 삭제했지만 예약된 리소스를 사용 중인 인스턴스를 삭제하지 않으면 인스턴스가 유지되고 평소처럼 요금을 지불하게 됩니다.

예약 생성

Console, gcloud 명령줄 도구 또는 API를 사용하여 VM 인스턴스의 예약을 생성합니다. 기본적으로 예약의 속성과 일치하는 VM 인스턴스는 자동으로 해당 예약을 사용합니다. 자동으로 사용되지 않는 예약을 생성하려면 specificReservationRequired 옵션을 사용하세요.

리소스를 예약하기 위해 약정을 생성할 필요는 없습니다. 하지만 GPU 및 로컬 SSD에 약정 사용 할인 요금을 적용하려면 약정을 구매하는 동시에 해당 리소스를 포함하는 예약을 생성해야 합니다. 자세한 내용은 예약과 약정 사용 할인의 결합을 참조하세요.

Console

  1. GCP Console의 약정 사용 할인 페이지로 이동합니다.

    약정 사용 할인 페이지로 이동

  2. 상위 약정이 없는 독립형 예약을 생성하려면 예약 만들기를 클릭합니다.

  3. 예약 이름을 지정합니다.

  4. 이름을 통해 이 예약을 명시적으로 타겟팅하는 일치하는 인스턴스를 생성할 때 이 예약의 리소스만 사용하려면 VM 인스턴스와 함께 사용에서 특정 예약 선택을 선택합니다.

  5. 리소스를 예약할 리전영역을 선택합니다.

  6. 예약할 VM 인스턴스 수를 지정합니다.

  7. 각 인스턴스별로 예약할 리소스를 지정합니다.

    • 인스턴스 템플릿이 있으면 인스턴스 템플릿 사용을 클릭하고 목록에서 인스턴스 템플릿을 선택합니다.
    • 또는 머신 유형 지정을 클릭합니다.
      1. 사전 정의된 머신 유형의 경우 드롭다운 메뉴에서 원하는 항목을 선택합니다.
      2. 최소 CPU 플랫폼을 포함한 커스텀 머신 유형의 경우 GPU를 추가하려면 맞춤설정을 클릭하여 원하는 대로 선택합니다.
      3. 필요한 경우 각 인스턴스에 추가할 로컬 SSD 디스크 수를 지정하고 사용할 인터페이스 유형을 지정합니다.
  8. 만들기 버튼을 클릭하여 예약을 생성합니다.

gcloud

gcloud compute reservations create 명령어를 사용하여 새로운 예약을 생성할 수 있습니다.

gcloud compute reservations create [RESERVATION_NAME] \
    --machine-type=[MACHINE_TYPE] \
    --min-cpu-platform [MINIMUM_CPU_PLATFORM] \
    --vm-count=[NUMBER_OF_VMS] \
    --accelerator=count=[NUMBER_OF_ACCELERATORS],type=[ACCELERATOR_TYPE] \
    --local-ssd=size=[SIZE_IN_GB],interface=[INTERFACE] \
    --require-specific-reservation \
    --zone=[ZONE]

각 항목의 의미는 다음과 같습니다.

  • [RESERVATION_NAME]은 생성할 예약의 이름입니다.
  • [MACHINE_TYPE]머신 유형입니다. 예를 들면 n1-standard-1입니다. 커스텀 머신 유형에는 custom-[CPUS]-[MEMORY] 형식을 사용하며 각 항목의 의미는 다음과 같습니다.
    • [CPUS]는 vCPU의 수입니다.
    • [MEMORY]는 이 인스턴스의 총 메모리입니다. 메모리는 256MB의 배수여야 하며 MB 단위로 제공되어야 합니다. 예를 들어 5GB의 메모리는 5,120MB입니다(custom-4-5120). 제한사항의 전체 목록은 커스텀 머신 유형의 사양을 참조하세요.
  • [MINIMUM_CPU_PLATFORM]은 각 인스턴스에 사용할 최소 CPU입니다.
  • [NUMBER_OF_VMS]는 예약할 VM 인스턴스의 수입니다.
  • [NUMBER_OF_ACCELERATORS]는 인스턴스당 추가할 GPU의 수입니다.
  • [ACCELERATOR_TYPE]액셀러레이터의 유형입니다.
  • [SIZE_IN_GB]는 각 인스턴스에 연결할 로컬 SSD의 GB 크기입니다. 이 크기는 375의 배수여야 합니다.
  • [INTERFACE]는 로컬 SSD가 사용하는 인터페이스 유형입니다. scsinvme가 각 인스턴스에 유효한 옵션입니다.
  • [ZONE]은 리소스를 예약할 영역입니다.

선택적으로 --require-specific-reservation 플래그를 추가하여 이 예약을 명시적으로 타겟팅하는 VM 인스턴스만 이 예약을 사용할 수 있음을 나타낼 수 있습니다. 예약된 리소스의 사용을 위한 구성 옵션에 대한 자세한 내용은 예약의 작동 원리를 참조하세요.

예를 들어 us-central1-a에서 명시적으로 타겟팅된 경우에만 사용할 수 있는 예약을 생성하려면 다음과 유사한 명령어를 사용합니다. 이 예시에서는 각각 8개의 Intel Haswell(또는 최신) vCPU, 10GB의 메모리, 2개의 V100 GPU, 375GB의 로컬 SSD가 있는 10대의 커스텀 머신을 예약합니다.

gcloud compute reservations create my-reservation \
    --machine-type=custom-8-10240 \
    --min-cpu-platform "Intel Haswell" \
    --vm-count=10 \
    --accelerator=count=2,type=nvidia-tesla-v100 \
    --local-ssd=size=375,interface=scsi \
    --require-specific-reservation \
    --zone us-central1-c

사용 가능한 모든 플래그의 목록을 보려면 gcloud compute reservations create 참조 문서를 확인하세요.

API

API에서 reservations.insert 메서드에 대한 POST 요청을 작성합니다. 요청 본문에 다음 매개변수를 포함합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations

{
  "name":"[RESERVATION_NAME]",
  "specificReservation":{
    "count":"[NUMBER_OF_VMS]",
    "instanceProperties":{
      "machineType":"[MACHINE_TYPE]",
      "minCpuPlatform": "[MINIMUM_CPU_PLATFORM]",
      "guestAccelerators":[
        {
          "acceleratorCount":"[NUMBER_OF_ACCELERATORS]",
          "acceleratorType":"[ACCELERATOR_TYPE]"
        }
      ],
      "localSsds":[
        {
          "diskSizeGb":"[SIZE_IN_GB]",
          "interface":"[INTERFACE]"
        }
      ]
    }
  }
}

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 요청의 프로젝트 ID입니다.
  • [ZONE]은 리소스를 예약할 영역입니다.
  • [RESERVATION_NAME]은 생성할 예약의 이름입니다.
  • [NUMBER_OF_VMS]는 예약할 VM 인스턴스의 수입니다.
  • [MACHINE_TYPE]은 사전 정의된 또는 커스텀 머신 유형입니다. 예를 들면 n1-standard-1입니다. 커스텀 머신 유형에는 custom-[CPUS]-[MEMORY] 형식을 사용하며 각 항목의 의미는 다음과 같습니다.
    • [CPUS]는 vCPU의 수입니다.
    • [MEMORY]는 이 인스턴스의 총 메모리입니다. 메모리는 256MB의 배수여야 하며 MB 단위로 제공되어야 합니다. 예를 들어 5GB의 메모리는 5,120MB입니다(custom-4-5120). 제한사항의 전체 목록은 커스텀 머신 유형의 사양을 참조하세요.
  • [MINIMUM_CPU_PLATFORM]은 각 인스턴스의 최소 CPU입니다.
  • [NUMBER_OF_ACCELERATORS]는 인스턴스당 추가할 GPU의 수입니다.
  • [ACCELERATOR_TYPE]액셀러레이터의 유형입니다.
  • [SIZE_IN_GB]는 각 인스턴스에 연결할 로컬 SSD의 GB 크기입니다. 이 크기는 375의 배수여야 합니다.
  • [INTERFACE]는 로컬 SSD가 사용하는 인터페이스 유형입니다. 유효한 옵션은 scsinvme입니다.

선택적으로 specificReservationRequired 부울 필드를 포함하여, 이름을 통해 이 예약을 명시적으로 타겟팅하는 VM 인스턴스만 이 예약을 사용할 수 있음을 나타낼 수 있습니다. 예약에서 인스턴스 사용을 위한 구성 옵션에 대한 자세한 내용은 예약의 작동 원리를 참조하세요.

예를 들어 예약이 명시적으로 타겟팅된 경우에만 사용할 수 있는 us-central1-a의 리소스를 예약하려면 다음과 유사한 요청을 생성합니다. 이 예에서는 각각 8개의 Intel Haswell(또는 최신) vCPU, 10GB의 메모리, 2개의 V100 GPU, 375GB의 로컬 SSD가 있는 10대의 커스텀 머신을 예약합니다.

POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations

{
  "name": "reservation-1",
  "specificReservation":
  {
    "count": "10",
    "instanceProperties":
    {
      "machineType": "custom-8-10240",
      "minCpuPlatform": "Intel Haswell",
      "guestAccelerators":
      [
        {
          "acceleratorCount": 2,
          "acceleratorType": "nvidia-tesla-v100"
        }
      ],
      "localSsds":
      [
        {
          "diskSizeGb": "375",
          "interface": "SCSI"
        }
      ]
    }
  },
  "specificReservationRequired": true
}

예약된 인스턴스 사용

인스턴스를 생성할 때 인스턴스의 reservation affinity(예약 어피니티) 플래그를 설정하여 인스턴스가 사용 가능한 일치하는 예약을 사용하거나(기본값), 특정 예약을 사용하거나, 예약을 아예 사용하지 않도록 선택할 수 있습니다. 인스턴스가 특정 예약을 사용하려면 그 예약이 specific reservation required(특정 예약 필요) 플래그를 적절하게 사용하여 생성되어야 합니다. 자세한 내용은 예약의 작동 원리를 참조하세요.

일치하는 예약에서 인스턴스 사용

이 모델에서는 기존 인스턴스와 새로 생성된 인스턴스의 속성이 예약 인스턴스의 속성과 일치하면 이러한 인스턴스가 자동으로 예약에 포함됩니다. 이 모델은 많은 수의 VM을 생성하고 삭제하며, 가능할 때마다 예약을 활용하려는 경우에 유용합니다.

예약을 생성할 때 일치하는 인스턴스가 이러한 예약을 자동으로 사용할 수 있도록 하려면 --require-specific-reservation 플래그를 제외하세요.

Console

  1. 공개 예약을 생성합니다.

    1. GCP Console의 약정 사용 할인 페이지로 이동합니다.

      약정 사용 할인 페이지로 이동

    2. 상위 약정이 없는 독립형 예약을 생성하려면 예약 만들기를 클릭합니다.

    3. 예약 이름을 지정합니다(예: reservation-01).

    4. 일치하는 인스턴스에서 이 예약을 자동으로 사용할 수 있도록 VM 인스턴스와 함께 사용에서 예약 자동 사용을 선택합니다.

    5. 리소스를 예약할 리전영역을 선택합니다.

    6. 예약할 VM 인스턴스 수를 지정합니다.

    7. 필요에 따라 각 인스턴스에 포함할 리소스(예: vCPU 수, 최소 CPU 플랫폼, 메모리 양, GPU, 로컬 SSD)를 지정합니다.

    8. 만들기 버튼을 클릭하여 예약을 생성합니다.

  2. 공개 예약을 타겟팅하고 예약의 인스턴스 속성과 일치하는 VM 인스턴스를 만듭니다.

    1. VM 인스턴스 페이지로 이동합니다.

      VM 인스턴스 페이지로 이동

    2. 프로젝트를 선택하고 계속을 클릭합니다.
    3. 인스턴스 만들기 버튼을 클릭합니다.
    4. 인스턴스 이름을 지정합니다.
    5. reservation-01의 속성과 일치하는 머신 유형을 지정합니다. 예를 들어 예약에 최소 CPU 플랫폼 또는 GPU를 지정한 경우 예약을 사용하려면 이 인스턴스를 해당 예약과 일치하도록 맞춤설정해야 합니다.
    6. 예약에 로컬 SSD를 포함한 경우 디스크에서 새 디스크 추가를 클릭하여 예약과 일치하는 로컬 SSD를 추가합니다.
    7. 예약 아래의 관리에서 생성된 예약 자동 사용을 선택합니다.
    8. 만들기를 클릭합니다.

gcloud

  1. reservation-01이라는 공개 예약을 생성합니다.

    gcloud compute reservations create reservation-01 \
        --machine-type=n1-standard-32 \
        --min-cpu-platform "Intel Skylake" \
        --vm-count=2 \
        --zone=us-central1-a
    
  2. 공개 예약을 타겟팅하고 영역, vCPU, 최소 CPU 플랫폼, 메모리, GPU, 로컬 SSD 속성을 비롯한 reservation-01의 인스턴스 속성과 일치하는 VM 인스턴스를 생성합니다.

    gcloud compute instances create instance-1 \
        --machine-type=n1-standard-32 \
        --min-cpu-platform "Intel Skylake" \
        --zone=us-central1-a \
        --reservation-affinity=any
    

API

  1. reservation-01이라는 공개 예약을 생성합니다.

    POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-01",
      "specificReservation":{
        "count":"2",
        "instanceProperties":{
          "machineType":"n1-standard-32",
          "minCpuPlatform": "Intel Haswell",
        }
      },
      "specificReservationRequired": false
    }
    
  2. 공개 예약을 타겟팅하고 영역, vCPU, 최소 CPU 플랫폼, 메모리, GPU, 로컬 SSD 속성을 비롯한 reservation-01의 인스턴스 속성과 일치하는 VM 인스턴스를 생성합니다.

    POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances
    
    {
      "name": "instance-1",
      "machineType": "zones/us-central1-a/machineTypes/n1-standard-32",
      "minCpuPlatform": "Intel Haswell",
      "reservationAffinity":
      {
        "consumeReservationType": "ANY_RESERVATION"
      },
      ...
    }
    

특정 예약에서 인스턴스 사용

이 모델에서는 이름으로 특정 예약을 타겟팅하는 새로운 인스턴스만 해당 예약을 사용합니다. 이 모델은 일정한 용량을 특정 이벤트의 백업으로 유지하려는 경우에 유용합니다.

예약을 생성할 때 예약이 자동으로 사용되지 않도록 지정합니다. 그런 다음 해당 예약을 명시적으로 타겟팅하고 예약의 속성과 일치하는 VM을 생성합니다.

인스턴스 템플릿을 사용해 리전 관리형 인스턴스 그룹에서 VM을 만들려면 해당 영역별로 이름이 같은 동일한 예약을 생성합니다. 그런 다음 그룹의 인스턴스 템플릿에서 이름으로 예약을 타겟팅합니다.

예를 들어 reservation-02라는 타겟팅된 예약을 생성한 다음 이 예약의 리소스를 사용하는 관련 인스턴스를 생성합니다.

Console

  1. 예약을 생성하고, 이름으로 이 예약을 명시적으로 타겟팅하는 인스턴스에서만 이 예약의 리소스를 사용할 수 있도록 합니다.

    1. GCP Console의 약정 사용 할인 페이지로 이동합니다.

      약정 사용 할인 페이지로 이동

    2. 상위 약정이 없는 독립형 예약을 생성하려면 예약 만들기를 클릭합니다.

    3. 예약 이름을 지정합니다(예: reservation-02).

    4. 이름을 통해 이 예약을 명시적으로 타겟팅하는 일치하는 인스턴스만 이 예약을 사용할 수 있도록 하려면 VM 인스턴스와 함께 사용에서 특정 예약 선택을 선택합니다.

    5. 리소스를 예약할 리전영역을 선택합니다.

    6. 예약할 VM 인스턴스 수를 지정합니다.

    7. 필요에 따라 각 인스턴스에 포함할 리소스(예: vCPU 수, 최소 CPU 플랫폼, 메모리 양, GPU, 로컬 SSD)를 지정합니다.

    8. 만들기 버튼을 클릭하여 예약을 생성합니다.

  2. 이름을 통해 예약을 타겟팅하고 예약의 인스턴스 속성과 일치하는 VM 인스턴스를 만듭니다.

    1. VM 인스턴스 페이지로 이동합니다.

      VM 인스턴스 페이지로 이동

    2. 프로젝트를 선택하고 계속을 클릭합니다.
    3. 인스턴스 만들기 버튼을 클릭합니다.
    4. 인스턴스 이름을 지정합니다.
    5. reservation-01의 속성과 일치하는 머신 유형을 지정합니다. 예를 들어 예약에 최소 CPU 플랫폼을 지정한 경우 예약을 사용하려면 이 인스턴스를 해당 예약과 일치하도록 맞춤설정해야 합니다.
    6. 예약에 로컬 SSD를 포함한 경우 디스크에서 새 디스크 추가를 클릭하여 예약과 일치하는 로컬 SSD를 추가합니다.
    7. 예약 아래의 관리에서 일치하는 속성이 포함된 사용 가능한 예약(예: reservation-02)을 선택합니다.
    8. 만들기를 클릭하여 인스턴스를 만듭니다.

gcloud

  1. reservation-02라는 예약을 생성하고, 이름으로 이 예약을 명시적으로 타겟팅하는 인스턴스에서만 이 예약의 리소스를 사용할 수 있도록 합니다.

    gcloud beta compute reservations create reservation-02 \
        --machine-type=n1-standard-32 \
        --min-cpu-platform "Intel Skylake" \
        --vm-count=10 \
        --zone=us-central1-a \
        --require-specific-reservation
    
  2. 이름으로 reservation-02를 타겟팅하고 영역, vCPU, 최소 CPU 플랫폼, 메모리, GPU, 로컬 SSD 속성을 비롯한 예약의 인스턴스 속성과 일치하는 VM 인스턴스를 생성합니다.

    gcloud compute instances create instance-2 \
        --machine-type=n1-standard-32 \
        --min-cpu-platform "Intel Skylake" \
        --zone=us-central1-a \
        --reservation-affinity=specific \
        --reservation=reservation-02
    

API

  1. reservation-02라는 예약을 생성하고, 이름으로 이 예약을 명시적으로 타겟팅하는 인스턴스에서만 이 예약의 리소스를 사용할 수 있도록 합니다.

    POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-02",
      "specificReservation":{
        "count":"10",
        "instanceProperties":{
          "machineType":"n1-standard-32",
          "minCpuPlatform": "Intel Haswell",
        }
      },
      "specificReservationRequired": true
    }
  2. 이름으로 reservation-02를 타겟팅하고 영역, vCPU, 최소 CPU 플랫폼, 메모리, GPU, 로컬 SSD 속성을 비롯한 예약의 인스턴스 속성과 일치하는 VM 인스턴스를 생성합니다.

    POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances
    
    {
      "name": "instance-2",
      "machineType": "zones/us-central1-a/machineTypes/n1-standard-32",
      "minCpuPlatform": "Intel Haswell",
      "reservationAffinity":
      {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "googleapis.com/reservation-name",
        "values":
        ["reservation-02"
        ]
      },
      ...
    }

예약을 사용하지 않는 인스턴스 생성

예약에서 리소스를 사용하지 않도록 하려면 VM을 생성할 때 예약 어피니티 플래그를 'none'으로 설정합니다.

Console

  1. 예약에서 리소스를 사용하지 않는 인스턴스를 생성합니다.
    1. VM 인스턴스 페이지로 이동합니다.

      VM 인스턴스 페이지로 이동

    2. 인스턴스 만들기 버튼을 클릭합니다.
    3. 평소처럼 인스턴스를 만듭니다.
    4. 예약 아래의 관리에서 사용 안함을 선택하여 이 인스턴스가 기존 예약에서 사용되지 않도록 합니다.
    5. 만들기를 클릭하여 인스턴스를 만듭니다.

gcloud

예약에서 리소스를 사용하지 않는 인스턴스를 생성합니다.

gcloud compute instances create instance-3 --reservation-affinity=none

API

예약에서 리소스를 사용하지 않는 인스턴스를 생성합니다.

POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances

{
  "machineType": "zones/us-central1-a/machineTypes/n1-standard-16",
  "name": "instance-3",
  "reservationAffinity":
  {
    "consumeReservationType": "NO_RESERVATION"
  },
  ...
}

예약 나열 및 설명

Console, gcloud 명령줄 도구 또는 API를 사용하여 예약의 세부 정보를 나열하고 확인합니다.

Console

  1. GCP Console의 약정 사용 할인 페이지로 이동합니다.

    약정 사용 할인 페이지로 이동

  2. 예약을 클릭하여 예약 목록을 표시합니다.

예약 목록에는 각 예약에 대한 세부정보가 포함됩니다. 사용한 머신(합계) 열을 사용하면 각 예약의 사용률을 결정할 수 있습니다.

gcloud

gcloud compute reservations list 명령어로 예약을 나열합니다.

gcloud compute reservations list [--filter="zone:('[ZONE]')"]

NAME             IN_USE_COUNT   COUNT   ZONE
reservation-04   25             50      us-central1-a
reservation-05   0              100     us-central1-b

gcloud compute reservations describe 명령어로 예약을 설명합니다.

gcloud compute reservations describe [RESERVATION_NAME] --zone=[ZONE]

creationTimestamp: '2019-04-01T08:29:10.210-07:00'
id: '702162498650398927'
kind: compute#reservation
name: reservation-04
selfLink: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04
selfLinkWithId: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/702162498650398927
specificReservation:
  count: '50'
  inUseCount: '25'
  instanceProperties:
    machineType: n1-standard-1
specificReservationRequired: true
status: READY
zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a

countinUseCount 값을 사용하여 각 예약의 사용률을 결정할 수 있습니다. 이 예시에서는 50개의 인스턴스가 예약되고 그 중에서 현재 25개가 사용되고 있습니다.

API

API에서 reservations.list 메서드에 대해 GET 요청을 실행하여 예약을 나열합니다.

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations

reservations.get 메서드를 호출하여 예약을 설명합니다.

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]

{
 "id": "702162498650398927",
 "creationTimestamp": "2019-04-01T08:29:10.210-07:00",
 "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04",
 "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/702162498650398927",
 "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
 "name": "reservation-04",
 "specificReservationRequired": false,
 "status": "READY",
 "kind": "compute#reservation",
 "specificReservation": {
  "instanceProperties": {
   "machineType": "n1-standard-32"
  },
  "count": "50",
  "inUseCount": "25"
 }
}

countinUseCount 값을 사용하여 각 예약의 사용률을 결정할 수 있습니다. 이 예시에서는 50개의 인스턴스가 예약되고 그 중에서 현재 25개가 사용되고 있습니다.

예약 수정

예약이 약정에 연결되어 있지 않으면 예약의 크기를 조정하거나 예약을 삭제할 수 있습니다.

예약의 크기 조정

예약이 약정에 연결되어 있지 않으면 gcloud 명령줄 도구 또는 API를 사용하여 예약의 VM 수를 조정할 수 있습니다.

gcloud

gcloud compute reservations update 명령어를 사용하여 예약의 크기를 조정합니다. 예를 들면 다음과 같습니다.

2대의 VM에 대한 예약을 생성합니다.

gcloud compute reservations create reservation-01 \
    --machine-type=n1-standard-32 \
    --zone=us-central1-a \
    --vm-count=2

예약의 크기를 VM 2대에서 10대로 조정합니다.

gcloud compute reservations update reservation-01 \
    --zone=us-central1-a \
    --vm-count=10

API

API에서 reservations.resize 메서드에 대한 POST 요청을 작성하고 요청 본문에 새로운 specificSkuCount를 포함합니다. 아래의 요청 본문은 예약의 VM 수를 10으로 업데이트합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]/resize

{"specificSkuCount": "10"}

요청 시점에 타겟 영역에 충분한 리소스가 있고 타겟 리전에 충분한 할당량이 있으면 업데이트 요청이 성공합니다.

예약 삭제

Console, gcloud 명령줄 도구 또는 API를 사용하여 약정에 연결되지 않은 예약을 삭제할 수 있습니다.

Console

  1. GCP Console의 약정 사용 할인 페이지로 이동합니다.

    약정 사용 할인 페이지로 이동

  2. 예약을 클릭하여 예약 목록을 표시합니다.
  3. 삭제할 각 예약 옆의 체크박스를 클릭합니다.

  4. 예약 삭제를 클릭합니다.

gcloud

delete 명령어를 사용하여 예약을 해제할 수 있습니다.

gcloud compute reservations delete [RESERVATION_NAME] --zone [ZONE]

API

API에서 reservation.delete 메서드에 대한 DELETE 요청을 작성합니다.

DELETE https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]

삭제 명령어가 성공적으로 완료되면 해당 예약에 대하여 더 이상 비용이 청구되지 않으며 리소스가 더 이상 예약되지 않습니다. 예약을 삭제해도 해당 예약에 연결되어 있던 실행 중인 인스턴스에는 영향을 미치지 않습니다. 이러한 인스턴스에는 여전히 요금이 청구됩니다.

예약과 약정 사용 할인의 결합

약정 사용 할인은 1년 또는 3년의 할인 가격 계약을 제공하지만 특정 영역의 용량을 예약하지는 않습니다. 예약은 예약된 VM이 실행되지 않는 경우에도 특정 영역에 용량이 유지되도록 합니다. 예약을 약정과 결합하여 할인된 예약 리소스를 이용할 수 있습니다.

기본적으로 예약을 생성하면 코어 및 메모리에 대해 적용 가능한 약정 사용 할인이 자동으로 VM 인스턴스에 적용됩니다. 하지만 GPU 및 로컬 SSD에 약정 사용 할인 요금을 적용하려면 약정을 구매할 때 해당 리소스에 대한 예약을 생성해야 합니다.

약정을 구매한 후에는 취소할 수 없습니다. 자세한 내용은 약정 사용 할인을 참조하세요.

GPU 또는 로컬 SSD에 대한 약정 구매

GPU 또는 로컬 SSD의 약정을 구매하려면 다음 안내를 따르세요.

  • 일반 용도 N1 약정을 구매해야 합니다. GPU는 N1 머신 유형에서만 지원됩니다.
  • 약정을 구매하는 동시에 GPU 또는 로컬 SSD를 포함하는 예약을 생성해야 합니다.
  • vCPU나 메모리를 약정할 필요는 없습니다.

특정 GPU 유형에 대한 약정을 구매해야 합니다. 예를 들어 Tesla P100 또는 Tesla V100을 구매할 수 있지만 Tesla P100 GPU의 약정을 구매하여 이를 다른 GPU 유형에 적용할 수는 없습니다.

예약하는 GPU 및 로컬 SSD의 크기는 약정하는 크기와 동일해야 합니다. 예를 들어 4개의 V100 GPU를 예약하려는 경우 4개의 V100 GPU도 약정해야 합니다. 하지만 예약하는 vCPU 및 메모리의 크기는 약정하는 크기보다 크거나 작을 수 있습니다.

GPU 또는 로컬 SSD만 약정하려면 vCPU 및 메모리 약정을 0으로 지정하면 됩니다. 하지만 약정에 연결한 예약에 약정과 동일한 GPU 및 로컬 SSD는 물론 예약할 머신 유형(vCPU 및 메모리 포함)이 포함되어야 합니다.

Console, gcloud 도구 또는 API를 사용하여 연결된 예약이 있는 약정을 구매하세요.

Console

  1. GCP Console의 약정 사용 할인 페이지로 이동합니다.

    약정 사용 할인 페이지로 이동

  2. 약정 구매를 클릭하여 새 약정을 구매합니다.
  3. 약정의 이름을 지정하고 적용할 리전을 선택합니다.
  4. 약정 유형일반 용도를 선택합니다.
  5. 약정 기간을 1년 또는 3년으로 선택합니다.
  6. 약정의 입력 모드를 선택합니다.

    • (권장사항) 커스텀 입력을 사용하면 vCPU 개수와 메모리 양을 맞춤설정할 수 있습니다.

    • 기본 입력을 사용하면 vCPU 수를 선택할 수 있으며, Compute Engine이 vCPU 수에 맞는 메모리 양을 자동으로 채웁니다.

  7. 구매할 vCPU 수량과 메모리 크기를 입력합니다. vCPU당 메모리 크기는 선택하는 할인 유형에 따라 특정한 비율이어야 합니다. 표준 약정 사용 할인의 경우 vCPU당 0.9~6.5GB를 사용하세요. 총 메모리는 256MB의 배수여야 합니다.

    vCPUs 및 메모리 약정 없이 GPU 또는 로컬 SSD만 약정하고 예약하려면 vCPU 및 메모리 약정 수량을 0으로 지정하면 됩니다.

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

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

  10. 새 예약 추가를 클릭하여 GPU 및 로컬 SSD를 사용하는 인스턴스에 하나 이상의 예약을 생성합니다.

    1. 예약 이름을 지정합니다.
    2. VM 인스턴스와 함께 사용에서 다음 안내를 따르세요.
      • 이름을 통해 이 예약을 명시적으로 타겟팅하는 일치하는 인스턴스를 만들 때 이 예약 리소스만 사용하려면 특정 예약 선택을 선택합니다.
      • 일치하는 인스턴스에서 이 예약을 자동으로 사용하도록 하려면 예약 자동 사용을 선택합니다.
    3. 리소스를 예약할 리전영역을 선택합니다.
    4. 예약할 VM 인스턴스 수를 지정합니다.
    5. 각 인스턴스별로 예약할 리소스를 지정합니다.
      • 인스턴스 템플릿이 있으면 인스턴스 템플릿 사용을 클릭하고 목록에서 인스턴스 템플릿을 선택합니다.
      • 또는 머신 유형 지정을 클릭합니다.
        1. 사전 정의된 머신 유형의 경우 드롭다운 메뉴에서 원하는 항목을 선택합니다.
        2. 최소 CPU 플랫폼을 포함한 커스텀 머신 유형의 경우 GPU를 추가하려면 맞춤설정을 클릭하여 원하는 대로 선택합니다.
        3. 필요한 경우 각 인스턴스에 추가할 로컬 SSD 디스크 수를 지정하고 사용할 인터페이스 유형을 지정합니다.
    6. 만들기 버튼을 클릭하여 예약을 생성합니다.
  11. 구매 버튼을 클릭하여 약정을 구매합니다.

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

gcloud

gcloud compute commmitments create 명령어를 사용하여 약정을 구매하고 플래그를 포함하여 연결된 예약을 생성합니다.

예를 들어 다음 약정에는 GPU 4개와 us-central1-an1-standard-32 인스턴스 2개에서 해당 GPU 4개를 사용하기 위한 새 예약이 포함됩니다.

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --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-16 \
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

vCPUs 및 메모리 약정 없이 GPU 또는 로컬 SSD를 약정하고 예약하려면 vCPU 및 메모리 약정 수량을 0으로 지정하면 됩니다.

gcloud beta compute commitments create commitment-01 \
    --region=us-west2 \
    --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-1 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

약정을 구매할 때 여러 예약을 생성하려면 YAML 파일을 사용합니다. 예를 들면 다음과 같습니다.

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

여기서 [YAML_FILE]에는 예약 속성이 포함됩니다.

예를 들어 다음 YAML 파일에는 2개의 예약이 포함됩니다. 첫 번째 예약 res-01은 GPU 1개와 n1-standard-1 인스턴스 1개를 포함하는 타겟팅된 예약입니다. 즉, 예약 인스턴스를 사용하려면 해당 예약을 이름별로 구체적으로 타겟팅해야 합니다. 두 번째 예약 res-02는 2개 유형의 연결된 로컬 SSD와 n1-standard-1 VM 인스턴스 1개를 포함합니다.

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

API

regionCommitments.insert API를 사용하고 reservations 필드를 포함하여 예약의 속성을 정의할 수 있습니다. 예를 들어 다음 약정에는 GPU 4개와 us-central1-a의 인스턴스 2개에서 해당 GPU 4개를 사용하기 위한 예약이 포함됩니다.

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

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "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"
    }
  ]
}

vCPUs 및 메모리 약정 없이 GPU 또는 로컬 SSD만 약정하고 예약하려면 VCPUMEMORY 약정 수량을 0으로 지정하면 됩니다. 예를 들면 다음과 같습니다.

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

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "resources":
  [
        {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "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"
    }
  ]
}

요청 시 타겟 영역에 리소스가 충분하고 할당량이 충분한 경우에만 약정이 성공적으로 생성됩니다.

예약이 연결된 약정을 만들면 약정 기간 동안 예약을 삭제할 수 없습니다. 약정이 만료되면 Compute Engine이 연결된 예약을 자동으로 삭제합니다.

약정된 예약을 통해 GPU 또는 로컬 SSD를 전송해야 하는 경우 약정에 연결된 예약 수정을 참조하세요.

약정에 연결된 예약 수정

약정에 GPU 또는 로컬 SSD가 있는 하나 이상의 예약이 있으면 gcloud 도구 또는 API를 사용하여 이러한 예약 간에 GPU 또는 로컬 SSD를 이동할 수 있습니다. 예를 들어 하나의 예약에서 GPU를 새로운 다른 예약으로 이동할 수 있습니다.

제한사항:

  • 두 개의 예약 간에만 리소스를 이동할 수 있으며 이 경우 하나는 소스 예약이고 다른 하나는 대상입니다. 소스 예약은 이미 존재해야 하며 대상은 기존 예약 또는 새로운 예약일 수 있습니다.
  • 소스 및 대상 예약은 같은 영역에 있어야 합니다.
  • 기존 예약의 리소스 속성을 수정할 수 없으며, 하나의 예약에서 다른 예약으로 기존 리소스를 이동할 수만 있습니다.
  • GPU 및 로컬 SSD의 총 크기는 일정하게 유지되어야 합니다.
  • 요청당 100대의 VM만 변경할 수 있습니다. 더 많은 수를 업데이트하려면 API를 여러 번 호출하거나 Google Cloud 지원에 문의하세요.
  • vCPU 또는 메모리를 전송하거나 연결된 예약의 다른 속성을 수정할 수 없습니다.

gcloud

gcloud compute commitments update-reservations 명령어를 사용합니다.

하나의 예약으로 약정을 생성합니다. res-1에 4개의 n1-standard-1 인스턴스가 있고 각 인스턴스에 P100 GPU가 하나씩 있습니다(4개의 vCPU 및 4개의 P100 GPU). 예약된 총 리소스에는 4개의 P100 GPU가 포함됩니다.

gcloud compute commitments create my-commitment-with-reservations \
    --region=asia-east1 \
    --resources=vcpu=10,memory=32GB \
    --resources-accelerator=type=nvidia-tesla-p100,count=4 \
    --plan 12-month \
    --reservations-from-file=one-reservation.yaml

여기서 one-reservation.yaml에 다음이 포함되어 있습니다.

- reservation: res-1
  reservation_zone: asia-east1-a
  require_specific_reservation: true
  vm_count: 4
  machine_type: n1-standard-1
  accelerator:
  - count: 1
    type: nvidia-tesla-p100

약정을 업데이트하여 일부 리소스를 res-1에서 새로운 다른 예약인 res-2로 이동합니다. 예를 들면 다음과 같습니다.

  • res-1을 수정하여 각각 2개의 P100 GPU가 있는 2개의 n1-standard-1 인스턴스를 갖도록 합니다(2개의 vCPU 및 2개의 P100 GPU).
  • res-2를 추가하여 각각 1개의 P100 GPU가 있는 2개의 n1-standard-2 인스턴스를 갖도록 합니다(4개의 vCPU 및 2개의 P100 GPU).

약정 내에서 예약된 GPU의 총 수는 4개로 일정하게 유지됩니다.

gcloud compute commitments update-reservations my-commitment-with-reservations \
    --region=us-central1 \
    --reservations-from-file=two-reservations.yaml

여기서 two-reservations.yaml에 다음이 포함되어 있습니다.

- reservation: res-1
  reservation_zone: asia-east1-a
  require_specific_reservation: true
  vm_count: 2
  machine_type: n1-standard-1
  accelerator:
  - count: 1
    type: nvidia-tesla-p100
- reservation: res-2
  reservation_zone: asia-east1-a
  require_specific_reservation: true
  vm_count: 2
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-p100

API

regionCommitments.updateReservations 메서드를 사용합니다.

예를 들어 다음 예약이 포함된 약정을 생성합니다.

  • res-1에는 각각 1개의 nvidia-tesla-p100 GPU가 있는 4개의 n1-standard-1 인스턴스가 있습니다(4개의 vCPU 및 4개의 P100 GPU).

이 예시에서 예약된 총 리소스에는 4개의 P100 GPU가 포함됩니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-central1/commitments

{
  "name": "my-commitment-with-reservation",
  "plan": "TWELVE_MONTH",
  "reservations":
  [
    {
      "name": "res-1",
      "specificReservation":
      {
        "count": "4",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-p100"
            }
          ],
          "machineType": "n1-standard-1"
        }
      },
      "specificReservationRequired": true,
      "zone": "asia-east1-a"
    }
  ],
  "resources":
  [
    {
      "amount": "10",
      "type": "VCPU"
    },
    {
      "amount": "32768",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-p100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ]
}

약정을 업데이트하여 일부 리소스를 res-1에서 새로운 다른 예약인 res-2로 이동합니다. 예를 들면 다음과 같습니다.

  • res-1을 수정하여 각각 2개의 P100 GPU가 있는 2개의 n1-standard-1 인스턴스를 갖도록 합니다(2개의 vCPU 및 2개의 P100 GPU).
  • res-2를 추가하여 각각 1개의 P100 GPU가 있는 2개의 n1-standard-2 인스턴스를 갖도록 합니다(4개의 vCPU 및 2개의 P100 GPU).

약정 내에서 예약된 GPU의 총 수는 4개로 일정하게 유지됩니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-central1/commitments/my-commitment-with-reservation/updateReservations

{
  "reservations":
  [
    {
      "name": "res-1",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-p100"
            }
          ],
          "machineType": "n1-standard-1"
        }
      },
      "specificReservationRequired": true,
      "zone": "asia-east1-a"
    },
    {
      "name": "res-2",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-p100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": true,
      "zone": "asia-east1-a"
    }
  ]
}

예약 사용 보고서 보기

사용량 내보내기 기능을 사용하여 Compute Engine 사용량의 상세한 보고서를 Cloud Storage 버킷으로 내보냅니다. 자세한 안내는 사용량 보고서 보기를 참조하세요.

사용량 보고서에는 다음이 표시됩니다.

  • 사용 중인 예약 리소스. 이러한 항목은 일반 vCPU, 메모리, GPU, 로컬 SSD 리소스로 표시됩니다.
  • 사용하지 않는 예약 리소스. 이러한 항목에는 일반 SKU 이름과 '예약' 리소스 URI가 있습니다.
  • 총 예약 리소스. 이러한 항목에는 '예약' SKU 이름과 '예약' 리소스 URI가 있으며, 이 항목과 관련된 비용은 없습니다. 사용 중인 예약의 양을 계산할 때 이 항목을 사용합니다.
측정값 MeasurementId 형식 Resource URI 형식
사용 중인 예약 리소스 com.google.cloud/services/compute-engine/[SKU_NAME] https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/[RESOURCE_TYPE]/[RESOURCE_NAME]

예: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance
사용하지 않는 예약 리소스 com.google.cloud/services/compute-engine/[SKU_NAME] https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]

예: https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-a/reservations/my-reservation
총 예약 리소스 com.google.cloud/services/compute-engine/Reservation[SKU_NAME] https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]

예: https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-a/reservations/my-reservation

예를 들어 다음 스니펫에서 my-reservation이라는 예약의 사용량 보고서에 포함된 각 항목의 의미는 다음과 같습니다.

  • 행 1은 현재 사용 중인 예약 RAM을 보여줍니다. 행의 ResourceId는 이 RAM이 my-instance라는 인스턴스에서 사용되고 있음을 보여줍니다.
  • 행 2는 사용하지 않는 예약 RAM을 보여줍니다. 행의 ResourceId는 이 예약 RAM이 my-reservation에 있음을 보여줍니다. 이 RAM은 어떤 인스턴스에서도 사용되지 않습니다.
  • 행 3은 예약의 총 예약 RAM을 보여줍니다.
Report Date,MeasurementId,Quantity,Unit,Resource URI,ResourceId,Location
2019-06-06,com.google.cloud/services/compute-engine/VmimageN1StandardRam,166970074857472,byte-seconds,https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/instances/my-instance,1775485842510981624,us-central2-a
2019-06-06,com.google.cloud/services/compute-engine/VmimageN1StandardRam,166970074857472,byte-seconds,https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a
2019-06-06,com.google.cloud/services/compute-engine/ReservationN1StandardRam,333940149714944,byte-seconds,https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a
...

예약 청구

예약에는 예약하는 리소스와 동일한 요금이 청구됩니다. 일반 VM과 마찬가지로 지속 사용 할인, 약정 사용 할인, 커스텀 가격이 적용됩니다.

다음과 같은 예시를 살펴보겠습니다.

  • us-central1에 3개의 vCPU 약정이 있습니다.
  • us-central1-a에서 5개의 vCPU를 실행합니다.
  • us-central1-a에 10개의 vCPU 예약이 있습니다.

일부 약정 할인이 적용된 예약의 예

다음과 같이 요금이 청구됩니다.

적용 방식 vCPU 개수
약정 사용 할인 가격 3
주문형 가격(2개의 vCPU, 사용한 예약 + 5개의 vCPU, 사용하지 않은 예약) 7

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서