VM이 리전의 여러 영역에 있는 MIG 만들기


이 문서에서는 한 리전의 여러 영역에 VM이 확산된 관리형 인스턴스 그룹(MIG)을 만드는 방법을 설명합니다. 애플리케이션 로드를 여러 영역 간에 분산하면 영역 장애로부터 워크로드가 보호됩니다. 영역 장애가 발생하더라도 동일 리전에 있는 남은 사용 가능한 영역에서 실행되는 인스턴스에서 애플리케이션이 계속 실행될 수 있습니다.

이 유형의 MIG를 리전별 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 제한사항을 참조하세요.

VM이 리전의 여러 영역에 있는 MIG 만들기

Google Cloud 콘솔, gcloud CLI, Terraform 또는 REST를 사용합니다.

콘솔

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

    인스턴스 그룹으로 이동

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

  2. 인스턴스 그룹 만들기를 클릭하여 새 인스턴스 그룹을 만듭니다.
  3. 새 관리형 인스턴스 그룹 옵션 중 하나를 선택합니다.
  4. 인스턴스 그룹에 이름과 설명(선택사항)을 할당합니다.
  5. 인스턴스 그룹의 인스턴스 템플릿을 선택하거나 새로 만듭니다.
  6. 인스턴스 수 또는 자동 확장에서 이 그룹의 인스턴스 수를 지정합니다. 영역 오류가 발생할 경우 애플리케이션을 지원하기에 충분한 VM을 프로비저닝해야 합니다.
  7. 위치에서 여러 영역을 선택합니다.
  8. 리전을 선택하고 사용할 영역을 선택합니다. 리전 인스턴스 템플릿을 선택했으면 리전은 템플릿의 리전에 따라 자동으로 선택됩니다.
  9. 목표 분산 형태에서 균등을 선택합니다. 다른 형태를 선택하려면 리전 MIG의 VM에 대한 목표 분산 형태 설정을 참조하세요.
  10. 사전 인스턴스 재배포를 사용 중지하려는 경우 인스턴스 재분산 아래에서 인스턴스 재분산 허용 체크박스의 선택을 해제하세요.
  11. MIG 만들기 프로세스의 나머지 과정을 계속 진행합니다.
  12. MIG를 만들려면 만들기를 클릭합니다.

gcloud

모든 MIG에는 인스턴스 템플릿이 필요합니다. 인스턴스 템플릿이 없는 경우 하나를 만듭니다. 예를 들어 다음 명령어는 기본 속성으로 기본 인스턴스 템플릿을 만듭니다.

gcloud compute instance-templates create example-template

그런 다음 --region 플래그와 함께 instance-groups managed create 명령어를 사용합니다. 예를 들어 다음 명령어는 us-east1 리전 내 영역 세 개에 리전 MIG를 만듭니다.

gcloud compute instance-groups managed create example-rmig \
    --template example-template  \
    --size 30 \
    --region us-east1

그룹에서 사용해야 하는 특정 영역을 선택하려면 다음과 같이 --zones 플래그를 지정합니다.

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c

사전 인스턴스 재분산을 사용 중지하려면 사전 인스턴스 재분산 중지를 참조하세요.

Terraform

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

리전 MIG를 만들려면 google_compute_region_instance_group_manager 리소스를 사용하면 됩니다.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  target_size               = 30
  base_instance_name        = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

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

REST

모든 MIG에는 인스턴스 템플릿이 필요합니다. 인스턴스 템플릿이 없는 경우 하나를 만듭니다.

다음으로 regionInstanceGroupManagers.insert 메서드에 대한 POST 요청을 작성합니다. 요청 본문에서 그룹 이름, 그룹 크기, 인스턴스 템플릿의 URL을 지정합니다. 원하는 경우 그룹 내 인스턴스의 기본 이름과 같은 다른 필드를 지정합니다.

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

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

다음을 바꿉니다.

  • PROJECT_ID: 이 요청의 프로젝트 ID입니다.
  • REGION: 그룹의 리전입니다.
  • BASE_INSTANCE_NAME: (선택사항) 그룹의 일부로 생성되는 각 VM 인스턴스의 인스턴스 이름입니다. 예를 들어 example-instance의 기본 인스턴스 이름은 example-instance-[RANDOM_STRING]과 같은 이름의 인스턴스를 만듭니다. 여기서 [RANDOM_STRING]은 서버에서 생성됩니다.
  • INSTANCE_TEMPLATE_NAME: 사용할 인스턴스 템플릿입니다. 리전 인스턴스 템플릿의 경우 템플릿의 전체 또는 부분 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입니다.
  • INSTANCE_GROUP_NAME: MIG 이름
  • TARGET_SIZE: 그룹의 대상 VM 수입니다.

특정 영역을 선택하려는 경우나 영역이 세 개보다 적거나 많은 리전에 VM을 만들려는 경우 요청에 distributionPolicy 속성을 포함하고 영역 목록을 지정합니다. ZONE을 VM을 만들 영역의 이름으로 바꿉니다.

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

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE",
  "distributionPolicy": {
     "zones": [
       {"zone": "zones/ZONE"},
       {"zone": "zones/ZONE"}
      ]
   }
}

예를 들어 다음은 us-east1-bus-east1-c 영역에 배포된 관리형 인스턴스가 10개 있는 example-rmig라는 리전 MIG를 만듭니다.

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers

{
  "instanceTemplate": "global/instanceTemplates/example-instance",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

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

각 영역의 용량이 그룹의 VM을 지원하는 데 부족하면 Compute Engine은 최대한 많은 VM을 만들고 추가 용량을 사용할 수 있게 되면 계속 잔여 VM을 만들려고 합니다.

요청에서 개별 영역을 명시적으로 지정하지 않으면 Compute Engine은 VM을 만들 영역을 3개 선택합니다. 세 개보다 많거나 적은 영역에 VM을 만들어야 하거나 사용할 영역을 선택하려면 요청에 영역 목록을 제공하면 됩니다. 자세한 내용은 영역 선택을 참조하세요.

영역 간 VM 배포

기본적으로 리전별 MIG는 선택한 영역 간에 VM을 균등하게 배포합니다. 리전 MIG를 만들 때는 먼저 특정 리소스가 GPU와 기존 영구 디스크처럼 영역별로 구성된다는 점을 염두에 두어야 합니다. MIG의 인스턴스 템플릿이 영역 리소스를 지정하는 경우 해당 리소스가 리전 MIG에 의해 생성된 VM에 연결될 수 있도록 선택된 모든 영역에서 리소스가 표시되도록 해야 합니다. 또는 그룹에서 영역별 리소스의 존재 여부를 확인하려면 MIG의 목표 분산 형태를 설정하여 해당 인스턴스가 포함된 영역에만 인스턴스를 만들면 됩니다.

자세한 내용은 다음 문서를 참조하세요.

사전 인스턴스 재배포

사전 인스턴스 재분산은 기본적으로 사용 설정됩니다. 각 영역에서 VM 수를 수동으로 관리해야 하거나 MIG의 목표 분산 형태를 BALANCED 또는 ANY_SINGLE_ZONE으로 설정해야 하는 경우에는 사전 인스턴스 재분산을 중지해야 합니다.

자세한 내용은 다음 문서를 참조하세요.

다음 단계