선점형 VM을 사용하는 MIG 만들기


이 문서에서는 선점형 가상 머신(VM) 인스턴스를 사용하는 관리형 인스턴스 그룹(MIG)을 만드는 방법을 설명합니다. 선점형 VM은 워크로드에 중단이 허용되고 선점형 VM의 비용 절감 이점을 활용하려는 경우에 유용합니다.

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

시작하기 전에

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

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

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

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

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

    Terraform

    로컬 개발 환경에서 이 페이지의 Terraform 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.

    1. Google Cloud CLI를 설치합니다.
    2. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

      gcloud init
    3. Google 계정의 로컬 인증 사용자 인증 정보를 만듭니다.

      gcloud auth application-default login

    자세한 내용은 로컬 개발 환경의 인증 설정를 참조하세요.

    REST

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

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

      gcloud init

제한사항

사용하는 구성에 따라 달라지는 MIG 제한사항의 전체 목록을 보려면 MIG 제한사항을 참조하세요.

선점형 VM을 사용하는 인스턴스 템플릿 만들기

영역 또는 리전 MIG를 사용하여 여러 선점형 VM을 신속하게 만들 수 있으며 관리형 인스턴스 그룹에서 VM의 비용을 줄일 수 있습니다. 예를 들어 선점형 VM의 그룹을 만들고 이를 사용하여 일괄 처리 태스크를 실행한 후 태스크가 완료되면 그룹을 삭제할 수 있습니다.

선점형 VM 그룹을 만들려면 인스턴스 템플릿에서 선점형 옵션을 설정한 후 템플릿을 사용하여 MIG를 만듭니다.

Console

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

    인스턴스 템플릿으로 이동

    나머지 단계는 Google Cloud 콘솔에서 자동으로 표시됩니다.

  2. 인스턴스 템플릿 만들기를 클릭합니다.
  3. 인스턴스 템플릿에 원하는 속성을 입력합니다.
  4. 고급 옵션을 클릭하고 관리 섹션을 펼칩니다.
  5. 가용성 정책VM 프로비저닝 모델 목록에서 Spot을 선택합니다.
  6. 만들기를 클릭하여 템플릿을 만듭니다.

gcloud

instance-templates create 명령어를 사용하여 인스턴스 템플릿을 만듭니다. --preemptible 플래그를 포함합니다.

gcloud compute instance-templates create INSTANCE_TEMPLATE \
    --preemptible

Terraform

다음 샘플은 전역 인스턴스 템플릿을 만듭니다. 선점형 옵션을 제공하려면 scheduling 블록을 포함합니다. 샘플에 사용된 리소스에 대한 자세한 내용은 google_compute_instance_template 리소스를 참조하세요. 리전 인스턴스 템플릿을 만들려면 google_compute_region_instance_template 리소스를 사용합니다.

resource "google_compute_instance_template" "default" {
  name         = "preemptible-template"
  machine_type = "n1-standard-1"
  disk {
    source_image = "debian-cloud/debian-11"
  }
  network_interface {
    network = "default"
  }
  scheduling {
    preemptible       = "true"
    automatic_restart = "false"
  }
}

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

REST

instanceTemplates.insert 메서드를 호출하여 새 인스턴스 템플릿을 만듭니다. scheduling.preemptible 속성을 포함하고 true로 설정합니다.

{
"name": "INSTANCE_TEMPLATE",
"properties": {
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs":
      [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "scheduling":
  {
    "preemptible": true
  },
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-9"
      }
    }
  ]
  }
}

인스턴스 템플릿을 만든 후 이를 사용하여 단일 영역에 국한된 VM 사용 또는 VM이 한 리전의 여러 영역에 분산된 MIG를 만듭니다.

다음 단계