인스턴스 그룹 자동 확장

관리형 인스턴스 그룹(MIG)은 부하의 증가 또는 감소에 따라 MIG에서 가상 머신(VM) 인스턴스를 자동으로 추가하거나 삭제할 수 있게 해주는 자동 확장 기능을 제공합니다. 자동 확장을 통해 앱에서 트래픽 증가 처리가 원활해지고, 리소스에 대한 요구가 줄면 비용을 절감할 수 있습니다. 자동 확장 정책을 정의하면 자동 확장 처리에서 측정된 부하 및 구성한 옵션을 기준으로 자동 확장을 수행합니다.

자동 확장은 부하가 많아지면 MIG에 VM을 추가(수평 확장, 경우에 따라 수직 확장이라고도 함)하고, VM 수요가 줄면 VM을 삭제(수평/수직 축소)하는 방식으로 작동합니다.

사양

  • 자동 확장은 관리형 인스턴스 그룹(MIG)에서만 작동합니다. 비관리형 인스턴스 그룹에서는 지원되지 않습니다.
  • 리전 MIG를 자동 확장하려는 경우 다음 제한사항이 적용됩니다.
    • 그룹의 목표 분산 형태EVEN으로 설정해야 합니다.
    • 수평 축소 및 확장하려면 사전 인스턴스 재분산을 사용 설정해야 합니다. 수평 확장만 가능하도록 자동 확장 처리의 모드를 설정한 경우 사전 인스턴스 재배포를 사용 설정할 필요가 없습니다.
  • 자동 확장을 사용하는 동안에는 특정 이름을 가진 인스턴스를 생성할 수 없습니다. 그러나 특정 이름을 가진 VM 인스턴스를 만든 후에는 자동 확장 처리를 사용 설정할 수 있습니다.
  • MIG에 스테이트풀(Stateful) 구성이 있는 경우 자동 확장을 사용할 수 없습니다.
  • Google Kubernetes Engine이 소유하는 MIG에는 Compute Engine 자동 확장을 사용하지 마세요. Google Kubernetes Engine 그룹의 경우에는 클러스터 자동 확장을 대신 사용합니다.

    그룹이 GKE 클러스터의 일부인지 확실하지 않으면 MIG 이름에서 gke 프리픽스를 찾습니다. 예를 들면 gke-test-1-3-default-pool-eadji9ah입니다.

  • 자동 확장 처리는 여러 측정항목을 기준으로 확장 결정을 내릴 수 있지만 측정항목 유형 하나당 신호 하나씩만 처리할 수 있습니다. 단, Cloud Monitoring 측정항목은 예외로, Monitoring 측정항목을 기준으로 신호를 5개까지 처리할 수 있습니다. 자동 확장 처리는 각 신호에 권장되는 가상 머신 수를 계산한 다음 그룹의 최대 가상 머신 수를 제시하는 신호에 따라 확장됩니다.

  • 자동 확장은 자동 복구와 독립적으로 작동합니다. 그룹에 자동 복구를 구성하고 인스턴스가 상태 확인에 실패하면 자동 복구 기능이 인스턴스를 다시 만들려고 시도합니다. 인스턴스가 다시 생성되면 그룹의 인스턴스 수가 지정된 자동 확장 임곗값(minNumReplicas) 아래로 떨어질 수 있습니다.

  • 리전 MIG를 자동 확장하는 경우 인스턴스를 영역에 추가한 후 영역 중 하나에서 즉시 삭제할 수 있습니다. 영역의 사용률이 수평 확장을 트리거하되 리전 MIG의 전체 사용률에는 추가 인스턴스가 필요하지 않거나 다른 영역에 추가 인스턴스가 필요한 경우에 이 문제가 발생합니다.

기본 요건

자동 확장 처리는 Compute Engine 서비스 에이전트를 사용하여 그룹의 인스턴스를 추가하거나 삭제합니다. Google Cloud는 Compute Engine API가 사용 설정되었을 때 Compute Engine 서비스 에이전트 역할에 대한 IAM 정책 binding은 물론 이 서비스 계정을 만듭니다.

