GPU VM으로 MIG 만들기


이 문서에서는 GPU가 연결된 가상 머신(VM) 인스턴스에서 관리형 인스턴스 그룹(MIG)을 만드는 방법을 설명합니다. 크기 조절 요청flex-start 프로비저닝 모델을 사용하여 영역 MIG에 GPU VM을 한 번에 모두 추가하는 방법을 설명합니다. Cluster Director에서 제공하는 기능과 서비스를 사용할 수 있는 MIG 크기 조절 요청을 만들려면 AI 하이퍼컴퓨터 문서의 MIG 및 크기 조절 요청 만들기를 참조하세요.

flex-start 프로비저닝 모델과 함께 MIG 크기 조절 요청을 사용하면 GPU VM을 확보할 가능성이 높아집니다. 요청에서 해당 VM을 실행할 GPU VM의 수와 기간을 지정합니다. 기본 스케줄러 메커니즘인 동적 워크로드 스케줄러(DWS)는 요청된 기간 및 리소스 가용성을 기반으로 Compute Engine 전반에서 생성된 크기 조절 요청을 예약합니다. 리소스를 사용할 수 있게 되면 MIG는 VM을 자동으로 만듭니다.

이러한 VM에서 실행되는 작업이 요청된 기간보다 일찍 완료되면 해당 VM을 삭제할 수 있습니다. 그렇지 않은 경우 MIG가 실행 기간이 종료되었을 때 VM을 자동으로 삭제합니다.

MIG를 만드는 다른 기본 시나리오도 참조하세요.

시작하기 전에

  • 요청 중인 리소스에 대해 GPU 할당량이 충분한지 확인하려면 GPU 할당량 확인을 참조하세요.
  • 할당량 소비를 알아보려면 GPU 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

제한사항

MIG 크기 조절 요청을 만들기 위한 제한사항을 검토합니다.

MIG 만들기 및 GPU VM을 한 번에 모두 추가

그룹에서 MIG를 만들고 GPU VM을 한 번에 모두 추가하려면 다음을 수행합니다.

  1. MIG를 만들기 위해 필요한 인스턴스 템플릿을 만듭니다. MIG는 인스턴스 템플릿을 기반으로 그룹에서 각 VM을 만듭니다. 템플릿에서 GPU VM의 구성과 크기 조절 요청을 사용하는 데 필요한 추가 구성을 지정합니다.

    인스턴스 템플릿에 대한 자세한 내용은 인스턴스 템플릿 정보를 참고하세요.

  2. MIG 및 크기 조절 요청을 만들어 GPU VM을 한 번에 모두 추가합니다.

인스턴스 템플릿 만들기

이 섹션에 설명된 대로 인스턴스 템플릿을 만든 후 템플릿을 사용하여 MIG를 만듭니다.

콘솔

  1. 인스턴스 템플릿 페이지로 이동합니다.

    인스턴스 템플릿으로 이동

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

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

  4. 머신 구성 섹션에서 다음을 수행합니다.

    1. GPU 탭을 클릭합니다.

    2. GPU 유형 목록에서 GPU 유형을 선택합니다.

    3. GPU 수 목록에서 GPU 수를 선택합니다.

    4. 머신 유형 섹션에서 머신 유형을 선택합니다.

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

    1. VM 프로비저닝 모델 목록에서 flex-start를 선택합니다.

    2. 인스턴스 템플릿을 통해 생성된 VM의 실행 기간을 설정하려면 시간 수 입력 필드에 시간 수를 입력합니다. 값은 1시간(1)에서 7일(168) 사이여야 합니다.

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

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

gcloud

beta instance-templates create 명령어를 사용하여 인스턴스 템플릿을 만듭니다.

gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-termination-action=DELETE \
    --instance-template-region=REGION \
    --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: 인스턴스 템플릿을 만들 리전입니다.

  • MACHINE_TYPE: GPU를 지원하는 머신 유형입니다. N1 머신 유형을 지정하는 경우 VM에 연결할 GPU 유형 및 개수를 지정하기 위해 --accelerator 플래그를 포함합니다.

  • RUN_DURATION: 요청된 VM을 실행할 기간입니다. 값 형식은 각각 d, h, m, s를 사용해서 일, 시간, 분, 초로 지정해야 합니다. 예를 들어 30분에 30m을 지정하고 1일 2시간 3분 4초에 1d2h3m4s를 지정합니다. 값은 10분~7일 사이여야 합니다.

REST

beta.instanceTemplates.insert 메서드에 대해 POST 요청을 수행하여 인스턴스 템플릿을 만듭니다.

POST https://compute.googleapis.com/compute/beta/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: 인스턴스 템플릿을 만들 리전입니다.

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

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

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

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

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

  • MACHINE_TYPE: GPU를 지원하는 머신 유형입니다. N1 머신 유형을 지정하는 경우 VM에 연결할 GPU 유형 및 개수를 지정하기 위해 guestAccelerators 필드를 포함합니다.

  • RUN_DURATION: MIG에서 자동으로 삭제되기 전까지 요청된 VM을 실행하려는 기간(초)입니다. 값은 600초(10분)를 나타내는 600에서 604,800초(7일)를 나타내는 604800 사이여야 합니다.

인스턴스 템플릿을 만든 후 확인하여 ID를 확인하고 인스턴스 속성을 검토할 수 있습니다.

MIG 만들기 및 GPU VM을 한 번에 모두 추가

이 섹션에 설명된 대로 MIG를 만듭니다. MIG에서 크기 조절 요청을 만들려면 자동 확장을 구성하면 안 되고 복구를 사용 중지해야 합니다.

