Flex-start VM을 사용하는 MIG 만들기

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

이 문서의 단계에서는 리소스를 사용할 수 있게 되면 개별 Flex-start VM을 만드는 MIG를 만드는 방법을 설명합니다. 따라서 MIG는 처음에 요청된 VM의 일부만 만들고 나중에 용량이 허용되면 나머지 VM을 추가할 수 있습니다. MIG에서 Flex-start VM을 한 번에 모두 만들려면 대신 MIG 크기 조절 요청 정보를 참고하세요.

MIG를 만드는 데 사용할 수 있는 다른 방법은 MIG를 만드는 기본 시나리오를 참고하세요.

시작하기 전에

  • 요청하려는 리소스에 할당량이 충분한지 확인합니다. 자세한 내용은 할당량을 참고하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Cloud de Confiance by S3NS 서비스 및 API에 액세스하기 위해 ID를 확인합니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Cloud de Confiance 콘솔을 사용하여 Cloud de Confiance by S3NS 서비스 및 API에 액세스하는 경우 인증을 설정할 필요가 없습니다.

    gcloud

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

      gcloud init
  • 기본 리전 및 영역을 설정합니다.
  • REST

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

      Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다.

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

필요한 역할

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

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

필수 권한

Flex-start VM을 사용하는 MIG를 만들려면 다음 권한이 필요합니다.

  • 인스턴스 템플릿을 만들려면 프로젝트에 대해 compute.instanceTemplates.create 권한이 필요합니다.
  • MIG를 만들려면 프로젝트에 대해 compute.instanceGroupManagers.create 권한이 필요합니다.

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

Flex-start VM을 사용하는 MIG 만들기

Flex-start VM을 사용하는 MIG를 만들려면 다음 단계를 완료해야 합니다.

  1. Flex-start VM을 만들도록 구성된 인스턴스 템플릿 만들기

  2. 리전 또는 영역 MIG 만들기

Flex-start VM을 만들도록 구성된 인스턴스 템플릿 만들기

이 섹션에 설명된 대로 Flex-start VM을 만들도록 구성된 인스턴스 템플릿을 만들어야 합니다. 템플릿을 만든 후에는 템플릿을 사용하여 MIG를 만듭니다.

Flex-start VM을 만들도록 구성된 인스턴스 템플릿을 만들려면 다음 옵션 중 하나를 선택하세요.

콘솔

  1. Cloud de Confiance 콘솔에서 인스턴스 템플릿 페이지로 이동합니다.

    인스턴스 템플릿으로 이동

  2. 인스턴스 템플릿 만들기를 클릭합니다. 인스턴스 템플릿 만들기 페이지가 표시됩니다.

  3. 이름 필드에 인스턴스 템플릿의 이름을 입력합니다.

  4. 위치 섹션에서 만들려는 인스턴스 템플릿의 유형을 선택합니다.

    • 리전 인스턴스 템플릿의 경우 리전을 선택한 후 템플릿을 만들 리전을 선택합니다. Flex-start VM에서 사용할 머신 유형을 기반으로 지원되는 리전을 지정합니다.

    • 전역 인스턴스 템플릿의 경우 전역을 선택합니다.

  5. 머신 구성 섹션에서 유연한 시작 VM에 지원되는 머신 시리즈를 선택합니다.

  6. 프로비저닝 모델 섹션에서 다음을 수행합니다.

    1. VM 프로비저닝 모델 목록에서 유연한 시작을 선택합니다.

    2. 인스턴스 템플릿을 통해 생성된 VM의 실행 기간을 설정하려면 시간 입력 필드에 VM이 실행되는 시간을 입력합니다. 값은 1시간 (1)~7일 (168) 사이여야 합니다. VM이 실행 기간이 종료되면 Compute Engine은 각 VM을 자체 생성 시간을 기준으로 개별적으로 삭제합니다.

  7. (선택사항) 부팅 디스크 유형 또는 이미지를 변경하려면 부팅 디스크 섹션에서 변경을 클릭합니다. 그런 다음 안내에 따라 부팅 디스크를 변경합니다.

  8. 만들기를 클릭합니다.

gcloud

Flex-start VM을 만들도록 구성된 인스턴스 템플릿을 만들려면 gcloud compute instance-templates create 명령어를 사용합니다.

다음 명령어는 리전 인스턴스 템플릿을 만듭니다. 전역 인스턴스 템플릿을 만들려면 --instance-template-region 플래그 없이 같은 명령어를 사용합니다.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-template-region=REGION \
    --instance-termination-action=DELETE \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --max-run-duration=RUN_DURATION \
    --provisioning-model=FLEX_START \
    --reservation-affinity=none

