여러 머신 유형으로 MIG 만들기


이 문서에서는 MIG에서 여러 머신 유형을 지정할 수 있는 인스턴스 유연성이 있는 관리형 인스턴스 그룹 (MIG)을 만드는 방법을 설명합니다.

인스턴스 유연성은 특히 다양한 머신 유형에서 작동할 수 있고 대규모 용량 또는 수요가 많은 하드웨어가 필요한 애플리케이션의 경우 리소스 가용성을 개선하는 데 도움이 됩니다. 자세한 내용은 인스턴스 유연성 정보를 참고하세요.

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 만들기

콘솔

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

    인스턴스 그룹으로 이동

  2. 인스턴스 그룹 만들기를 클릭합니다.

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

  4. 인스턴스 템플릿 목록에서 MIG에 사용할 인스턴스 템플릿을 선택합니다.

  5. 인스턴스 수를 지정하고 인스턴스 선택을 추가하려면 먼저 다음을 실행해야 합니다.

    1. 다음과 같이 위치를 설정합니다.

      1. 위치 섹션으로 더 스크롤하여 다중 영역을 선택합니다.

      2. 리전영역 드롭다운에서 MIG에서 VM을 만들 리전과 영역을 선택합니다. 리전 인스턴스 템플릿을 선택한 경우 해당 템플릿의 리전이 기본적으로 선택됩니다.

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

      4. 대화상자가 열리면 인스턴스 재배포 사용 중지를 클릭합니다.

    2. 다음과 같이 자동 확장 구성을 삭제합니다.

      1. 자동 확장 섹션의 자동 확장 모드 드롭다운에서 자동 확장 구성 삭제를 클릭합니다.

      2. 대화상자가 열리면 삭제를 클릭합니다.

    3. 인스턴스 수 필드로 다시 스크롤합니다.

  6. 인스턴스 수 필드에 그룹에 포함할 VM 수를 지정합니다.

  7. 인스턴스 선택 섹션에서 인스턴스 선택 추가를 클릭합니다.

    인스턴스 선택 창이 열립니다.

    1. 인스턴스 선택 추가를 클릭합니다.

    2. 새 인스턴스 선택 섹션에서 다음을 수행합니다.

      1. 이름 필드에 인스턴스 선택의 이름을 입력합니다.

      2. 머신 유형 섹션에서 머신 유형 추가를 클릭하고 인스턴스 선택에 추가할 머신 유형을 선택한 다음 완료를 클릭합니다.

        인스턴스 선택에 추가하려는 머신 유형마다 이 단계를 반복합니다.

      3. 인스턴스 선택에 머신 유형을 추가한 후 완료를 클릭합니다.

  8. 인스턴스 선택 창에서 완료를 클릭합니다.

  9. 다른 필드는 기본 설정으로 둡니다. 필요에 따라 수정할 수도 있습니다.

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

gcloud

여러 머신 유형으로 리전 MIG를 만들려면 다음과 같이 instance-groups managed create 명령어를 사용합니다.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --region REGION \
    --size TARGET_SIZE \
    --template INSTANCE_TEMPLATE \
    --target-distribution-shape SHAPE \
    --instance-redistribution-type none \
    --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...

영역 MIG는 인스턴스 유연성을 지원하지 않습니다. 단일 영역에 MIG를 만들려면 목표 분산 형태를 any-single-zone로 설정하세요. 또한 특정 영역을 사용하려면 any-single-zone 배포 도형을 사용하고 --zones ZONE 플래그를 포함합니다.

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: MIG 이름
  • REGION: MIG를 만들려는 리전입니다.
  • TARGET_SIZE: MIG가 만들고 유지하려는 VM 수입니다.
  • INSTANCE_TEMPLATE: 인스턴스 템플릿의 이름입니다.
  • SHAPE: 목표 분산 형태. 값은 balanced 또는 any-single-zone일 수 있습니다. 다른 타겟 배포 도형은 지원되지 않습니다.
  • MACHINE_TYPE: MIG에서 구성하려는 머신 유형입니다(예: n1-standard-16,n2-standard-16,e2-standard-16).

Terraform

MIG의 각 VM에 대해 원하는 VM 속성을 지정하는 인스턴스 템플릿을 아직 만들지 않았으면 인스턴스 템플릿을 만듭니다.

여러 머신 유형으로 리전 MIG를 만들려면 google_compute_region_instance_group_manager 리소스를 사용하세요.

resource "google_compute_region_instance_group_manager" "default" {
  name               = "flex-igm"
  base_instance_name = "tf-test-flex-igm"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "ANY_SINGLE_ZONE"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_flexibility_policy {
    instance_selections {
      name          = "default-instance-selection"
      machine_types = ["n1-standard-16", "n2-standard-16", "e2-standard-16"]
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

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

REST

여러 머신 유형이 있는 리전 MIG를 만들려면 regionInstanceGroupManagers.insert 메서드POST 요청을 실행합니다.

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

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": TARGET_SIZE,
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "distributionPolicy": {
    "targetShape": "SHAPE"
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2",
          ...
        ]
      }
    }
  }
}

영역 MIG는 인스턴스 유연성을 지원하지 않습니다. 단일 영역에 MIG를 만들려면 목표 분산 형태를 ANY_SINGLE_ZONE로 설정하세요. 또한 특정 영역을 원하는 경우 ANY_SINGLE_ZONE 배포 도형을 사용하고 요청에 distributionPolicy.zones[].zone 필드를 포함합니다.

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: MIG를 만들려는 리전입니다.
  • INSTANCE_GROUP_NAME: MIG 이름
  • TARGET_SIZE: MIG가 만들고 유지하려는 VM 수입니다.
  • INSTANCE_TEMPLATE_URL: 인스턴스 템플릿의 URL입니다.
  • SHAPE: 목표 분산 형태. 값은 BALANCED 또는 ANY_SINGLE_ZONE일 수 있습니다. 다른 타겟 배포 도형은 지원되지 않습니다.
  • INSTANCE_SELECTION: 머신 유형 목록의 이름입니다.
  • MACHINE_TYPE: MIG에서 구성하려는 머신 유형입니다(예: "n1-standard-16","n2-standard-16","e2-standard-16").

다음 단계