커스텀 VM 인스턴스 만들기

Compute Engine은 VM 인스턴스를 만들 때 사용할 수 있는 사전 정의된 머신 유형을 제공합니다. 사전 정의된 머신 유형에는 vCPU 수 및 메모리 양이 미리 설정되어 있으며 설정된 요금으로 요금이 청구됩니다.

사전 정의된 VM이 요구사항을 충족하지 못하는 경우에는 커스텀 가상화된 하드웨어 설정으로 VM 인스턴스를 만들면 됩니다. 커스텀 머신 유형을 사용하면 특히 vCPU 수와 메모리 양이 맞춤설정된 VM 인스턴스를 만들 수 있습니다. 커스텀 머신 유형은 범용 머신 계열에서 사용할 수 있습니다. 커스텀 VM을 만들면 E2, N2, N2D, N1 머신 계열에서 커스텀 VM이 배포됩니다.

커스텀 VM은 다음과 같은 시나리오에 적합합니다.

  • 사전 정의된 가상 머신 유형에 적합하지 않은 워크로드
  • 추가 처리 능력이나 메모리가 필요하지만 다음 수준 머신 유형에서 제공되는 모든 업그레이드는 필요하지 않은 워크로드

시작하기 전에

가격 책정

Google은 VM에 사용되는 vCPU 수 및 메모리 시간을 기준으로 커스텀 VM에 요금을 부과합니다. 이는 사전 정의된 머신 유형의 요금 청구 방식과 다릅니다. 자세한 내용은 VM 가격 책정을 참조하세요.

커스텀 VM에는 다른 인스턴스와 동일한 최소 청구 시간 1분이 적용되지만 커스텀 머신 유형의 지속 사용 할인을 계산하는 방식이 다릅니다. 자세한 내용은 커스텀 VM의 지속 사용 할인을 참조하세요.

GB 또는 MB 단위의 메모리 표현

Google Cloud 도구 및 문서에서는 머신 유형 메모리가 GB(기가바이트) 단위로 계산됩니다. 이때 1GB는 230바이트입니다. 이 측정 단위를 GiB(기비바이트)라고도 합니다. 메모리를 GB에서 MB 단위로 변환할 경우 1GB는 1,024MB입니다.

API에서 메모리는 항상 메가바이트 단위로 입력해야 합니다. gcloud 명령줄 도구를 사용하는 경우에는 VM의 총 메모리를 기가바이트 또는 메가바이트 단위로 입력할 수 있습니다. 하지만 gcloud 도구에서는 메모리 값이 정수일 것으로 예상하므로 부동 소수점 값은 입력하면 안 됩니다. 예를 들어 5.75GB를 표현하려면 5.75GB를 MB 단위로 변환합니다. 이때 5.75GB는 5,888MB입니다.

커스텀 머신 유형으로 VM 인스턴스 만들기

VM 인스턴스를 만들려면 이 머신 유형을 만들 때 따라야 할 커스텀 사양을 읽어보고 이해해야 합니다.

Console

  1. Google Cloud Console에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  2. 영역 목록에서 이 VM을 호스팅할 영역을 선택합니다. 선택한 영역의 사용 가능한 머신 유형 계열만 포함하도록 계열 목록이 필터링됩니다.

  3. 머신 구성 섹션에서 범용을 선택합니다.

    1. 시리즈 목록에서 1세대 N1 커스텀 머신 유형에 대해 N1을 클릭하거나 2세대 커스텀 머신 유형의 대해 E2, N2 또는 N2D를 클릭합니다.
    2. 머신 유형 목록에서 커스텀을 선택합니다.
    3. VM 인스턴스의 vCPU 수와 메모리 양을 지정하려면 슬라이더를 드래그하거나 텍스트 상자에 값을 입력합니다. vCPU 및 메모리 수량을 변경하면 콘솔에 VM의 예상 비용이 표시됩니다.
  4. 계속해서 VM을 만듭니다.

