예측을 기준으로 확장


관리형 인스턴스 그룹(MIG)자동 확장을 구성하여 부하 증가 또는 감소에 따라 가상 머신(VM) 인스턴스를 자동으로 추가하거나 삭제하도록 할 수 있습니다. 그러나 애플리케이션이 초기화되는 데 몇 분 정도 걸리는 경우 실시간 변동 사항에 따라 인스턴스를 추가해도 애플리케이션의 용량이 충분히 빠르게 늘어나지 않을 수 있습니다. 예를 들어 부하가 급증하는 경우(예: 사용자가 아침에 일어날 때) 새 인스턴스에서 애플리케이션이 초기화되는 동안 일부 사용자가 지연을 경험할 수 있습니다.

예측 자동 확장을 사용하면 초기화 시간이 오래 걸리고 워크로드 변화를 일별 또는 주별 주기로 예측 가능한 애플리케이션의 응답 시간을 개선할 수 있습니다.

예측 자동 확장을 사용 설정하면 Compute Engine은 MIG의 기록을 토대로 향후 부하를 예측하고 부하가 예측되기 전에 MIG를 수평 확장하므로 부하가 도착하면 새 인스턴스를 제공할 수 있습니다. 예측 자동 확장을 사용하지 않으면 자동 확장 처리는 실시간으로 부하에서 관찰된 변경사항을 기준으로 대응적으로 그룹만 확장할 수 있습니다. 예측 자동 확장을 사용 설정하면 자동 확장 처리가 실시간 데이터는 물론 이전 데이터와 함께 작동하여 현재 및 예상 부하를 모두 처리합니다. 자세한 내용은 예측 자동 확장 작동 방식예측 자동 확장이 워크로드에 적합한지 확인을 참조하세요.

시작하기 전에

  • 이 가이드의 명령줄 예시를 사용하려면 Google Cloud CLI를 설치하거나 Cloud Shell을 실행합니다.
  • 자동 확장 처리 기초에 대해 읽어봅니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 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에서 사용한 Compute Engine 리소스에 대한 비용을 지불해야 합니다.

제한사항

  • 예측 자동 확장은 확장 측정항목으로 CPU 사용률에서만 작동합니다. Cloud Load Balancing 또는 Cloud Monitoring 측정항목은 지원되지 않습니다.
  • Compute Engine에서 예측을 생성하려면 3일간의 CPU 기반 자동 확장 기록이 필요합니다.
  • 예측은 주간 및 일간 부하 패턴을 기반으로 합니다. Compute Engine은 월간, 연간 또는 일회성 이벤트를 예측하지 않으며 10분 미만의 부하 패턴도 예측하지 않습니다. 일정 기반 자동 확장을 사용하면 일회성 또는 기타 부하 패턴의 용량을 요청할 수 있습니다.

적합한 워크로드

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

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

서비스가 초기화되는 데 시간이 오래 걸리는 경우 수평 확장 이벤트 후 서비스 지연 시간이 발생할 수 있습니다. 즉, 새 VM이 프로비저닝되었지만 아직은 제공되지 않습니다. 예측 자동 확장은 애플리케이션의 초기화 시간을 고려하여 예측된 사용량 증가가 발생하기 전에 미리 수평 확장함으로써 사용 가능한 서빙 인스턴스 수가 목표 사용률에 충분하도록 보장합니다.

예측 자동 확장이 그룹에 미치는 영향을 미리 확인하려면 예측 자동 확장이 워크로드에 적합한지 확인을 참조하세요.

예측 자동 확장 사용 설정 및 중지

CPU 사용률을 기준으로 확장할 때 예측 자동 확장을 사용 설정할 수 있습니다. CPU 기반 자동 확장 설정에 대한 자세한 내용은 CPU 사용률을 기준으로 확장을 참조하세요.

MIG에 자동 확장 처리 기록이 없으면 예측 알고리즘이 자동 확장 처리에 영향을 미치는 데 3일 정도 걸릴 수 있습니다. 이 시간 동안 그룹은 실시간 데이터만 기준으로 확장됩니다. 3일 후에 그룹이 예측을 사용하여 확장되기 시작합니다. 이전 부하가 수집될수록 예측 자동 확장 처리에서 부하 패턴을 더욱 우수하게 파악하고 예측이 향상됩니다. Compute Engine에서는 최대 3주간의 MIG 부하 기록을 사용하여 머신러닝 모델에 데이터를 공급합니다.