계정을 삭제한 경우와 같이 프로젝트에 이 계정이 누락되었으면 이를 수동으로 추가할 수 있습니다.

Console

  1. Cloud Console에서 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. 추가를 클릭합니다.

  3. service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com을 입력합니다.

  4. Compute Engine 서비스 에이전트 역할을 선택하세요.

  5. 저장을 클릭합니다.

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
   --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
   --role roles/compute.serviceAgent

기초

자동 확장에서 사용하는 기초적인 개념 및 서비스는 다음과 같습니다.

관리형 인스턴스 그룹

자동 확장은 관리형 인스턴스 그룹(MIG)의 기능입니다. 관리형 인스턴스 그룹은 공통 인스턴스 템플릿에서 생성되는 가상 머신(VM) 인스턴스의 모음입니다. 자동 확장 처리는 그룹의 자동 확장 정책에 따라 관리형 인스턴스 그룹에서 인스턴스를 추가하거나 삭제합니다. Compute Engine에는 관리형 인스턴스 그룹과 비관리형 인스턴스 그룹이 모두 있지만 자동 확장 처리는 관리형 인스턴스 그룹에서만 사용할 수 있습니다.

관리형 인스턴스 그룹과 비관리형 인스턴스 그룹의 차이를 이해하려면 인스턴스 그룹을 참조하세요.

관리형 인스턴스 그룹을 만드는 방법을 알아보려면 MIG 만들기를 참조하세요.

자동 확장 정책

그룹에 대해 자동 확장 정책을 정의할 때는 자동 확장 처리가 그룹 확장을 위해 사용하는 하나 이상의 신호를 지정합니다. 한 정책에 여러 신호를 설정할 때 자동 확장 처리는 각 신호에 대해 권장되는 VM 수를 계산하고 그룹의 권장 크기를 가장 큰 숫자로 설정합니다.

다음 섹션에서는 대상 활용도 측정항목에 기반한 신호 개요 및 일정 기반 신호 개요를 제공합니다.

대상 사용률 측정항목

인스턴스 그룹의 로드를 반영하는 하나 이상의 다음 측정항목을 기준으로 자동 확장할 수 있습니다.

  • 평균 CPU 사용률
  • HTTP 부하 분산 제공 용량: 이 값은 초당 사용률 또는 요청 수를 기준으로 합니다.
  • Cloud Monitoring 측정항목

자동 확장 처리는 선택한 사용률 측정항목을 기준으로 사용량 정보를 지속적으로 수집하고, 실제 사용률을 원하는 대상 사용률과 비교하고, 이 정보를 사용하여 그룹에서 인스턴스를 삭제(수평 축소) 또는 추가(수평 확장)해야 하는지 결정합니다.

목표 사용률 수준은 가상 머신 인스턴스를 유지하려는 수준입니다. 예를 들어 CPU 사용률을 기준으로 확장하는 경우 목표 사용률 수준을 75%로 설정해 두면 자동 확장 처리에서는 지정한 인스턴스 그룹의 CPU 사용률을 75%로 유지하거나 그에 가깝게 유지합니다. 사용률 수준은 자동 확장 정책에 따라 측정항목별로 다르게 해석됩니다.

대상 사용률 측정항목을 기준으로 하는 확장에 대한 자세한 내용은 다음 페이지를 참조하세요.

일정

일정 기반 자동 확장을 사용하여 예상 로드에 용량을 할당할 수 있습니다. 확장 일정은 인스턴스 그룹별로 최대 128개까지 지정할 수 있습니다. 각 확장 일정에 대해 다음을 지정합니다.

  • 용량: 최소 필수 VM 인스턴스
  • 일정: 시작 시간, 기간, 반복(예: 한 번, 매일, 매주 또는 매월)