gcloud

커스텀 머신 유형에서는 gcloud 명령어가 머신 유형 계열에 따라 약간 다릅니다.

N1 머신 유형일 때는 gcloud compute instances create 명령어를 사용하고 다음 옵션 중 하나를 추가할 수 있습니다.

  • --custom-cpu--custom-memory 플래그
  • --machine-type=custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB] 플래그

예를 들어 다음 명령은 vCPU가 4개이고, 총 메모리가 5GB인 N1 머신 유형을 실행하는 인스턴스를 만듭니다.

gcloud compute instances create example-instance \
    --custom-cpu=4 --custom-memory=5

N2 머신 유형일 때는 gcloud compute instances create 명령어를 사용하고 다음 옵션 중 하나를 포함합니다.

  • --custom-cpu, --custom-memory, --custom-vm-type 플래그
  • --machine-type=n2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB 플래그

--custom-memory 플래그를 사용하는 경우에는 총 메모리 양을 GB 또는 MB 단위로 지정합니다. 속성은 정수여야 하며, 메모리 증분 값을 0.25GB로 지정하려면 MB로 변환합니다.

예를 들어 2.5GB 메모리와 같은 증분 값을 지정하려면 다음과 같이 값을 MB 단위로 변환하고 값 뒤에 MB 서픽스를 붙입니다. 다음 예시는 N2 머신 유형을 실행하는 인스턴스를 만듭니다.

gcloud compute instances create example-instance \
    --custom-cpu=6 --custom-memory=3072MB --custom-vm-type=n2

필요하다면 다음 형식을 사용하여 커스텀 머신 유형 설정을 지정해도 됩니다.

gcloud compute instances create example-instance \
    --machine-type n2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB

다음을 바꿉니다.

  • NUMBER_OF_CPUS: 원하는 CPU 수입니다.
  • NUMBER_OF_MB: 메모리의 양(MB)입니다.

예를 들면 다음과 같습니다.

gcloud compute instances create example-instance --machine-type=n2-custom-6-3072

N2D 또는 E2 머신 유형일 때는 gcloud compute instances create 명령어를 사용하여 다음 옵션 중 하나를 포함합니다.

  • --custom-cpu, --custom-memory, --custom-vm-type 플래그
  • --machine-type=n2d-custom-NUMBER_OF_CPUS-NUMBER_OF_MB 플래그
  • --machine-type=e2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB 플래그

E2 공유 코어 커스텀 머신 유형의 경우 동일한 gcloud compute instances create 명령어를 사용하고 공유 코어 머신 크기(micro, small, medium)를 포함합니다.

  • --machine-type=e2-custom SHARED_CORE_MACHINE_SIZE-NUMBER_OF_MB 플래그

예를 들면 다음과 같습니다.

gcloud compute instances create example-instance \
    --machine-type=e2-custom-medium-NUMBER_OF_MB

--custom-memory 플래그를 사용하는 경우 총 메모리 양을 GB 또는 MB 단위로 지정합니다. 속성은 정수여야 합니다. 메모리 증분 값을 0.25GB로 지정하려면 값을 MB로 변환합니다.

예를 들어 2.5GB 메모리와 같은 증분 값을 지정하려면 다음과 같이 값을 MB 단위로 변환하고 값 뒤에 MB 서픽스를 붙입니다. 다음 예시는 E2 머신 유형을 실행하는 인스턴스를 만듭니다.

gcloud compute instances create example-instance \
    --custom-cpu=6 --custom-memory=3072MB --custom-vm-type=e2

필요하다면 다음 형식을 사용하여 커스텀 머신 유형 설정을 지정해도 됩니다.

gcloud compute instances create example-instance \
    --machine-type=e2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB

다음을 바꿉니다.

  • NUMBER_OF_CPUS: 원하는 CPU 수입니다.
  • NUMBER_OF_MB: 메모리의 양(MB)입니다.

