유연한 시작 VM 만들기

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

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

시작하기 전에

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

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

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

    gcloud

    1. Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다. 로그인한 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

      gcloud init
    2. Set a default region and zone.

    REST

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

      Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다. 로그인한 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

      gcloud init

    자세한 내용은 Trusted 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일) 사이여야 합니다.

다음 단계