각 확장 일정은 시작 시간부터 구성된 기간 동안 활성화됩니다. 이 시간 동안 자동 확장 처리는 최소한 확장 일정으로 정의된 인스턴스 수 이상을 갖도록 그룹을 확장합니다.

자세한 내용은 일정을 기준으로 확장을 참조하세요.

대기 기간

대기 기간은 애플리케이션 초기화 기간이라고도 합니다. 애플리케이션이 인스턴스에서 초기화되는 동안 인스턴스 사용 데이터에 일반적인 상황이 반영되지 않을 수 있습니다. 따라서 자동 확장 처리는 다음과 같은 방법으로 확장을 위한 대기 기간을 사용합니다.

  • 수평 축소의 경우, 자동 확장 처리는 대기 기간 내에 있는 인스턴스를 비롯한 모든 인스턴스의 사용 데이터를 고려합니다. 자동 확장 처리는 모든 인스턴스의 평균 사용량이 목표 사용량보다 낮은 경우 인스턴스를 삭제하는 것을 권장합니다.
  • 수평 확장 결정의 경우, 자동 확장 처리는 대기 기간 내에 있는 인스턴스의 사용 데이터를 무시합니다.
  • 예측 모드를 사용 설정하는 경우 대기 기간은 예측 자동 확장 처리가 예상 부하에 앞서 수평 확장되도록 알려 부하 도착 시 애플리케이션이 초기화되도록 합니다. 예를 들어 대기 기간을 300초로 설정한 경우 예측 자동 확장 처리가 예상 부하에 5분 앞서 VM을 만듭니다.

인스턴스에서 애플리케이션을 초기화하는 데 걸리는 시간을 나타내는 대기 기간을 지정합니다. 기본적으로 대기 기간은 60초입니다.

실제 초기화 시간은 다양한 요인에 따라 달라집니다. 애플리케이션이 초기화되는 데 걸리는 시간을 테스트하는 것이 좋습니다. 테스트하려면 인스턴스를 만들고 인스턴스가 RUNNING 상태가 될 때부터 애플리케이션이 준비 상태가 될 때까지의 시작 프로세스 시간을 측정합니다.

인스턴스가 초기화되는 데 걸리는 시간보다 훨씬 긴 시간을 대기 기간 값으로 설정하면 자동 확장 처리에서 적합한 사용률 데이터를 무시하고 그룹에 필요한 크기를 낮게 잡아 수평 확장에 지연을 초래할 수 있습니다.

안정화 기간

자동 확장 처리는 수평 축소를 위해 최근 10분간의 최대 부하를 기준으로 그룹의 권장 목표 크기를 계산합니다. 이러한 마지막 10분을 안정화 기간이라고 합니다.

자동 확장 처리는 안정화 기간을 사용하여 항상 관리형 인스턴스 그룹에 권장되는 크기가 마지막 10분 동안 관찰된 최대 부하를 처리하기에 충분한지 확인합니다.

이러한 10분간의 안정화 기간은 수평 축소 시 발생하는 지연으로 보일 수 있지만 실제로는 자동 확장에 내장되어 있는 기능입니다. 이러한 지연 시간 덕분에 더 작은 그룹으로도 마지막 10분 동안의 최대 부하를 충분히 지원할 수 있습니다.

자동 확장 모드

자동 확장 처리 작업의 간섭 없이 그룹을 조사하거나 구성해야 하는 경우 일시적으로 자동 확장 활동을 사용 중지하거나 제한할 수 있습니다. 자동 확장 처리가 사용 중지되거나 제한되는 동안에도 자동 확장 처리 구성은 지속되며 모든 자동 확장 활동은 사용자가 다시 사용 설정하거나 제한을 해제하면 다시 시작됩니다.

예측 자동 확장

예측 자동 확장을 사용 설정하여 MIG의 가용성을 최적화하는 경우 자동 확장 처리는 이전 데이터를 기반으로 향후 부하를 예측하고 예측된 부하에 앞서 MIG를 수평 확장하여 부하 도착 시 새 인스턴스를 제공할 수 있도록 합니다.