예를 들면 다음과 같습니다.

gcloud compute instances create example-instance --machine-type=e2-custom-6-3072

API

API에서 평소처럼 인스턴스 만들기 요청을 만들되 machineType 값을 지정할 때 다음 형식 중 하나를 사용합니다. NUMBER_OF_CPUS를 CPU 수로, AMOUNT_OF_MEMORY_MB를 원하는 메모리 양으로 바꿉니다. 메모리는 MB 단위로 입력합니다.

  • N1 머신 유형일 때는 다음 형식을 사용합니다.

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • N2 머신 유형일 때는 다음 형식을 사용합니다.

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • N2D 머신 유형의 경우 다음을 사용합니다.

    zones/ZONE/machineTypes/n2d-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • E2 머신 유형의 경우 다음을 사용합니다.

    zones/ZONE/machineTypes/e2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • E2 공유 코어 커스텀 머신 유형의 경우 다음을 사용합니다.

    zones/ZONE/machineTypes/e2-custom-SHARED_CORE_MACHINE_SIZE-AMOUNT_OF_MEMORY_MB
    

예를 들어 다음 URL은 vCPU 4개와 메모리 5GB(5,120MB)를 사용하는 인스턴스를 만듭니다.

zones/us-central1-f/machineTypes/custom-4-5120

커스텀 머신 유형으로 선점형 인스턴스인스턴스 그룹을 만들 수도 있습니다.

머신 유형에 확장 메모리 추가

머신에 따라 머신 유형마다 기본적으로 특정한 메모리 양이 적용됩니다. 예를 들어 커스텀 N1 VM을 만들 경우 vCPU당 최대 메모리 양은 6.5GB입니다. 커스텀 N2 VM의 경우 vCPU당 메모리가 커져 최대 8GB입니다.

하지만 일부 워크로드에서는 메모리가 부족할 수도 있습니다. 이때는 추가 비용을 지불하여 vCPU당 메모리 양을 기본 제한보다 많이 구매할 수 있습니다. 이를 확장 메모리라고 합니다.

확장 메모리를 사용하면 vCPU당 적용되는 제한 없이 메모리를 머신 유형에 추가할 수 있습니다. 확장 메모리는 머신 유형에 따라 일정한 양까지만 추가할 수 있습니다.

  • N1 머신 유형일 때는 VM당 총 624GB까지 메모리를 추가할 수 있습니다.
  • N2 머신 유형일 때는 VM당 총 768GB까지 메모리를 추가할 수 있습니다.
  • N2D 머신 유형일 때는 VM당 총 768GB까지 메모리를 추가할 수 있습니다.
  • 확장 메모리는 E2 머신 유형에 사용할 수 없습니다.

메모리가 더 필요하다면 VM 인스턴스당 총 1.4TB가 지원되는 인스턴스를 만들 수 있는 대용량 메모리 머신 유형 중 하나를 사용해야 합니다.

확장 메모리 필요성 판단

일부 워크로드에서는 최적의 결과를 얻으려면 vCPU당 기본 메모리 양보다 많은 메모리가 필요합니다. MS SQL Server, MongoDB, MemcacheD/Redis와 같은 관계형 및 NoSQL 데이터베이스를 포함하여 메모리 내 고성능 분석 데이터베이스를 기반으로 하는 워크로드가 이 카테고리에 속합니다. 운영체제 및 소프트웨어 스택의 vCPU 기반 라이선스 역시 사전 정의된 머신 유형을 사용해 최적의 VM 메모리 구성을 선택하기 더욱 어렵게 만듭니다. 확장 메모리를 사용하면 VM에서 최적의 가격 대비 성능 대비 필요한 메모리를 추가할 수 있습니다.

가격 책정

