정지된 VM 및 중지된 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. Install the Google Cloud CLI, then initialize it by running the following command:

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

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

자동 확장에 MIG API 사용

MIG의 자동 확장에는 Compute Engine 자동 확장 처리를 사용하는 것이 좋습니다. 그러나 어떤 이유로든 다른 자동 확장 처리를 사용하려면 MIG API 엔드포인트를 사용하여 정지된 VM과 중지된 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과 중지된 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과 중지된 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 수

다음 단계