단일 영역에 MIG 만들기


이 문서에서는 단일 영역에서 관리형 인스턴스 그룹(MIG)을 만드는 방법을 설명합니다. 모든 MIG의 VM을 단일 영역에 두면 지연 시간을 최소화하는 데 도움이 되며, 일괄 워크로드와 같은 특정 워크로드에 유용합니다.

이 유형의 MIG를 영역별 MIG라고도 부릅니다.

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 제한사항을 참조하세요.

단일 영역에 MIG 만들기

단일 영역에 MIG를 만들려면 Google Cloud 콘솔, gcloud CLI, Terraform 또는 REST를 사용합니다.

콘솔

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

    인스턴스 그룹으로 이동

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

  2. 인스턴스 그룹 만들기를 클릭합니다.
  3. 스테이트풀(Stateful) MIG를 만들려면 새 관리형 인스턴스 그룹(스테이트풀(Stateful)) 옵션을 선택합니다. 자세한 내용은 스테이트풀(Stateful) MIG를 사용하는 경우를 참조하세요.
  4. 인스턴스 그룹에 이름과 설명(선택사항)을 할당합니다.
  5. 인스턴스 그룹의 인스턴스 템플릿을 선택하거나 새로 만듭니다.
  6. 이 그룹의 VM 수를 지정합니다. 영역 오류가 발생할 경우 애플리케이션을 지원하기에 충분한 VM을 프로비저닝해야 합니다.
  7. 위치에서 , 단일 영역을 선택합니다.
  8. MIG를 만들려는 리전영역을 선택합니다. 리전 인스턴스 템플릿을 선택했으면 리전은 템플릿의 리전에 따라 자동으로 선택됩니다.
  9. 스테이트리스(Stateless) MIG의 경우 자동 확장이 기본적으로 사용 설정됩니다. 자동 확장을 사용하면 그룹에서 사용률에 따라 인스턴스를 자동으로 추가 또는 삭제합니다.
  10. 선택적으로 그룹 내에서 VM에 대해 애플리케이션 기반 상태 확인을 수행하려면 자동 복구를 사용 설정합니다.
  11. 만들기를 클릭하여 새 그룹을 만듭니다.

gcloud

MIG의 각 VM에 대해 원하는 머신 유형, 부팅 디스크 이미지, 네트워크, 기타 VM 속성을 지정하는 인스턴스 템플릿을 아직 만들지 않았으면 인스턴스 템플릿을 만듭니다.

instance-groups managed create 명령어로 관리형 인스턴스 그룹을 만들고 그룹 이름, 그룹 크기, 인스턴스 템플릿, 영역을 지정합니다.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size SIZE \
    --template INSTANCE_TEMPLATE \
    --zone ZONE

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: 이 인스턴스 그룹의 이름입니다.
  • SIZE: 인스턴스 그룹의 크기입니다.
  • INSTANCE_TEMPLATE: 이 그룹에 사용할 인스턴스 템플릿의 이름입니다. 리전 인스턴스 템플릿의 경우 템플릿의 전체 또는 부분 URL을 지정해야 합니다. 전체 URL의 예시는 https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template이고 부분 URL은 projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template입니다.
  • ZONE: Compute Engine에서 사용할 수 있는 영역 중 하나입니다. MIG의 VM을 한 리전의 여러 영역에 배포하려면 리전 MIG 만들기를 참조하세요.

선택적으로 --base-instance-name 플래그를 제공할 수 있습니다. 이러한 VM은 공통 템플릿을 기반으로 하므로 각 VM에는 VM 이름의 일부로 임의의 문자열이 할당됩니다. 이 임의의 문자열 앞에 기본 이름이 옵니다. 예를 들어 기본 이름을 test로 설정하면 VM의 이름은 test-yahstest-qtyz와 같이 지정됩니다. 특정 이름이 필요하면 MIG에 특정 이름으로 인스턴스 만들기를 참조하세요.

예를 들어 다음 명령어는 기본 VM 이름 test를 사용하여 example-group이라는 인스턴스 그룹을 만듭니다. 이 그룹에는 세 개의 인스턴스가 포함됩니다.

gcloud compute instance-groups managed create example-group \
    --base-instance-name test \
    --size 3 \
    --template an-instance-template \
    --zone us-central1-f

Terraform

MIG의 각 VM에 대해 원하는 머신 유형, 부팅 디스크 이미지, 네트워크, 기타 VM 속성을 지정하는 인스턴스 템플릿을 아직 만들지 않았으면 인스턴스 템플릿을 만듭니다.

영역 MIG를 만들려면 google_compute_instance_group_manager 리소스를 사용할 수 있습니다.

resource "google_compute_instance_group_manager" "default" {

  name               = "example-group"
  base_instance_name = "test"
  target_size        = 3
  zone               = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
}

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

REST

MIG의 각 VM에 대해 원하는 머신 유형, 부팅 디스크 이미지, 네트워크, 기타 VM 속성을 지정하는 인스턴스 템플릿을 아직 만들지 않았으면 인스턴스 템플릿을 만듭니다.

instanceGroupManagers.insert 메서드로 관리형 인스턴스 그룹을 만듭니다. 요청 본문에 그룹 이름, 그룹 크기, 인스턴스 템플릿 URL을 포함합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
  ],
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE
}

다음을 바꿉니다.

  • PROJECT_ID: 요청의 프로젝트 ID입니다.
  • ZONE: 요청의 영역입니다. 한 리전에서 여러 영역 간에 MIG의 VM을 분산하려면 zones/ZONEregions/REGION으로 바꾸고 리전을 지정합니다. 자세한 내용은 리전 MIG 만들기를 참조하세요.
  • INSTANCE_GROUP_NAME: 이 인스턴스 그룹의 이름입니다.
  • SIZE: 인스턴스 그룹의 크기입니다.
  • INSTANCE_TEMPLATE: 이 그룹에 사용할 인스턴스 템플릿입니다.

선택적으로 base-name 필드를 제공할 수 있습니다. 이러한 VM은 공통 템플릿을 기반으로 하므로 각 VM에는 VM 이름의 일부로 임의의 문자열이 할당됩니다. 이 임의의 문자열 앞에 기본 이름이 옵니다. 예를 들어 기본 이름을 test로 설정하면 VM의 이름은 test-yahstest-qtyz와 같이 지정됩니다. 특정 이름이 필요하면 MIG에 특정 이름으로 인스턴스 만들기를 참조하세요.

MIG를 구성하고 조치를 취하는 방법에 따라 다양한 정책과 작업이 그룹의 인스턴스에 영향을 미칠 수 있습니다. 실행 중인 관리형 인스턴스를 확인하려면 관리형 인스턴스의 상태 확인을 참조하세요.

다음 단계