콘솔

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

    인스턴스 그룹으로 이동

  2. 목록에서 기존 MIG의 이름을 클릭하여 그룹의 개요 페이지를 엽니다.

  3. 수정을 클릭합니다.

  4. 자동 확장 구성이 없으면 자동 확장에서 자동 확장 구성을 클릭합니다.

  5. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.

  6. 자동 확장 처리가 이 그룹에 만들 수 있는 인스턴스의 최소 및 최대 개수를 지정합니다.

  7. 자동 확장 측정항목 섹션에서 CPU 사용률 측정항목이 아직 없으면 추가합니다.

    1. 측정항목 추가를 클릭합니다.
    2. 측정항목 유형에서 CPU 사용률을 선택합니다.
    3. 대상 CPU 사용률을 원하는 대로 입력합니다. 이 값은 백분율로 간주됩니다. 예를 들어 원하는 CPU 사용률이 75%이면 75를 입력합니다.
    4. 예측 자동 확장에서 가용성 위주로 최적화를 선택하여 예측 자동 확장을 사용 설정합니다.
      • 또는 예측 알고리즘을 사용 중지하고 실시간 자동 확장 처리만 사용하려면 끄기를 선택합니다.
    5. 완료를 클릭합니다.
  8. 초기화 기간에서 애플리케이션이 새 인스턴스에서 초기화하는 데 걸리는 시간을 지정합니다. 이 설정은 예측 자동 확장 처리가 예상 부하에 앞서 수평 확장되도록 알려 해당 부하 도달 시 애플리케이션이 초기화되도록 합니다.

  9. 저장을 클릭합니다.

gcloud

MIG의 자동 확장 처리를 설정하거나 업데이트할 때 다음 값 중 하나와 함께 --cpu-utilization-predictive-method 플래그를 포함하세요.

  • optimize-availability: 예측 알고리즘 사용 설정
  • none(기본값): 예측 알고리즘 사용 중지

그룹에 CPU 기반 자동 확장이 아직 사용 설정되지 않은 경우 사용 설정해야 합니다. set-autoscaling 명령어를 사용하여 그룹의 자동 확장 정책을 처음부터 구성할 수 있습니다. 예를 들어 다음 명령어는 다음 설정으로 자동 확장을 구성하는 방법을 보여줍니다.

  • 예측 자동 확장 사용 설정
  • 대상 CPU 사용률 75%
  • 최대 인스턴스 수를 20으로 설정
  • 초기화 기간(--cool-down-period)을 5분으로 설정. 이 설정은 예측 자동 확장 처리가 예상 부하에 5분 앞서 수평 확장되도록 알려 해당 부하 도달 시 애플리케이션이 초기화되도록 합니다.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --cpu-utilization-predictive-method optimize-availability \
  --target-cpu-utilization 0.75 \
  --max-num-replicas 20 \
  --cool-down-period 300

그룹에 CPU 기반 자동 확장이 이미 사용 설정된 경우 update-autoscaling 명령어를 사용하여 예측 알고리즘을 사용 설정합니다.

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
  --cpu-utilization-predictive-method=optimize-availability

REST

자동 확장 처리를 만들거나 업데이트할 때 요청 본문에 다음 값 중 하나가 지정된 predictiveMethod 필드를 포함합니다.

  • OPTIMIZE_AVAILABILITY: 예측 알고리즘 사용 설정
  • NONE(기본값): 예측 알고리즘 사용 중지

그룹에 기존 자동 확장 구성이 없으면 다음을 수행합니다.

그룹에 이미 자동 확장 구성이 있는 경우 다음 안내를 따르세요.

그룹에 CPU 기반 자동 확장이 아직 사용 설정되지 않은 경우 사용 설정해야 합니다.

예를 들어 다음 요청은 기존 자동 확장 처리 리소스를 패치하여 다음 설정으로 CPU 기반 자동 확장을 사용 설정합니다.

  • 예측 자동 확장 사용 설정
  • 대상 CPU 사용률 75%
  • 최대 인스턴스 수를 20으로 설정
  • 초기화 기간(coolDownPeriodSec)을 5분으로 설정. 이 설정은 예측 자동 확장 처리가 예상 부하에 5분 앞서 수평 확장되도록 알려 해당 부하 도달 시 애플리케이션이 초기화되도록 합니다.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers/

