유연한 시작 VM 만들기

이 문서에서는 플렉스 시작 가상 머신 (VM) 인스턴스를 만드는 방법을 설명합니다. Flex-start VM은 최대 7일 동안 실행되며 GPU와 같이 수요가 많은 리소스를 할인된 가격으로 확보할 수 있습니다. 이러한 기능을 통해 Flex-start VM은 모델 미세 조정 및 배치 추론과 같은 단기 워크로드를 실행하는 비용 효율적인 솔루션이 됩니다.

요구사항 및 생성 시 적용되는 제한사항 등 유연한 시작 VM의 주요 특징에 대해 자세히 알아보려면 유연한 시작 VM 정보를 참고하세요.

시작하기 전에

  • 사용하려는 머신 유형에 따라 다음 구성 요구사항 중 하나를 검토합니다.

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

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

    gcloud

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

      gcloud init

      외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

    2. Set a default region and zone.

    REST

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

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

      gcloud init

      외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

    자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참조하세요.

필요한 역할

플렉스 시작 VM을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 인스턴스 관리자 (v1) (roles/compute.instanceAdmin.v1) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 플렉스 시작 VM을 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

플렉스 시작 VM을 만들려면 다음 권한이 필요합니다.

  • 프로젝트에 대한 compute.instances.create 권한
  • 커스텀 이미지를 사용하여 VM 만들기: 이미지에 대한 compute.images.useReadOnly 권한
  • 스냅샷을 사용하여 VM 만들기: 스냅샷에 대한 compute.snapshots.useReadOnly 권한
  • 인스턴스 템플릿을 사용하여 VM 만들기: 인스턴스 템플릿에 대한 compute.instanceTemplates.useReadOnly 권한
  • VM의 서브넷 지정: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.use 권한
  • VM의 고정 IP 주소 지정: 프로젝트에 대한 compute.addresses.use 권한
  • VPC 네트워크를 사용할 때 VM에 외부 IP 주소 할당: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.useExternalIp 권한
  • VM에 레거시 네트워크 할당: 프로젝트에 대한 compute.networks.use 권한
  • 레거시 네트워크 사용 시 VM에 외부 IP 주소 할당: 프로젝트에 대한 compute.networks.useExternalIp 권한
  • VM에 VM 인스턴스 메타데이터 설정: 프로젝트에 대한 compute.instances.setMetadata 권한
  • VM에 태그 설정: VM에 대한 compute.instances.setTags 권한
  • VM에 라벨 설정: VM에 대한 compute.instances.setLabels 권한
  • VM에 사용할 서비스 계정 설정: VM에 대한 compute.instances.setServiceAccount 권한
  • VM의 새 디스크 만들기: 프로젝트에 대한 compute.disks.create 권한
  • 기존 디스크를 읽기 전용 또는 읽기-쓰기 모드로 연결: 디스크에 대한 compute.disks.use 권한
  • 기존 디스크를 읽기 전용 모드로 연결: 디스크에 대한 compute.disks.useReadOnly 권한

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

유연한 시작 VM 만들기

유연한 시작 VM을 만들려면 다음 옵션 중 하나를 선택하세요.

gcloud

플렉스 시작 VM을 만들려면 다음 플래그와 함께 gcloud compute instances create 명령어를 사용합니다.

  • --request-valid-for-duration 플래그

  • --provisioning-model=FLEX_START 플래그

  • --instance-termination-action 플래그

  • --max-run-duration 플래그

  • --maintenance-policy=TERMINATE 플래그

  • --reservation-affinity=none 플래그

