일시정지 및 중지된 VM을 사용한 수평 확장 가속화


이 문서에서는 일시정지 및 중지된 가상 머신(VM) 인스턴스의 대기 풀이 작동하는 방식과 대기 풀을 사용하여 관리형 인스턴스 그룹(MIG)의 수평 확장을 가속화하는 방법을 설명합니다.

시작하기 전에

  • MIG에서 정지 및 중지된 VM 소개 페이지를 검토합니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 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. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

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

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

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

        gcloud init

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

자동 확장에 MIG API 사용

MIG 자동 확장을 위해 Compute Engine 자동 확장 처리를 사용하는 것이 좋습니다. 다른 이유로 자동 확장 처리를 사용하려는 경우 MIG API의 엔드포인트를 사용하여 일시정지 및 중지된 VM을 처리합니다.

MIG API를 사용하면 GKE 자동 확장 처리와 같은 자동 확장 처리를 연결하고 대기 VM 풀을 활용하여 수평 확장을 빠르게 수행할 수 있습니다.

일시정지된 풀과 중지된 풀 중에서 선택

사용 사례에 따라 일시정지 풀과 중지 풀 중에서 선택할 수 있습니다. 최상의 성능을 위해서는 수평 확장 시나리오에 따라 여러 대기 풀 유형을 실험하여 요구에 가장 적합한 유형을 결정해야 합니다. 워크로드에 따라 다양한 옵션을 제공하는 데 걸리는 시간이 단축될 수 있습니다. 경우에 따라 스토리지에서 VM으로 메모리 상태를 복사하는 작업은 VM을 다시 시작하거나 처음부터 새 VM을 만드는 것보다 오래 걸릴 수 있습니다.

가장 좋은 방법을 찾으려면 다음 가이드라인을 따르세요.

  • 일시정지된 VM은 메모리 상태를 보존하기 때문에 VM에 시간이 오래 걸리는 메모리 초기화가 필요한 경우에는 일시정지된 VM을 사용합니다. 애플리케이션이 일시정지되고 재개될 수 있는지 확인합니다. 메모리 상태를 유지하려면 추가 스토리지가 필요하며 추가 비용이 발생할 수 있습니다.
  • VM 초기화가 주로 영구 디스크에 저장된 데이터 초기화에 중점을 둔 경우에는 중지된 VM을 사용하세요.

MIG에서 대기 정책 수정

이 섹션에서는 초기 지연을 설정하는 방법과 풀을 수평 확장하도록 대기 풀 모드를 설정하는 방법을 설명합니다.

콘솔

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

    인스턴스 그룹으로 이동

  2. 목록의 이름 열에서 대기 정책을 수정할 인스턴스 그룹의 이름을 클릭합니다.

  3. 수정을 클릭하여 이 관리형 인스턴스 그룹을 수정합니다.

  4. 고급 구성 표시를 클릭합니다.

  5. 대기 풀 섹션의 모드에서 수평 확장을 선택합니다.

  6. 초기 지연 필드에 VM을 일시정지하거나 중지하기 전에 MIG가 기다려야 하는 시간(초)을 입력합니다. 초기 지연은 초기화 스크립트에서 VM이 빠르게 수평 확장될 수 있도록 준비하는 시간을 제공합니다.

  7. 저장을 클릭합니다.

gcloud

beta instance-groups managed update 명령어를 사용하고 작업 모드 및 초기 지연을 지정합니다.

gcloud beta compute instance-groups managed update MIG_NAME \
  --standby-policy-mode=scale-out-pool \
  --standby-policy-initial-delay=DELAY \
  [--region=REGION | --zone=ZONE]

다음을 바꿉니다.

  • MIG_NAME: MIG 이름
  • DELAY: VM을 일시정지하거나 중지하기 전에 MIG가 기다려야 하는 시간(초). 초기 지연은 초기화 스크립트에서 VM이 빠르게 수평 확장될 수 있도록 준비하는 시간을 제공합니다.
  • REGION: 리전 MIG의 경우 MIG가 위치한 리전
  • ZONE: 영역 MIG의 경우 MIG가 위치한 영역

API

instanceGroupManager.update 메서드를 사용하고 요청 본문에 작업 모드와 초기 지연을 지정합니다. 리전 MIG의 경우 regionInstanceGroupManager.update 메서드를 사용합니다.

PUT https://www.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"standbyPolicy": {
  "mode": "SCALE_OUT_POOL",
  "initialDelaySec": DELAY
}
// ...
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID
  • MIG_NAME: MIG 이름
  • DELAY: VM을 일시정지하거나 중지하기 전에 MIG가 기다려야 하는 시간(초). 초기 지연은 초기화 스크립트에서 VM이 빠르게 수평 확장될 수 있도록 준비하는 시간을 제공합니다.
  • REGION: 리전 MIG의 경우 MIG가 위치한 리전
  • ZONE: 영역 MIG의 경우 MIG가 위치한 영역

MIG에서 대기 풀 크기 조절

이 섹션에서는 MIG에서 일시정지 및 중지된 VM의 풀 크기를 조절하는 방법을 설명합니다.

콘솔

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

    인스턴스 그룹으로 이동

  2. 목록의 이름 열에서 대기 풀 크기를 수정할 인스턴스 그룹의 이름을 클릭합니다.

  3. 수정을 클릭하여 이 관리형 인스턴스 그룹을 수정합니다.

  4. 고급 구성 표시를 클릭합니다.

  5. 대기 풀 섹션에서 일시정지된 VM중지된 VM 필드에 새 크기를 입력합니다.

  6. 저장을 클릭합니다.

gcloud

instance-groups managed resize 베타 명령어--suspended-size--stopped-size 플래그와 함께 사용합니다.

gcloud beta compute instance-groups managed resize MIG_NAME \
--suspended-size=SUSPENDED_SIZE \
--stopped-size=STOPPED_SIZE \
[--region=REGION | --zone=ZONE]

다음을 바꿉니다.

  • MIG_NAME: 인스턴스를 일시정지할 MIG의 이름
  • SUSPENDED_SIZE: MIG가 특정 시점에 유지해야 하는 일시정지된 VM 수
  • STOPPED_SIZE: MIG가 특정 시점에 유지해야 하는 중지된 VM 수
  • REGION: 리전 MIG의 경우 MIG가 위치한 리전
  • ZONE: 영역 MIG의 경우 MIG가 위치한 영역

API

instanceGroupManager.update 메서드를 사용하고 요청 본문에서 일시정지 및 중지된 VM의 풀 크기를 지정합니다. 리전 MIG의 경우 regionInstanceGroupManager.update 메서드를 사용합니다.

PUT https://www.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}

다음을 바꿉니다.

  • PROJECT_ID: 요청의 프로젝트 ID
  • ZONE: 영역 MIG의 경우 MIG가 위치한 영역
    • 리전 MIG의 경우 zones/ZONEregions/REGION으로 바꾸고 MIG의 리전을 지정합니다.
  • MIG_NAME: 인스턴스를 중지할 MIG의 이름
  • SUSPENDED_SIZE: MIG가 특정 시점에 유지해야 하는 일시정지된 VM 수
  • STOPPED_SIZE: MIG가 특정 시점에 유지해야 하는 중지된 VM 수

다음 단계