Flex-start VM 만들기

이 문서에서는 Flex-start(유연한 시작) 가상 머신(VM) 인스턴스를 만드는 방법을 설명합니다. Flex-start VM은 최대 7일 동안 실행되며 GPU와 같은 수요가 높은 리소스를 할인된 가격으로 사용할 수 있도록 지원합니다. 이러한 특성 덕분에 Flex-start VM은 모델 미세 조정 및 배치 추론과 같은 단기 실행 워크로드를 위한 비용 효율적인 솔루션입니다.

Flex-start VM의 주요 특성, 생성 시 적용되는 요구사항 및 제한사항에 대해 자세히 알아보려면 Flex-start VM 정보를 참조하세요.

시작하기 전에

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

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

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

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    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 사용을 위한 인증을 참조하세요.

필요한 역할

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

이 사전 정의된 역할에는 Flex-start VM을 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 권한의 정확한 목록을 보려면 필수 권한 섹션을 확장하세요.

필수 권한

Flex-start 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 권한

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

Flex-start VM 만들기

Flex-start VM을 만들려면 다음 옵션 중 하나를 선택하세요.

콘솔

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

    인스턴스 만들기로 이동

  2. 머신 구성 창에서 다음 단계를 완료합니다.

    1. 이름 필드에 Flex-start VM의 이름을 입력합니다.

    2. VM을 만들려는 리전영역을 지정합니다. 사용하려는 머신 유형이 사용 가능한 리전 및 영역을 검토하려면 사용 가능한 리전 및 영역을 참조하세요.

    3. 실행하려는 워크로드에 따라 다음과 같이 머신 유형을 지정합니다.

      • 가속기 최적화 머신 유형을 지정하려면 다음을 수행합니다.

        1. GPU 탭을 클릭합니다.

        2. GPU 유형 목록에서 NVIDIA GB200 192GB (A4X) 및 NVIDIA RTX PRO 600(G4)을 제외한 GPU 유형을 선택합니다.

        3. GPU 수 목록에서 VM에 연결할 GPU 수를 선택합니다.

        4. 선택사항: GPU 모델에서 그래프 워크로드에 대한 NVIDIA RTX 가상 워크스테이션(vWS)을 지원하고 그래픽 집중 워크로드를 실행하려는 경우 가상 워크스테이션 사용(NVIDIA GRID)을 선택합니다.

      • H4D 머신 유형을 지정하려면 다음을 수행합니다.

        1. 컴퓨팅 최적화 탭을 클릭합니다.

        2. 시리즈 열에서 H4D를 선택합니다.

  3. 탐색 메뉴에서 고급을 클릭합니다. 고급 창이 표시되면 다음 단계를 완료합니다.

    1. 예약 섹션에서 예약 사용 안함을 선택합니다.

    2. 프로비저닝 모델 섹션의 VM 프로비저닝 모델 목록에서 Flex-start를 선택합니다.

    3. 시간 입력 필드에 VM을 실행할 최대 시간을 입력합니다. 값은 36초(0.01) 이상, 7일(168, 168시간) 이하로 지정해야 합니다.

    4. VM 생성 대기 시간 설정 체크박스를 선택합니다. 그런 다음 워크로드의 영역 요구사항에 따라 VM 생성 요청이 성공할 확률을 높이기 위해 다음 중 하나의 지속 시간을 지정하는 것이 좋습니다.

      • 워크로드가 반드시 특정 영역에 VM을 만들어야 하는 경우 90초에서 2시간 사이의 지속 시간을 지정합니다. 지속 시간이 길수록 리소스를 확보할 확률이 높아집니다.

      • VM을 리전 내의 임의의 영역에서 실행할 수 있는 경우 지속 시간을 0초로 설정하거나 VM 생성 대기 시간 설정 체크박스의 선택을 해제합니다. 이렇게 하면 Compute Engine은 리소스가 즉시 사용 가능한 경우에만 리소스를 할당합니다. 리소스를 사용할 수 없어 VM 생성 요청이 실패한 경우 다른 영역에서 요청을 다시 시도합니다.

  4. 만들기를 클릭하여 Flex-start VM을 만듭니다.

gcloud

Flex-start 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 플래그

Flex-start 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: Flex-start 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

Flex-start VM을 만들려면 instances.insert 메서드POST 요청을 보냅니다. 요청 본문에 다음 필드를 포함합니다.

  • params.requestValidForDuration 필드

  • FLEX_START로 설정된 scheduling.provisioningModel 필드

  • scheduling.instanceTerminationAction 필드

  • scheduling.maxRunDuration 필드

  • TERMINATE로 설정된 scheduling.onHostMaintenance 필드

  • NO_RESERVATION으로 설정된 reservationAffinity.consumeReservationType

Flex-start 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: Flex-start 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 무료로 사용해 보기