유연한 시작 VM을 만들려면 다음 명령어를 실행합니다.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE \
    --request-valid-for-duration=VALID_FOR_DURATION \
    --provisioning-model=FLEX_START \
    --instance-termination-action=TERMINATION_ACTION \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.

  • MACHINE_TYPE: 플렉스 시작 VM에 사용할 머신 유형입니다. G2 또는 N1 머신 유형을 지정하는 경우 다음 사항을 고려하세요.

    • G2 머신 유형의 경우 그래픽 집약적인 워크로드에 사용할 NVIDIA RTX 가상 워크스테이션 (vWS)을 선택적으로 지정할 수 있습니다. 이렇게 하려면 다음과 같이 명령어에 --accelerator 플래그를 포함합니다.

      --accelerator=count=VWS_ACCELERATOR_COUNT,type=nvidia-l4-vws
      

      VWS_ACCELERATOR_COUNT를 워크로드에 필요한 NVIDIA RTX vWS 수로 바꿉니다.

    • N1 머신 유형의 경우 VM에 연결할 GPU 수와 유형을 지정해야 합니다. 그렇지 않으면 VM 만들기가 실패합니다. N1 VM에 GPU를 연결하려면 다음과 같이 명령어에 --accelerator 플래그를 포함합니다.

      --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
      

      다음을 바꿉니다.

  • ZONE: VM을 만들려는 영역입니다. VM을 만들려는 영역에서 지정한 머신 유형을 사용할 수 있는지 확인하려면 사용 가능한 리전 및 영역을 참고하세요.

  • VALID_FOR_DURATION: 요청된 리소스의 프로비저닝을 기다리는 최대 시간으로, 숫자와 단위 (s, m, h 또는 d)가 차례로 표시됩니다. 예를 들어 값 30m은 30분을 나타내고 값 1h2m3s은 1시간 2분 3초를 나타냅니다. 워크로드의 영역 요구사항에 따라 VM 생성 요청이 성공할 가능성을 높이기 위해 다음 기간 중 하나를 지정하는 것이 좋습니다.

    • 워크로드에 특정 영역에 VM을 만들어야 하는 경우 90초 (90s)에서 2시간(2h) 사이의 기간을 지정합니다. 기간이 길수록 리소스를 획득할 가능성이 높아집니다.

    • VM이 리전 내의 모든 영역에서 실행될 수 있는 경우 0초 (0s)의 기간을 지정합니다. 이 값은 Compute Engine이 즉시 사용할 수 있는 리소스만 할당하도록 지정합니다. 리소스가 없어 생성 요청이 실패하면 다른 영역에서 요청을 다시 시도하세요.

  • TERMINATION_ACTION: 실행 기간이 끝날 때 VM을 중지할지 삭제할지 여부입니다. 다음 값 중 하나를 지정합니다.

    • VM을 중지하려면 STOP를 실행합니다.

    • VM을 삭제하려면 다음 안내를 따르세요. DELETE

  • RUN_DURATION: Compute Engine이 VM을 삭제하기 전 VM이 실행되는 최대 시간으로, 숫자 뒤에 단위 (s, m, h 또는 d)가 오는 형식입니다. 값은 10분에서 7일 사이여야 합니다.

REST

플렉스 시작 VM을 만들려면 instances.insert 메서드POST 요청을 보냅니다. 요청 본문에 다음 필드를 포함합니다.

  • params.requestValidForDuration 필드

  • FLEX_START로 설정된 scheduling.provisioningModel 필드

  • scheduling.instanceTerminationAction 필드

  • scheduling.maxRunDuration 필드

  • TERMINATE로 설정된 scheduling.onHostMaintenance 필드

  • NO_RESERVATION으로 설정된 reservationAffinity.consumeReservationType

플렉스 시작 VM을 만들려면 다음과 같이 POST 요청을 실행합니다.

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

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "params": {
    "requestValidForDuration": {
      "seconds": VALID_FOR_DURATION
    }
  },
  "scheduling": {
    "provisioningModel": "FLEX_START",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "maxRunDuration": {
      "seconds": RUN_DURATION
    },
    "onHostMaintenance": "TERMINATE"
  },
  "reservationAffinity": {
    "consumeReservationType": "NO_RESERVATION"
  }
}