커스텀 머신 유형을 사용하는 경우 vCPU당 기본 양까지는 N1 커스텀 머신 유형 가격 또는 N2 커스텀 머신 유형 가격에 따라 요금이 청구됩니다. E2 커스텀 머신 및 E2 공유 코어 커스텀 머신 유형은 동일한 가격 책정 체계를 공유합니다.

하지만 메모리가 기본 양보다 큰 경우에는 Compute Engine에서 N1 확장 커스텀 메모리 가격 또는 N2 확장 커스텀 메모리 가격에 따라 확장 메모리 요금이 청구됩니다. 확장 메모리의 가격은 기본 기준보다 낮은 메모리 가격과 다릅니다.

확장 메모리 가격은 리전에 따라 다릅니다. 확장 메모리를 사용해 실행되는 인스턴스에도 다른 인스턴스와 동일한 최소 청구 시간 1분이 적용됩니다. 확장 메모리 역시 지속 사용 할인을 받을 수 있습니다.

자세한 내용은 커스텀 머신 유형의 지속 사용 할인확장 커스텀 메모리 가격을 참조하세요.

제한사항

  • 확장 메모리는 커스텀 머신 유형에만 추가할 수 있습니다. 사전 정의된 머신 유형은 지원되지 않습니다.
  • 추가할 수 있는 vCPU당 메모리에는 제한이 없지만 각 VM 인스턴스에 추가할 수 있는 최대 메모리 양이 존재합니다. N1 머신 유형일 때는 최대 624GB까지 메모리를 추가할 수 있습니다. N2 머신 유형일 때는 최대 768GB까지 메모리를 추가할 수 있습니다. N2D 머신 유형일 때는 최대 768GB까지 메모리를 추가할 수 있습니다.
  • N2 및 N2D 머신 유형은 일부 리전 및 영역에서만 사용할 수 있습니다.
  • 메모리를 256MB 단위로 증가하게 지정해야 합니다.
  • 확장 메모리에는 약정 사용 할인이 적용되지 않습니다.

인스턴스 생성 중에 확장 메모리 추가

확장 메모리를 사용하는 VM 인스턴스를 만들려면 아래 안내를 따릅니다.

Console

  1. Google Cloud Console에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  2. 영역 목록에서 이 VM을 호스팅할 영역을 선택합니다. 선택한 영역의 사용 가능한 머신 유형 계열만 포함하도록 계열 목록이 필터링됩니다.

  3. 머신 구성 섹션에서 범용을 선택합니다.

    1. 시리즈 목록에서 1세대 N1 커스텀 머신 유형에 대해 N1을 클릭하거나 2세대 커스텀 머신 유형의 대해 N2 또는 N2D를 클릭합니다.
    2. 머신 유형 목록에서 커스텀을 선택합니다.
    3. vCPU 수를 지정하려면 코어 슬라이더를 드래그하거나 텍스트 상자에 값을 입력합니다.
    4. 확장 메모리를 추가하려면 확장 메모리를 선택하고 다음을 수행합니다.

      1. VM 인스턴스의 메모리 양을 지정하려면 메모리 슬라이더를 드래그하거나 텍스트 상자에 값을 입력합니다.

      vCPU 및 메모리 수량을 변경하면 콘솔에 VM의 예상 비용이 표시됩니다.

  4. 계속해서 VM을 만듭니다.

gcloud

N1 머신 유형의 경우 gcloud 명령어와 instances create 하위 명령어를 사용하고 이어서 --custom-extensions 플래그를 사용하여 확장 메모리를 사용 설정합니다. 그런 다음 --custom- memory 매개변수를 사용해 원하는 총 메모리를 지정합니다.

gcloud compute instances create example-instance  \
    --custom-extensions --custom-cpu=2 --custom-memory=15

N2 머신 유형의 경우 gcloud 명령어를 instances create 하위 명령어와 함께 사용합니다. --custom-extensions, --custom-cpu, --custom-memory 플래그를 설정한 후 이어서 --custom-vm-type 플래그를 설정하여 N2 머신 유형을 지정합니다.