{
  "name": "AUTOSCALER_NAME",
  "target": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME",
  "autoscalingPolicy": {
    "cpuUtilization": {
       "utilizationTarget": 0.75,
       "predictiveMethod": "OPTIMIZE_AVAILABILITY"
     },
    "maxNumReplicas": 20,
    "coolDownPeriodSec": 300
  }
}

예측 자동 확장 처리가 사용 설정되어 있는지 확인

MIG의 현재 자동 확장 구성을 보려면 MIG 속성 가져오기를 참조하세요.

예측 자동 확장 구성

목표 사용률, 최소 및 최대 인스턴스 수, 초기화 기간을 구성하는 방법에 대한 자세한 내용은 CPU 사용률을 기준으로 확장을 참조하세요. 이러한 옵션을 구성하면 예측 자동 확장 처리에서 실시간 자동 확장 처리와 동일한 방식으로 모든 인스턴스를 그룹의 최소 및 최대 경계 내에서 설정된 목표 사용률 수준으로 유지합니다.

애플리케이션이 초기화되는 데 걸리는 시간을 고려하여 초기화 기간 설정을 사용합니다. 이 설정은 예상 부하 증가량에 도달했을 때 애플리케이션을 제공할 수 있도록 예측 자동 확장 처리가 해당 부하에 도달하기 얼마 전에 새 인스턴스를 시작하는지에 영향을 줍니다.

예측 자동 확장이 워크로드에 적합한지 확인

예측 자동 확장으로 애플리케이션의 가용성을 개선할 수 있는지 확인하려면 그룹의 현재 CPU 기반 자동 확장 구성과 예측 자동 확장의 성능을 비교하면 됩니다. 비교를 위해 예측 자동 확장을 사용 설정할 필요는 없습니다.

예측 자동 확장에 적합한 워크로드에 대한 자세한 내용은 적절한 워크로드를 참조하세요.

과부하 확인

평균 CPU 사용률이 목표치를 초과할 경우 자동 확장된 MIG에 과부하가 걸립니다. 지난 7일 동안 자동 확장 구성으로 인해 과부하가 걸린 VM이 있는지 확인하고, 예측 자동 확장으로 과부하를 줄일 수 있는지 확인하려면 다음 단계를 완료하세요.

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

    인스턴스 그룹으로 이동

  2. CPU 기반 자동 확장이 구성된 기존 MIG를 클릭합니다. 그룹의 개요 페이지가 열립니다.

  3. 수정을 클릭합니다.

  4. 자동 확장 섹션의 자동 확장 측정항목 아래에서 CPU 사용률 섹션을 확장하고 예측 자동 확장으로 가용성을 최적화할 수 있는지 확인을 클릭합니다.

  5. 이 표는 지난 7일간의 데이터를 토대로 일별로 사용된 VM 수와 대해 일별로 과부하가 걸린 VM 수를 다음 행에 보여줍니다.

    • 현재 자동 확장 구성: 자동 확장 처리의 구성을 기준으로 최근 7일간의 성능을 보여줍니다.
    • 예측 자동 확장을 '가용성 위주로 최적화'로 설정한 경우: 지난 7일 동안 예측 자동 확장이 사용 설정된 경우 자동 확장 처리의 성능을 보여줍니다.

'일별로 사용된 VM 수'를 비용 프록시로 사용할 수 있습니다. 예를 들어 예측 자동 확장 처리는 과부하된 VM 수를 줄이기 위해 VM을 더 일찍 만들고 더 오래 실행하기 때문에 추가 요금이 발생할 수 있습니다.

예측 자동 확장 모니터링 및 시뮬레이션

Cloud Monitoring을 사용하여 그룹의 이전 크기를 시각화할 수 있습니다. 모니터링 그래프에서는 자동 확장 구성이 시간 경과에 따라 그룹을 확장한 방법을 보여주며 예측 자동 확장이 사용 설정된 경우 그룹을 확장한 방법도 보여줍니다.