예측 자동 확장은 워크로드가 다음 기준을 충족할 때 가장 잘 작동합니다.

  • 애플리케이션이 초기화되는 데 시간이 오래 걸립니다. 예를 들어 대기 기간을 2분 넘게 구성한 경우입니다.
  • 워크로드는 일 또는 주 단위 주기에 따라 다릅니다.

자세한 내용은 예측 자동 확장 사용을 참조하세요.

수평 축소 제어

긴 설치 작업 등으로 인해 워크로드를 초기화하는 데 시간이 오래 걸리는 경우 수평 축소 제어를 구성하여 갑작스러운 수평 축소 이벤트로 인한 응답 지연 시간을 줄일 수 있습니다. 특히 부하가 감소한 직후 급증할 것으로 예상되는 경우에는 수평 축소 속도를 제한하여 자동확장이 워크로드가 허용할 수 있는 것보다 더 많은 VM 인스턴스로 MIG 크기를 줄이지 못하도록 할 수 있습니다.

애플리케이션 수평 확장 시 부하 급증을 포착할 만큼 빠르게 초기화되는 경우 수평 축소 제어를 구성할 필요가 없습니다.

수평 축소 제어를 구성하려면 자동 확장 정책에서 다음 속성을 설정합니다.

  • 최대로 허용되는 축소. 지정된 후행 기간 내에 워크로드가 최대 크기에서 잃을 수 있는 인스턴스 수입니다. 이 매개변수를 사용하면 더 많은 인스턴스가 처리될 때까지 부하 급증을 계속 처리할 수 있도록 그룹이 수평 축소될 수 있는 양을 제한할 수 있습니다. 최대로 허용되는 축소를 낮게 설정할수록 그룹을 수평 축소하는 데 더 오래 걸립니다.

  • 후행 기간. 자동 확장 처리에서 워크로드에 필요한 최대 크기를 모니터링하는 기록입니다. 자동 확장 처리는 이 기간 동안 관측된 최대 크기에서 차감된 최대로 허용되는 축소 이하로는 크기를 재조정하지 않습니다. 최대로 허용되는 축소에 정의된 대로 이 매개변수를 사용하여 자동 확장 처리가 인스턴스를 삭제하기 전에 대기해야 하는 기간을 정의할 수 있습니다. 후행 기간이 길어질수록 자동 확장 처리가 이전의 최대 부하를 더 많이 고려하여 더 보수적이고 안정적으로 축소하게 됩니다.

자세한 내용은 수평 축소 제어 구성자동 확장 처리 결정 이해를 참조하세요.

권장 그룹 크기는 마지막 10분 동안 관찰된 최대 부하를 기준으로 관리형 인스턴스 그룹이 유지해야 하는 자동 확장 처리의 권장 VM 수입니다. 이러한 마지막 10분을 안정화 기간이라고 합니다. 권장 크기는 지속적으로 다시 계산됩니다. 자동 확장 정책을 수평 축소 제어와 함께 설정하면 권장 크기가 수평 축소 제어의 제약을 받습니다.

가격 책정

자동 확장 정책을 구성하는 데에는 추가 요금이 청구되지 않습니다. 자동 확장 처리는 VM 인스턴스를 추가하거나 삭제하지 않으므로, MIG에 사용되는 리소스에만 비용이 청구됩니다. 자동 확장 정책에 최소 및 최대 인스턴스 수를 구성하여 리소스 비용을 제어할 수 있습니다. Compute Engine 가격 책정 정보는 가격 책정을 참조하세요.

다음 단계

  1. 기존 MIG가 없는 경우 관리형 인스턴스 그룹을 만드는 방법을 검토하세요.
  2. 다음을 기준으로 확장되는 자동 확장 처리를 만듭니다.

  3. 예를 들어 자동 확장 처리 관리에 대해 알아보거나, 축소 제어를 구성하거나 이를 일시적으로 제한하려면 자동 확장 처리 관리를 참조하세요.