다음을 바꿉니다.

  • INSTANCE_TEMPLATE_NAME: 만들려는 인스턴스 템플릿의 이름입니다.

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

  • IMAGE_FAMILY: 이미지 계열로, 지원 중단되지 않은 최신 OS 이미지를 지정합니다. 예를 들어 debian-12를 지정하면 Debian 12 이미지 계열의 최신 버전이 사용됩니다. 이미지 계열 사용에 대한 자세한 내용은 이미지 계열 권장사항을 참조하세요.

  • REGION: 인스턴스 템플릿을 만들 리전 Flex-start VM에서 사용할 머신 유형에 따라 지원되는 리전을 지정합니다.

  • MACHINE_TYPE: Flex-start VM에 사용할 GPU 머신 유형 또는 H4D 머신 유형입니다. N1 머신 유형을 지정하는 경우 VM에 연결할 GPU 수와 유형을 정의하는 --accelerator 플래그를 포함해야 합니다.

  • RUN_DURATION: 요청된 VM을 실행할 기간입니다. VM이 실행 기간이 끝나면 Compute Engine은 각 VM을 자체 생성 시간을 기준으로 개별적으로 삭제합니다. 실행 기간은 각각 d, h, m, s를 사용하여 일, 시, 분 또는 초 순서로 형식을 지정해야 합니다. 예를 들어 30분의 경우 30m을, 1일 2시간 3분 4초의 경우 1d2h3m4s를 지정합니다. 값은 10분~7일 사이여야 합니다.

REST

Flex-start VM을 만들도록 구성된 인스턴스 템플릿을 만들려면 다음 POST 요청 중 하나를 실행하세요.

예를 들어 리전 인스턴스 템플릿을 만들려면 다음과 같이 요청합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": RUN_DURATION
      },
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START"
    }
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스 템플릿을 만들 프로젝트의 ID입니다.

  • REGION: 인스턴스 템플릿을 만들 리전 Flex-start VM에서 사용할 머신 유형에 따라 지원되는 리전을 지정합니다.

  • INSTANCE_TEMPLATE_NAME: 인스턴스 템플릿의 이름입니다.

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

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

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

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

  • MACHINE_TYPE: VM에 사용할 GPU 머신 유형입니다. N1 머신 유형을 지정하는 경우 VM에 연결할 GPU 수와 유형을 정의하는 guestAccelerators 필드를 포함해야 합니다.

  • RUN_DURATION: 요청된 VM을 실행할 기간(초)입니다. VM이 실행 기간이 끝나면 Compute Engine은 각 VM을 자체 생성 시간을 기준으로 개별적으로 삭제합니다. 실행 기간은 600(600초(10분))~604800(604,800초(7일)) 사이여야 합니다.

인스턴스 템플릿을 만든 후 템플릿의 세부정보를 확인하여 속성을 검토할 수 있습니다.

리전 또는 영역 MIG 만들기

이 섹션에 설명된 대로 리전 또는 영역 MIG를 만듭니다. 자동 확장을 구성하면 안 되며 복구를 사용 중지해야 합니다. 요청된 리소스를 사용할 수 없는 경우 Compute Engine은 요청이 성공하거나, MIG의 VM 수를 줄이거나, MIG를 삭제할 때까지 리소스 할당을 계속 시도합니다.

리전 또는 영역 MIG를 만들려면 다음 옵션 중 하나를 선택합니다.

콘솔

  1. Cloud de Confiance 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 인스턴스 그룹 만들기를 클릭합니다. 인스턴스 그룹 만들기 페이지가 표시됩니다.

  3. 이름 필드에 MIG 이름을 입력합니다.

  4. 인스턴스 템플릿 목록에서 이전 섹션에서 만든 인스턴스 템플릿을 선택합니다.

  5. 인스턴스 수 필드에 MIG에서 만들 Flex-start VM 수를 입력합니다. 워크로드에 특정 VM 이름이 필요한 경우 0를 입력하여 VM을 만들지 않습니다. MIG를 만든 후 특정 이름으로 VM을 추가합니다.

  6. 위치 섹션에서 다음과 같이 영역 또는 리전 MIG를 만들지 여부를 지정합니다.

    1. 영역 MIG를 만들려면 단일 영역을 선택합니다. 또는 리전 MIG를 만들려면 여러 영역을 선택합니다.

    2. MIG의 리전영역을 선택합니다.

    3. 리전 MIG를 만드는 경우 다음을 수행합니다.

      1. 목표 분산 형태 필드에서 모든 단일 영역을 선택합니다.

      2. 대화상자가 열리면 인스턴스 재분산 사용 중지를 클릭합니다.

  7. 자동 확장 구성을 삭제하려면 자동 확장 섹션에서 다음을 수행합니다.

    1. 자동 확장 구성을 클릭합니다.

    2. 자동 확장 모드 목록에서 자동 확장 구성 삭제를 클릭합니다.

    3. 확인 대화상자에서 삭제를 클릭합니다.

  8. 복구를 사용 중지하려면 실패 시 작업 섹션의 실패 시 기본 작업 목록에서 작업 없음을 선택합니다.

  9. 만들기를 클릭합니다.