예측 자동 확장이 사용 중지된 그룹의 경우 이 도구를 사용하여 예측 자동 확장을 시뮬레이션한 후 사용 설정할 수 있습니다.

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

    인스턴스 그룹으로 이동

  2. CPU 기반 자동 확장이 구성된 기존 MIG를 클릭합니다. 그룹의 개요 페이지가 열립니다.

  3. 모니터링을 클릭하여 그룹과 관련된 차트를 표시합니다.

  4. 첫 번째 차트에서 제목을 클릭하고 예측 자동 확장을 선택합니다. 이 뷰에는 그룹의 실제 크기와 예측된 크기가 표시됩니다.

  5. 다른 기간을 선택하여 기록을 확인하거나 수요가 증가한 기간을 확대하여 예측 자동 확장이 예측 부하에 앞서 그룹 크기에 어떤 영향을 미치는지 확인할 수 있습니다.

예측 자동 확장의 작동 방식

예측 자동 확장 처리에서는 측정항목의 과거 추세를 토대로 확장 측정항목을 예측합니다. 예측은 몇 분마다 다시 계산되므로 자동 확장 처리에서 최근의 부하 변동에 맞게 예측을 빠르게 조정할 수 있습니다. 예측 자동 확장 처리에서 예측을 제공하려면 대표 서비스 사용량 패턴을 결정하는 데 사용할 3일 이상의 기록이 필요합니다. Compute Engine에서는 최대 3주간의 MIG 부하 기록을 사용하여 머신러닝 모델에 데이터를 공급합니다.

예측 자동 확장 처리는 다음과 같은 다양한 요소를 기준으로 사용률 목표를 달성하는 데 필요한 VM 수를 계산합니다.

  • 확장 측정항목의 예상 미래 값
  • 확장 측정항목의 현재 값
  • 확장 측정항목의 과거 변동을 포함한 과거 추세의 신뢰도
  • 초기화 기간이라고도 하는 구성된 애플리케이션 초기화 기간

예측 자동 확장 처리는 이러한 요소를 바탕으로 예상 수요에 앞서 그룹을 수평 확장합니다.

예측 자동 확장을 사용하거나 사용하지 않는 서빙 VM 비교

그림 1. 예측 자동 확장을 사용하거나 사용하지 않는 서빙 VM 비교

그림 1에서 파란색 선은 VM에 대한 수요가 증가하고 있음을 보여줍니다. 검은색 선은 자동 확장 처리의 응답을 보여줍니다. VM이 더 추가됩니다. 하지만 초기화 시간이 긴 애플리케이션의 경우 회색 선은 추가된 VM은 제공할 준비가 되기 전에 추가 시간이 필요하다는 것을 나타냅니다. 이로 인해 VM이 부족하지 않게 되어 수요가 충족됩니다. 예측 자동 확장을 사용 설정하면 예측된 수요 증가 및 긴 애플리케이션 초기화 시간이 고려됩니다. 자동 확장 처리가 이전에 VM을 추가하여 응답하므로 제공되는 VM 수가 충분합니다. 초기화 기간을 설정하여 사전에 새 인스턴스가 추가되는 속도를 구성할 수 있습니다.

실시간 사용 데이터

예측 자동 확장 처리는 이전 데이터를 기준으로 이후의 모든 사용 변화 패턴을 파악할 수 없으므로 실시간 데이터와도 원활하게 작동합니다. 예를 들어 예기치 않은 뉴스 이벤트로 인해 사용량이 급증하는 것은 기록만으로 예측할 수 없습니다. 예측 자동 확장 처리는 예측할 수 없는 이러한 부하 변동을 처리하기 위해 다음과 같이 대응합니다.

  • 예측 조정: 최신 데이터를 반영하도록 예측을 조정하기 위해 몇 분 간격으로 예측이 계속 다시 계산됩니다. 새 패턴에 맞게 조정되는 정확한 시점은 새 패턴을 어떻게 반복할 수 있는지, 새 패턴과 이전 예측 간의 차이가 얼마나 큰지 등에 따라 달라집니다.
  • 실시간 데이터가 생성됩니다. 측정항목의 실시간 값을 기반으로 한 자동 확장 처리의 권장 인스턴스 수는 항상 그룹의 목표 사용률을 충분히 충족합니다. 실시간 신호의 현재 값이 예측보다 큰 경우 신호의 현재 값이 예측보다 우선 적용됩니다. 따라서 예측 자동 확장이 사용 설정된 MIG는 예측 자동 확장이 사용 설정되지 않은 MIG보다 가용성이 항상 더 높습니다.

