확장 집합을 만들 때 실행하려는 VM 인스턴스 수를 정의합니다. 애플리케이션 수요가 변경될 때는 VM 인스턴스 수를 자동으로 늘리거나 줄일 수 있습니다. 자동 크기 조정 기능을 사용하면 고객 수요에 따라 조정하거나 앱 수명 주기 동안 애플리케이션 성능 변화에 대응할 수 있습니다. 이 자습서에서는 다음 방법을 알아봅니다.
- 확장 집합에 자동 크기 조정 사용
- 자동 크기 조정 규칙 만들기 및 사용
- CPU 부하를 시뮬레이션하여 자동 크기 조정 규칙을 활성화합니다.
- 요청 변경으로 자동 크기 조정 작업 모니터링
Azure 계정이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
필수 조건
Bash 환경을 Azure Cloud Shell에서 사용합니다. 자세한 내용은 Azure Cloud Shell 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치하십시오. Windows 또는 macOS에서 실행하는 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 Azure에 인증을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI로 확장 사용 및 관리를 참조하세요.
az version을 실행하여 설치된 버전과 관련 종속 라이브러리를 확인합니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
- 이 자습서에는 Azure CLI 버전 2.0.32 이상이 필요합니다. Azure Cloud Shell을 사용하는 경우 최신 버전이 이미 설치되어 있습니다.
확장 집합 만들기
az group create를 사용하여 리소스 그룹을 만듭니다.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="WestUS2"
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --___location $REGION
이제 az vmss create를 사용하여 Virtual Machine Scale Set을 만듭니다. 다음 예제에서는 인스턴스 수가 2인 확장 집합을 만들고, SSH 키가 없으면 생성하고, 유효한 이미지 Ubuntu2204를 사용합니다.
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_SUFFIX"
az vmss create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--instance-count 2 \
--admin-username azureuser \
--generate-ssh-keys
자동 크기 조정 프로필 정의
확장 집합에서 자동 크기 조정을 활성화하려면 먼저 자동 크기 조정 프로필을 정의합니다. 이 프로필은 기본, 최소, 최대 확장 집합 용량을 정의합니다. 이러한 제한을 통해 연속적으로 VM 인스턴스를 만들지 않고 비용을 제어하고, 축소 이벤트에 유지되는 최소 인스턴스 수로 허용 가능한 성능의 균형을 유지할 수 있습니다. az monitor autoscale create를 사용하여 자동 크기 조정 프로필을 만듭니다. 다음 예제에서는 VM 인스턴스 2개 및 최대 10개의 기본 및 최소 용량을 설정합니다.
az monitor autoscale create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--resource $MY_SCALE_SET_NAME \
--resource-type Microsoft.Compute/virtualMachineScaleSets \
--name autoscale \
--min-count 2 \
--max-count 10 \
--count 2
자동 크기 확장 규칙 만들기
애플리케이션 수요가 증가하면 확장 집합의 VM 인스턴스 부하가 증가합니다. 이 증가된 부하가 간단한 요구가 아니라 일관된 경우 VM 인스턴스 수를 늘리도록 자동 크기 조정 규칙을 구성할 수 있습니다. 이러한 인스턴스가 만들어지고 애플리케이션이 배포되면 확장 집합이 부하 분산 장치를 통해 트래픽을 분산하기 시작합니다. 모니터링할 메트릭, 로드가 지정된 임계값을 충족해야 하는 기간 및 추가할 VM 인스턴스 수를 제어합니다.
5분 동안 평균 CPU 부하가 70% 초과할 때 VM 인스턴스 수를 늘리는 az monitor autoscale rule create를 사용하여 규칙을 만듭니 다. 규칙이 트리거되면 VM 인스턴스 수가 3만큼 늘어납니다.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 3
자동 크기 축소 규칙 만들기
애플리케이션 수요가 감소하면 VM 인스턴스의 부하가 감소합니다. 이 감소된 부하가 일정 기간 동안 지속되는 경우 확장 집합의 VM 인스턴스 수를 줄이도록 자동 크기 조정 규칙을 구성할 수 있습니다. 이 규모 감축 작업은 현재 수요를 충족하는 데 필요한 인스턴스 수만 실행하여 비용을 절감하는 데 도움이 됩니다.
평균 CPU 부하가 5분 동안 30% 아래로 떨어질 때 VM 인스턴스 수를 줄이는 az monitor autoscale rule create 를 사용하여 다른 규칙을 만듭니다. 다음 예제에서는 VM 인스턴스 수를 1씩 확장합니다.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU < 30 avg 5m" \
--scale in 1
규모 집합에서 CPU 부하를 시뮬레이트하다
자동 크기 조정 규칙을 테스트하려면 확장 집합의 VM 인스턴스에서 지속적인 CPU 부하를 시뮬레이션해야 합니다. 이 미니멀한 접근 방식에서는 기본 제공 yes
명령을 사용하여 CPU 부하를 생성하여 추가 패키지를 설치하지 않습니다. 다음 명령은 60초 동안 지속적으로 데이터를 출력한 다음 종료하는 /dev/null
3개의 백그라운드 프로세스를 시작합니다.
for i in {1..3}; do
yes > /dev/null &
done
sleep 60
pkill yes
이 명령은 패키지 설치 오류를 도입하지 않고 CPU 부하를 시뮬레이션합니다.
활성 자동 크기 조정 규칙 모니터링
확장 집합의 VM 인스턴스 수를 모니터링하려면 명령을 사용합니다 watch
. CPU 로드에 대한 응답으로 자동 크기 조정 규칙이 스케일 아웃 프로세스를 시작하는 데 최대 5분이 걸릴 수 있습니다. 그러나 이 문제가 발생하면 Ctrl+ C 키를 사용하여 감시를 종료할 수 있습니다.
그때 확장 집합은 수요를 충족하기 위해 VM 인스턴스 수를 자동으로 증가합니다. 다음 명령은 확장 집합의 VM 인스턴스 목록을 보여 줍니다.
az vmss list-instances \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--output table
CPU 임계값이 충족되면 자동 크기 조정 규칙에서 확장 집합의 VM 인스턴스 수를 늘립니다. 새 인스턴스가 만들어질 때 출력에 VM 인스턴스 목록이 표시됩니다.
InstanceId LatestModelApplied Location Name ProvisioningState ResourceGroup VmId
------------ -------------------- ---------- --------------- ------------------- -------------------- ------------------------------------
1 True WestUS2 myScaleSet_1 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2 True WestUS2 myScaleSet_2 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4 True WestUS2 myScaleSet_4 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5 True WestUS2 myScaleSet_5 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6 True WestUS2 myScaleSet_6 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CPU 부하가 가라앉으면 평균 CPU 부하가 정상으로 돌아갑니다. 또 다른 5분이 지나면 자동 크기 조정 규칙에서 VM 인스턴스 수를 축소합니다. 스케일 인 작업은 먼저 ID가 가장 높은 VM 인스턴스를 제거합니다. 확장 집합에서 가용성 집합 또는 가용성 영역을 사용하는 경우 확장 작업은 VM 인스턴스에 균등하게 분산됩니다. 다음 샘플 출력에서는 확장 집합의 자동 크기 조정 중에 삭제되는 하나의 VM 인스턴스를 보여 줍니다.
6 True WestUS2 myScaleSet_6 Deleting myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
자원을 정리하세요
확장 집합 및 연결된 리소스를 제거하려면 원하는 방법을 사용하여 리소스 그룹을 수동으로 삭제하세요.
다음 단계
이 자습서에서는 Azure CLI를 사용하여 다음과 같이 확장 집합을 자동으로 확장하거나 축소하는 방법을 알아보았습니다.
- 확장 집합에 자동 크기 조정 사용
- 자동 크기 조정 규칙 만들기 및 사용
- CPU 부하를 시뮬레이션하여 자동 크기 조정 규칙을 활성화합니다.
- 요청 변경으로 자동 크기 조정 작업 모니터링