리전 MIG에서 사전 VM 재분산 사용 중지 및 다시 사용 설정


리전 관리형 인스턴스 그룹(MIG)에서 리전에서 선택한 영역 전반에 짝수 개의 가상 머신(VM) 인스턴스를 유지하려면 사전 인스턴스 재분산을 사용합니다. 이 구성 옵션은 영역 수준 장애 발생 시 애플리케이션의 가용성을 최대화합니다.

리전 MIG의 경우 사전 인스턴스 재분산이 기본적으로 설정되어 있습니다. 사전 인스턴스 재분산이 해제되어 있으면 그룹은 여러 영역에 걸쳐 사전에 VM을 재분산하려고 시도하지 않습니다. 사전 인스턴스 재분산 해제는 다음과 같은 경우에 유용합니다.

  • 실행 중인 다른 VM에 영향을 주지 않고 그룹에서 VM을 삭제하거나 폐기해야 하는 경우. 예를 들어 다른 작업자에 영향을 주지 않고 작업 완료 후 일괄 작업자 VM을 삭제할 수 있습니다.
  • 스테이트풀(Stateful) 워크로드가 있는 VM을 사전 재분산으로 인한 원치 않는 자동 삭제로부터 보호해야 하는 경우
  • MIG의 목표 분배 형태BALANCED 또는 ANY_SINGLE_ZONE으로 설정해야 하는 경우

리전 MIG를 만들 때 사전 인스턴스 재분산을 중지할 수 있습니다. 기존 리전 MIG에 사용 설정하거나 사용 중지할 수도 있습니다.

시작하기 전에

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

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

    콘솔

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

    gcloud

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

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

    REST

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

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

      gcloud init

사전 인스턴스 재분산이 중지된 그룹 만들기

사전 인스턴스 재분산이 사용 중지된 리전별 MIG를 만들려면 Google Cloud 콘솔, gcloud CLI, Terraform 또는 REST를 사용합니다.

콘솔

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

    인스턴스 그룹 페이지로 이동

  2. 인스턴스 그룹 만들기를 클릭하여 새 인스턴스 그룹을 만듭니다.
  3. 인스턴스 그룹에 이름과 설명(선택사항)을 할당합니다.
  4. 인스턴스 그룹의 인스턴스 템플릿을 선택하거나 새로 만듭니다.
  5. 이 그룹의 VM 수를 지정합니다. 가용성이 높은 워크로드의 경우 영역 오류가 발생할 경우 애플리케이션을 지원하기에 충분한 VM을 프로비저닝해야 합니다.
  6. 위치에서 다중 영역을 선택합니다.
  7. 리전을 선택하고 사용할 영역을 선택합니다.
  8. 사전 인스턴스 재분산을 사용 중지하려면 인스턴스 재분산 아래에서 인스턴스 재분산 허용 체크박스의 선택을 해제하세요.
  9. MIG 만들기 프로세스의 나머지 과정을 계속 진행합니다.

gcloud

사전 인스턴스를 재분산하지 않고 새 리전 MIG를 만들려면 NONE으로 설정된 --instance-redistribution-type 플래그와 함께 gcloud compute instance-groups managed create 명령어를 사용합니다.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE_NAME \
    --size TARGET_SIZE \
    --zones ZONES \
    --instance-redistribution-type NONE

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: MIG 이름
  • INSTANCE_TEMPLATE_NAME: 그룹에 사용할 인스턴스 템플릿의 이름
  • TARGET_SIZE: 그룹의 대상 크기
  • ZONES: VM을 분배할 단일 리전의 영역 목록

예를 들면 다음과 같습니다.

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

Terraform

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

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

리전 MIG에서 사전 인스턴스 재분산을 중지하려면 update_policy 블록을 포함하고 instance_redistribution_type 필드를 NONE으로 설정합니다.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  target_size        = 30
  base_instance_name = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

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

REST

사전 인스턴스를 재분산하지 않고 자동 확장되지 않는 리전 MIG를 만들려면 regionInstanceGroupManagers.insert 메서드에 POST 요청을 수행합니다. 요청 본문에 updatePolicy 속성을 포함하고 instanceRedistributionType 필드를 NONE으로 설정합니다.

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

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

다음을 바꿉니다.

  • PROJECT_ID: 이 요청의 프로젝트 ID
  • REGION: 인스턴스 그룹의 리전
  • INSTANCE_GROUP_NAME: MIG 이름
  • INSTANCE_TEMPLATE_NAME: 그룹에 사용할 인스턴스 템플릿의 이름
  • TARGET_SIZE: 인스턴스 그룹의 대상 크기
  • ZONE: VM을 분배할 단일 리전의 영역 이름

사전 인스턴스 재분산 중지

사전 인스턴스 재분산을 사용 중지하거나 다시 사용 설정하려면 Google Cloud 콘솔, gcloud CLI, REST를 사용합니다.

콘솔

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

    인스턴스 그룹 페이지로 이동

  2. 목록의 이름 열에서 수정하려는 인스턴스 그룹의 이름을 클릭합니다.
  3. 수정을 클릭하여 이 관리형 인스턴스 그룹을 수정합니다.
  4. 인스턴스 재분산에서 인스턴스 재분산 허용 체크박스를 선택 해제합니다.
  5. 저장을 클릭합니다.

gcloud

사전 인스턴스 재분산을 중지하려면 다음과 같이 명령어를 사용하여 --instance-redistribution-type 플래그를 NONE로 설정합니다.

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: MIG 이름
  • REGION: 인스턴스 그룹의 리전

REST

사전 인스턴스 재분산을 중지하려면 다음과 같이 메서드를 사용하여 instanceRedistributionType 필드를 NONE으로 설정합니다.

  • 모드OFF 또는 ONLY_SCALE_OUT으로 설정된 자동 확장되지 않는 리전 MIG 또는 자동 확장된 리전 MIG의 경우 regionInstanceGroupManagers.patch 메서드를 사용하세요.

    예를 들면 다음과 같습니다.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
    
    {
     "updatePolicy": {
        "instanceRedistributionType": "NONE"
     }
    }
    
  • 모드ON으로 설정된 자동 확장된 리전 MIG의 경우 베타 regionInstanceGroupManagers.patch 메서드를 사용합니다.

    예를 들면 다음과 같습니다.

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
    
    {
     "updatePolicy": {
          "instanceRedistributionType": "NONE"
      }
    }
    

다음을 바꿉니다.

  • PROJECT_ID: 이 요청의 프로젝트 ID
  • REGION: 인스턴스 그룹의 리전
  • INSTANCE_GROUP_NAME: MIG 이름

사전 인스턴스 재배포 사용 설정

사전 인스턴스 재분산을 사용 설정하려면 사전 인스턴스 재분산 중지와 유사한 명령어를 사용하되 인스턴스 재분산 유형을 PROACTIVE로 설정합니다.

일부 관리형 인스턴스를 수동으로 삭제하거나 폐기하여 리전에서 VM이 불균일하게 분배되는 경우 사전 인스턴스 재분산을 다시 사용 설정하려면 먼저 그룹을 수동으로 재조정해야 합니다. 두 영역의 VM 수가 VM 1개 넘게 차이가 나면 안 됩니다.

리전 MIG에서는 VM이 여러 영역에 균일하지 않게 분배되어 있으면(두 영역의 VM 수가 VM 2개 이상 차이 나는 경우) 사전 인스턴스 재분산을 사용 설정할 수 없습니다. 이는 VM이 더 많이 있는 영역에서 의도하지 않은 VM 자동 삭제를 방지하기 위함이며 균일하게 분배되도록 트리거됩니다.

다음 단계