콘솔

  1. 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

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

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

  4. 인스턴스 템플릿을 선택하기 전에 다음과 같이 자동 확장 구성을 삭제하고 복구를 사용 중지해야 합니다.

    1. 자동 확장 구성을 삭제하려면 다음 단계를 따르세요.
      1. 자동 확장 섹션에서 자동 확장 모드 목록을 클릭한 후 자동 확장 구성 삭제를 클릭합니다.
      2. 확인 대화상자에서 삭제를 클릭합니다.
    2. 복구를 사용 중지하려면 VM 인스턴스 수명 주기 섹션에서 실패 시 기본 작업 목록을 클릭한 다음 작업 없음을 선택합니다.
  5. 인스턴스 템플릿 필드로 돌아갑니다. 인스턴스 템플릿 목록에서 이전 섹션에서 만든 인스턴스 템플릿을 선택합니다.

  6. 다음 중 하나를 수행합니다.

    • MIG로 크기 조절 요청을 만들려면 다음 단계를 따르세요.
      1. 인스턴스 수 필드에 한 번에 만들려는 VM 수를 입력합니다.
      2. 크기 조절 요청을 사용하여 한 번에 모든 VM 만들기 체크박스를 선택합니다.
      3. 선택사항: 인스턴스 템플릿에 설정된 것과 다른 VM 실행 기간을 지정하려면 요청된 실행 기간 필드와 단위 목록에서 기간을 지정합니다. 기간은 1시간에서 7일 사이여야 합니다.
    • MIG를 만든 후 크기 조절 요청을 만들려면 인스턴스 수 필드에 0을 입력합니다.
  7. 위치 섹션에서 다음과 같이 영역 또는 리전 MIG를 만들지 여부를 지정합니다.

    1. 영역 MIG를 만들려면 단일 영역을 선택합니다. 또는 리전 MIG를 만들려면 여러 영역을 선택합니다.
    2. MIG의 리전영역을 선택합니다.
    3. 리전 MIG를 만드는 경우 다음을 수행합니다.
      1. 목표 분산 형태 필드에서 모든 단일 영역을 선택합니다.
      2. 대화상자가 나타나면 인스턴스 재분산 사용 중지를 클릭합니다.
  8. 만들기를 클릭합니다.

gcloud

  1. instance-groups managed create 명령어를 사용하여 영역 MIG를 만듭니다.

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
       --template=INSTANCE_TEMPLATE_URL \
       --size=0 \
       --zone=ZONE \
       --default-action-on-vm-failure=do_nothing
    
  2. MIG에서 instance-groups managed resize-requests create 명령어를 사용하여 크기 조절 요청을 만듭니다. 원하는 GPU VM 수와 해당 VM을 실행할 기간을 지정합니다.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
       --resize-request=RESIZE_REQUEST_NAME \
       --resize-by=COUNT \
       --zone=ZONE
    

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: MIG 이름입니다.
  • INSTANCE_TEMPLATE_URL: MIG에서 VM을 만드는 데 사용할 인스턴스 템플릿의 URL입니다. URL에는 인스턴스 템플릿의 ID 또는 이름이 포함될 수 있습니다. 다음 값 중 하나를 지정합니다.
    • 리전 인스턴스 템플릿의 경우: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • 전역 인스턴스 템플릿의 경우: INSTANCE_TEMPLATE_ID
  • ZONE: Compute Engine에서 사용할 수 있는 영역 중 하나입니다.
  • RESIZE_REQUEST_NAME: 크기 조절 요청의 이름
  • COUNT: 그룹에 한 번에 모두 추가할 VM 수

REST

  1. instanceGroupManagers.insert 메서드POST 요청을 전송하여 영역 MIG를 만듭니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
     "versions": [
       {
         "instanceTemplate": "INSTANCE_TEMPLATE_URL"
       }
     ],
     "name": "INSTANCE_GROUP_NAME",
     "targetSize": 0,
     "instanceLifecyclePolicy": {
       "defaultActionOnFailure": "DO_NOTHING"
     }
    }
    
  2. MIG에서 instanceGroupManagerResizeRequests.insert 메서드에 대해 POST 요청을 실행하여 크기 조절 요청을 만듭니다. 요청 본문에서 한 번에 만들려는 GPU VM의 수와 해당 VM을 실행할 기간을 지정합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
    {
     "name": "RESIZE_REQUEST_NAME",
     "resizeBy": COUNT
    }
    

다음을 바꿉니다.

  • PROJECT_ID: MIG를 만들려는 프로젝트의 ID
  • INSTANCE_GROUP_NAME: MIG 이름입니다.
  • INSTANCE_TEMPLATE_URL: MIG에서 VM을 만드는 데 사용할 인스턴스 템플릿의 URL입니다. URL에는 인스턴스 템플릿의 ID 또는 이름이 포함될 수 있습니다. 다음 값 중 하나를 지정합니다.
    • 리전 인스턴스 템플릿의 경우: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • 전역 인스턴스 템플릿의 경우: INSTANCE_TEMPLATE_ID
  • ZONE: Compute Engine에서 사용할 수 있는 영역 중 하나입니다.
  • RESIZE_REQUEST_NAME: 크기 조절 요청의 이름
  • COUNT: 그룹에 한 번에 모두 추가할 VM 수

생성한 크기 조절 요청은 MIG가 요청한 모든 GPU VM을 만들 때까지 ACCEPTED 상태로 유지됩니다. 그룹에 있는 모든 GPU VM이 생성되면 요청 상태가 SUCCEEDED로 변경됩니다.

다음 단계