다음을 바꿉니다.

  • PROJECT_ID: VM을 만들 프로젝트의 ID입니다.

  • ZONE: VM을 만들려는 영역입니다. VM을 만들려는 영역에서 머신 유형을 사용할 수 있는지 확인하려면 사용 가능한 리전 및 영역을 참고하세요.

  • VM_NAME: 새 VM의 이름입니다.

  • MACHINE_TYPE: 플렉스 시작 VM에 사용할 머신 유형입니다. G2 또는 N1 머신 유형을 지정하는 경우 다음 사항을 고려하세요.

    • G2 머신 유형의 경우 그래픽 집약적인 워크로드에 사용할 NVIDIA RTX 가상 워크스테이션 (vWS)을 선택적으로 지정할 수 있습니다. 이렇게 하려면 요청 본문에 guestAccelerators 필드를 다음과 같이 포함합니다.

      "guestAccelerators": [
        {
          "acceleratorCount": VWS_ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/nvidia-l4-vws"
        }
      ]
      

      VWS_ACCELERATOR_COUNT를 워크로드에 필요한 NVIDIA RTX vWS 수로 바꿉니다.

    • N1 머신 유형의 경우 VM에 연결할 GPU 수와 유형을 지정해야 합니다. 그렇지 않으면 VM 만들기가 실패합니다. N1 VM에 GPU를 연결하려면 다음과 같이 요청 본문에 guestAccelerators 필드를 포함합니다.

      "guestAccelerators": [
        {
          "acceleratorCount": ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
        }
      ]
      

      다음을 바꿉니다.

  • IMAGE_PROJECT: 이미지가 포함된 이미지 프로젝트입니다(예: debian-cloud). 지원되는 이미지 프로젝트에 대한 자세한 내용은 공개 이미지를 참고하세요.

  • IMAGE: 다음 중 하나를 지정합니다.

    • OS 이미지의 특정 버전입니다(예: debian-12-bookworm-v20240617).

    • 이미지 계열이며 형식은 family/IMAGE_FAMILY여야 합니다. 이 값은 지원 중단되지 않은 최신 OS 이미지를 사용하도록 지정합니다. 예를 들어 family/debian-12를 지정하면 Debian 12 이미지 계열의 최신 버전이 사용됩니다. 이미지 계열 사용에 대한 자세한 내용은 이미지 계열 권장사항을 참고하세요.

  • VALID_FOR_DURATION: VM이 프로비저닝될 때까지 기다리는 최대 시간(초)입니다. 워크로드의 영역 요구사항에 따라 VM 생성 요청이 성공할 가능성을 높이기 위해 다음 기간 중 하나를 지정하는 것이 좋습니다.

    • 워크로드에 특정 영역에 VM을 만들어야 하는 경우 90초 (90)에서 2시간(7200) 사이의 기간을 지정합니다. 기간이 길수록 리소스를 획득할 가능성이 높아집니다.

    • VM이 리전 내의 모든 영역에서 실행될 수 있는 경우 0초 (0)의 기간을 지정합니다. 이 값은 Compute Engine이 즉시 사용할 수 있는 리소스만 할당하도록 지정합니다. 리소스를 사용할 수 없어 생성 요청이 실패하면 다른 영역에서 요청을 다시 시도하세요.

  • TERMINATION_ACTION: 실행 기간이 끝날 때 VM을 중지할지 삭제할지 여부입니다. 다음 값 중 하나를 지정합니다.

    • VM을 중지하려면 STOP를 실행합니다.

    • VM을 삭제하려면 다음 안내를 따르세요. DELETE

  • RUN_DURATION: Compute Engine에서 VM을 삭제하기 전에 VM이 실행되는 최대 시간(초)입니다. 이 값은 600초 (10분)와 604,800초 (7일) 사이여야 합니다.

다음 단계

직접 사용해 보기

Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 Compute Engine의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.

Compute Engine 무료로 사용해 보기