gcloud

MIG를 만들려면 gcloud compute instance-groups managed create 명령어를 사용합니다.

만들려는 MIG의 유형에 따라 명령어에 다음 플래그를 포함합니다.

  • 영역 MIG를 만들려면 --zone 플래그를 포함합니다.

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE
    
  • 리전 MIG를 만들려면 --region--target-distribution-shape 플래그를 포함합니다.

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --region=REGION \
        --target-distribution-shape=SHAPE
    

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: MIG 이름

  • INSTANCE_TEMPLATE_URL: 이전 섹션에서 만든 인스턴스 템플릿의 URL입니다. URL에는 인스턴스 템플릿의 ID 또는 이름이 포함될 수 있습니다. 다음 값 중 하나를 지정합니다.

    • 리전 인스턴스 템플릿의 경우: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID

    • 전역 인스턴스 템플릿의 경우: INSTANCE_TEMPLATE_ID

  • SIZE: MIG에서 만들 Flex-start VM 수입니다. 워크로드에 특정 VM 이름이 필요한 경우 0를 지정하여 VM을 만들지 않습니다. MIG를 만든 후 특정 이름으로 VM을 추가합니다.

  • ZONE: 영역 MIG를 만들 영역입니다. 리전 인스턴스 템플릿을 사용하여 MIG를 만드는 경우 템플릿과 동일한 리전 내의 영역을 지정해야 합니다.

  • REGION: 리전 MIG를 만들 리전입니다. 리전 인스턴스 템플릿을 사용하여 MIG를 만드는 경우 템플릿의 리전과 동일한 리전을 지정해야 합니다.

  • SHAPE: MIG가 리전 MIG의 영역에 Flex-start VM을 분산하는 방식입니다. 다음 값 중 하나를 지정합니다.

    • 가용성을 기반으로 여러 영역에 VM을 만들려면 다음을 실행하세요. ANY

    • 가용성을 기반으로 단일 영역에 VM을 만들려면 다음을 실행하세요. ANY_SINGLE_ZONE

    자세한 내용은 리전 MIG 대상 분산 형태를 참고하세요.

REST

MIG를 만들려면 다음 메서드 중 하나에 POST 요청을 보냅니다.

  • 영역 MIG를 만들려면 instanceGroupManagers.insert 메서드에 다음 요청을 수행합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      },
      "targetSize": SIZE
    }
    
  • 리전 MIG를 만들려면 regionInstanceGroupManagers.insert 메서드에 다음 요청을 수행합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "instanceTemplate": "INSTANCE_TEMPLATE_URL",
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      },
      "targetSize": SIZE,
      "distributionPolicy": {
        "targetShape": "SHAPE"
      }
    }
    

다음을 바꿉니다.

  • PROJECT_ID: 리전 또는 영역 MIG를 만들 프로젝트의 ID입니다.

  • ZONE: 영역 MIG를 만들 영역입니다. 리전 인스턴스 템플릿을 사용하여 MIG를 만드는 경우 템플릿과 동일한 리전 내의 영역을 지정해야 합니다.

  • REGION: 리전 MIG를 만들 리전입니다. 리전 인스턴스 템플릿을 사용하여 MIG를 만드는 경우 템플릿의 리전과 동일한 리전을 지정해야 합니다.

  • INSTANCE_GROUP_NAME: MIG 이름

  • INSTANCE_TEMPLATE_URL: 이전 섹션에서 만든 인스턴스 템플릿의 URL입니다. URL에는 인스턴스 템플릿의 ID 또는 이름이 포함될 수 있습니다. 다음 값 중 하나를 지정합니다.

    • 리전 인스턴스 템플릿의 경우: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID

    • 전역 인스턴스 템플릿의 경우: INSTANCE_TEMPLATE_ID

  • SIZE: MIG에서 만들 Flex-start VM 수입니다. 워크로드에 특정 VM 이름이 필요한 경우 0를 지정하여 VM을 만들지 않습니다. MIG를 만든 후 특정 이름으로 VM을 추가합니다.

  • SHAPE: MIG가 리전 MIG의 영역에 Flex-start VM을 분산하는 방식입니다. 다음 값 중 하나를 지정합니다.

    • 가용성을 기반으로 여러 영역에 VM을 만들려면 다음을 실행하세요. ANY

    • 가용성을 기반으로 단일 영역에 VM을 만들려면 다음을 실행하세요. ANY_SINGLE_ZONE

    자세한 내용은 리전 MIG 대상 분산 형태를 참고하세요.

다음 단계