CPU 사용률을 기준으로 확장

가장 간단한 형태의 자동 확장은 인스턴스의 CPU 사용량에 따라 관리형 인스턴스 그룹(MIG)을 확장하는 것입니다.

외부 HTTP(S) 부하 분산기의 제공 용량에 따라 또는 Monitoring 측정항목에 따라 MIG를 확장할 수도 있습니다.

시작하기 전에

CPU 사용률을 기준으로 확장

관리형 인스턴스 그룹(MIG)의 평균 CPU 사용률을 기준으로 자동 확장할 수 있습니다. 이 정책을 사용하면 자동 확장 처리 기능이 그룹 내 인스턴스의 CPU 사용률을 수집하고 확장이 필요한지 여부를 결정합니다. 자동 확장 처리 시 유지해야 하는 대상 CPU 사용률은 사용자가 설정합니다. 그러면 자동 확장 처리 기능이 해당 수준을 유지하려고 합니다.

자동 확장 처리는 시간 경과에 따른 인스턴스 그룹 내 모든 vCPU의 평균 사용량의 일부로 대상 CPU 사용률 수준을 처리합니다. 전체 vCPU의 평균 사용률이 목표 사용률을 초과하면 자동 확장 처리 기능이 VM 인스턴스를 더 추가합니다. 전체 vCPU의 평균 사용률이 목표 사용률보다 적으면 자동 확장 처리 기능이 인스턴스를 삭제합니다. 예를 들어 목표 사용률을 0.75로 설정하면 자동 확장 처리 기능이 인스턴스 그룹의 모든 vCPU에서 평균 사용률을 75%로 유지합니다.

CPU 사용률을 기준으로 한 자동 확장 사용 설정

Console


  1. 인스턴스 그룹 페이지로 이동합니다.
  2. 인스턴스 그룹이 있으면 인스턴스 그룹을 선택하고 그룹 수정을 클릭합니다. 인스턴스 그룹이 없으면 인스턴스 그룹 만들기를 클릭합니다.
  3. 자동 확장에서 켜기를 선택합니다.
  4. 자동 확장 기준에서 CPU 사용률을 선택합니다.
  5. 대상 CPU 사용률을 원하는 대로 입력합니다. 이 값은 백분율로 간주됩니다. 예를 들어 원하는 CPU 사용률이 60%이면 60을 입력합니다.
  6. 이 인스턴스 그룹에서 원하는 최대 인스턴스 수를 지정합니다. 최소 인스턴스 수와 대기 시간을 설정할 수도 있습니다. 대기 시간은 VM이 시작된 후 해당 VM에서 자동 확장 처리 기능이 정보를 수집하기 전에 대기해야 하는 시간(초)입니다. 이 시간은 VM 초기화에 소요될 수 있는 시간을 나타내며, 이 시간 동안 수집된 데이터는 신뢰할 수 없으므로 자동 확장에 적용할 수 없습니다. 기본 대기 시간은 60초입니다.
  7. 변경사항을 저장합니다.

gcloud


set-autoscaling 하위 명령어를 사용하여 관리형 인스턴스 그룹에 자동 확장을 사용 설정합니다. 예를 들어 다음 명령어는 대상 CPU 사용률이 60%인 자동 확장 처리를 만듭니다. 자동 확장 처리를 만들 때는 --target-cpu-utilization 매개변수와 함께 --max-num-replicas 매개변수도 필요합니다.

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --max-num-replicas 20 \
    --target-cpu-utilization 0.60 \
    --cool-down-period 90

필요한 경우 --cool-down-period 플래그를 사용할 수 있습니다. 이 플래그는 새 인스턴스가 시작된 후 자동 확장 처리 기능이 새 인스턴스에서 수집된 데이터를 고려하기 전에 대기해야 하는 시간(초)을 알려줍니다. 이 대기 시간은 인스턴스 초기화에 소요될 수 있는 시간을 나타내며, 이 시간 동안 수집된 사용률 데이터는 신뢰할 수 없으므로 자동 확장에 적용할 수 없습니다. 대기 시간이 지나면 자동 확장 처리 기능이 인스턴스의 사용률 데이터를 반영하여 그룹 확장이 필요한지 여부를 결정하기 시작합니다. 기본 대기 시간은 60초입니다.

관리형 인스턴스 그룹을 설명하고 인스턴스 그룹의 자동 확장 기능에 대한 정보를 제공하는 instance-groups managed describe 하위 명령어를 사용하여 자동 확장이 사용 설정되었는지 확인할 수 있습니다.

gcloud compute instance-groups managed describe example-managed-instance-group

사용 가능한 gcloud 명령어 및 플래그의 목록은 gcloud 참조에서 확인할 수 있습니다.

API


참고: 자동 확장은 관리형 인스턴스 그룹의 기능이지만 별도의 API 리소스입니다. 자동 확장 API 요청을 구성할 때는 이 사실을 염두에 두세요.

API에서 autoscalers.insert 메서드에 대해 POST 요청을 실행합니다.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/autoscalers/

요청 본문에는 name, target, autoscalingPolicy 필드가 포함되어야 합니다. autoscalingPolicycpuUtilizationmaxNumReplicas를 정의해야 합니다.

필요한 경우 coolDownPeriodSec 필드를 사용할 수 있습니다. 이 필드는 새 인스턴스가 시작된 후 자동 확장 처리 기능이 새 인스턴스에서 수집된 데이터를 고려하기 전에 대기해야 하는 시간(초)을 알려줍니다. 이 대기 시간은 인스턴스 초기화에 소요될 수 있는 시간을 나타내며, 이 시간 동안 수집된 사용률 데이터는 신뢰할 수 없으므로 자동 확장에 적용할 수 없습니다. 대기 시간이 지나면 자동 확장 처리 기능이 인스턴스의 사용률 데이터를 반영하여 그룹 확장이 필요한지 여부를 결정하기 시작합니다. 기본 대기 시간은 60초입니다.

{
 "name": "example-autoscaler",
 "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
 "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
       "utilizationTarget": 0.6
     },
    "coolDownPeriodSec": 90
  }
}

CPU 사용률을 기준으로 한 자동 확장 사용 설정에 대한 자세한 내용은 확장성이 뛰어난 애플리케이션을 위한 자동 확장 사용 가이드를 참조하세요.

자동 확장 처리를 통해 과도한 CPU 사용률이 처리되는 방식

CPU 사용률이 많은 기간 동안 사용률이 거의 100%에 도달하면 자동 확장 처리 기능은 그룹이 이미 과부하된 것으로 추정합니다. 이러한 경우 자동 확장 처리 기능은 가상 머신 수를 최대 50% 늘립니다.