두 차트에서는 예측이 실제 CPU 사용량에 맞춰 어떻게 조정되는지 보여줍니다.

그림 2. 두 차트에서는 예측이 실제 CPU 사용량에 맞춰 어떻게 조정되는지 보여줍니다.

그림 2에서 노란색 점선은 t1의 예측을 보여줍니다. 하지만 파란색 실선으로 표시된 실제 CPU 사용량은 예상과 다릅니다. 왼쪽 차트의 실제 CPU 사용량은 예상보다 높습니다. 오른쪽 차트의 실제 CPU 사용량이 예상보다 낮습니다. 파란색 점선은 조정된 예측을 보여줍니다.

예측할 수 없는 단기 급증

예측할 수 없는 단기 급증은 실시간으로 처리됩니다. 자동 확장 처리에서 측정항목의 현재 실제 값에 따라 사용률을 구성된 목표로 유지하는 데 필요한 만큼 인스턴스를 만듭니다. 그러나 다음 그림과 같이 이러한 인스턴스가 사전에 생성되지는 않습니다.

예측할 수 없는 단기 급증이 발생하면 자동 확장 처리가 실시간으로 대응합니다.

그림 3. 예측할 수 없는 단기 급증이 발생하면 자동 확장 처리가 실시간으로 대응합니다.

그림 3에서 파란색 실선은 실제 CPU 사용량을 보여줍니다. CPU 사용량의 예기치 못한 급증을 예측하지 못했습니다. 자동 확장 처리는 항상 실시간 데이터를 모니터링하므로 급증에 대응하기 위해 인스턴스를 추가합니다. 검은색 실선은 자동 확장 처리가 급증에 대응하여 VM을 추가한 것을 보여줍니다. 회색 실선은 서빙 VM의 수를 나타냅니다. 회색 선은 애플리케이션의 초기화 시간으로 인해 검은색 선보다 뒤쳐집니다. 이 시나리오에서는 일시적으로 그룹에 과부하가 걸립니다.

급격한 감소

또 다른 예측 불가능한 사용량 변화로 급격한 감소가 있습니다. 애플리케이션 스택의 장애로 인한 감소가 그 예에 해당합니다. 이러한 경우 처음에는 인스턴스 수가 예측을 따릅니다. 하지만 시간이 지나면서 예측보다 낮은 사용량에 맞게 예측이 조정되어 수평 축소됩니다. 이 조정의 정확한 시기는 이전에 패턴이 발생한 빈도, 감소 지속 기간, 감소 정도 등 다양한 요인에 따라 달라집니다.

급격한 감소가 발생하면 예측 자동 확장 처리가 예측을 변경합니다.

그림 4. 급격한 감소가 발생하면 예측 자동 확장 처리가 예측을 변경합니다.

그림 4에서 노란색 점선은 t1의 예측을 보여줍니다. 하지만 파란색 실선으로 표시된 실제 CPU 사용량은 예상보다 적습니다. 파란색 점선은 예상보다 낮은 사용량을 관측한 후 자동으로 조정된, 업데이트된 예측을 보여줍니다. 그러면 자동 확장 처리에서 표준 안정화 기간이 지난 인스턴스를 삭제합니다.

이전 데이터

예측 자동 확장 처리가 예측을 시작하려면 적어도 3일 이상의 부하 기록이 필요합니다. 이전 데이터가 없는 새 MIG가 있는 경우 Compute Engine은 충분한 이전 데이터가 제공될 때까지 실시간 데이터를 사용하여 사후 대응 방식으로 그룹을 확장합니다. 3일이 지나면 Compute Engine이 사용 데이터를 추가로 수집하므로 예측이 개선됩니다.

새 MIG를 만들고 이전 MIG(예: 블루-그린 배포)를 삭제하여 애플리케이션을 업데이트하는 경우 예측 자동 확장 처리가 예측을 다시 생성하기 시작하려면 새 MIG에 3일간의 이전 부하 데이터가 있어야 합니다. 새 MIG를 만들 때 예측을 즉시 시작할 수 있도록 MIG에서 부하 기록을 유지하려면 Google에 문의하여 비공개 미리보기에 참여하는 방법을 확인하세요.

다음 단계