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


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

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

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

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

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.

      REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

제한사항

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

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

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

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

콘솔

  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를 만듭니다.

다음 단계