gcloud compute instances create example-instance \
    --custom-extensions --custom-cpu=2 --custom-memory=16 \
    --custom-vm-type=n2

N2D 머신 유형의 경우 gcloud 명령어를 instances create 하위 명령어와 함께 사용합니다. --custom-extensions, --custom-cpu, --custom-memory 플래그를 설정한 후 이어서 --custom-vm-type 플래그를 설정하여 N2D 머신 유형을 지정합니다.

gcloud compute instances create example-instance \
    --custom-extensions --custom-cpu=2 --custom-memory=16 \
    --custom-vm-type=n2d

API

API에서 평소처럼 인스턴스 만들기 요청을 생성하되 machineType 값을 지정할 때 다음 형식 중 하나를 사용합니다.

  • N1 머신 유형일 때는 다음 형식을 사용합니다.

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • N2 머신 유형일 때는 다음 형식을 사용합니다.

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • N2D 머신 유형의 경우 다음을 사용합니다.

    zones/ZONE/machineTypes/n2d-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    

다음을 바꿉니다.

  • NUMBER_OF_CPUS: vCPU 수입니다.
  • AMOUNT_OF_MEMORY: 메모리(MB)입니다.

예를 들어 다음은 vCPU가 2개이고, 메모리가 20GB인 N2 머신 유형을 지정합니다.

zones/ZONE/machineTypes/n2-custom-2-20480-ext

기존 VM 인스턴스에 확장 메모리 추가

기존 인스턴스에 메모리를 더 추가하려면 먼저 인스턴스를 중지해야 합니다. 인스턴스가 중지된 후 아래 안내에 따라 VM에 메모리를 추가하세요.

Console

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. VM 목록에서 수정할 중지된 VM을 선택합니다.

  3. 페이지 상단의 수정을 클릭합니다.

  4. 머신 구성에서 범용을 선택합니다.

  5. 머신 유형 목록에서 커스텀을 선택합니다.

  6. 원하는 vCPU 수를 선택합니다.

  7. 확장 메모리를 추가하려면 확장 메모리를 선택한 다음 원하는 메모리 양을 지정합니다.

  8. 변경사항을 저장합니다.

gcloud

gcloud 명령줄 도구에서 instances set-machine-type 하위 명령어를 사용하고, 이어서 --custom-extensions 플래그를 기존 --custom-memory 매개변수와 함께 사용합니다.

예를 들어 현재 us-central1-b 영역에서 vCPU가 2개이고 메모리가 13GB인 N1 머신 유형이 속하는 example-instance이라는 VM 인스턴스에 메모리 2GB를 추가하려면 다음 명령어를 사용하세요.

gcloud compute instances set-machine-type example-instance \
   --zone=us-central1-b --custom-cpu=2 \
   --custom-memory=15 --custom-extensions

API

API에서 setMachineType 메서드에 대해 POST 요청을 실행하되 요청 본문에 원하는 머신 유형을 포함합니다. 다음 형식 중 하나를 사용하세요.

  • N1 머신 유형일 때는 다음 형식을 사용합니다.

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • N2 머신 유형일 때는 다음 형식을 사용합니다.

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • N2D 머신 유형의 경우 다음을 사용합니다.

    zones/ZONE/machineTypes/n2d-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    

다음을 바꿉니다.

  • NUMBER_OF_CPUS: vCPU 수입니다.
  • AMOUNT_OF_MEMORY: 메모리(MB)입니다.

예를 들어 다음 요청에서는 vCPU가 2개이고, 메모리가 15GB인 머신 유형을 사용합니다.

zones/ZONE/machineTypes/custom-2-15360-ext

예를 들면 다음과 같습니다.

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

{
    machineType: "zones/us-central1-f/machineTypes/custom-2-15360-ext"
}

다음 단계