가상 머신 확장 집합 구성
크기를 조정할 때는 가상 머신 확장 집합에 인스턴스를 추가합니다. 배송 회사 시나리오에서 크기 조정은 시간이 지남에 따라 변화하는 요청 수를 처리하는 좋은 방법입니다. 크기 조정은 사용자 수 변화에 따라 웹 애플리케이션을 실행하는 가상 머신의 수를 조정합니다. 이렇게 하면 현재 부하에 관계없이 응답 시간이 일정하게 유지됩니다.
이 단원에서는 가상 머신 확장 집합의 크기를 조정하는 방법을 알아봅니다. 확장 집합의 가상 머신 인스턴스 수를 명시적으로 설정하여 수동으로 크기를 조정할 수도 있고 가상 머신의 할당 및 할당 취소를 트리거하는 크기 조정 규칙을 정의하여 자동 크기 조정을 구성할 수 있습니다. 이러한 크기 조정 규칙은 다양한 성능 메트릭을 모니터링하여 언제 시스템의 크기를 조정할지 결정합니다.
가상 머신 확장 집합 수동 크기 조정
인스턴스 개수를 늘리거나 줄여 가상 머신 확장 집합 크기를 수동으로 조정합니다. 이 작업은 프로그래밍 방식으로 또는 Azure Portal에서 수행할 수 있습니다.
다음 코드는 Azure CLI를 사용하여 가상 머신 확장 집합의 인스턴스 수를 변경합니다.
az vmss scale \
--name webServerScaleSet \
--resource-group MyResourceGroup \
--new-capacity 6
가상 머신 확장 집합 자동 크기 조정
수동 크기 조정이 유용한 상황도 있지만 대부분의 경우 자동 크기 조정이 더 낫습니다. 자동 크기 조정은 확장 집합의 인스턴스 수를 시스템에서 제어하도록 합니다.
다음을 기준으로 자동 크기 조정을 수행할 수 있습니다.
- 일정: 특정 날짜 또는 기간에 워크로드가 늘어날 것을 알고 있다면 이 방법을 사용합니다.
- 메트릭: 확장 집합에 연결된 성능 메트릭을 모니터링하여 스케일링을 조정합니다. 이러한 메트릭이 지정된 임계값을 초과하면 확장 집합이 자동으로 새로운 가상 머신 인스턴스를 시작할 수 있습니다. 추가 리소스가 더 이상 필요하지 않다고 메트릭에 표시되면 확장 집합은 초과 인스턴스를 중지할 수 있습니다.
자동 크기 조정 조건, 규칙, 한도 정의
자동 크기 조정은 일련의 크기 조정 조건, 규칙 및 제한 사항에 따라 이루어집니다. 크기 조정 조건은 시간과 일련의 크기 조정 규칙을 결합합니다. 현재 시간이 크기 조정 조건에 정의된 기간에 해당하는 경우, 이 조건의 크기 조정 규칙이 평가됩니다. 이 평가의 결과에 따라 확장 집합에서 인스턴스를 추가할지 제거할지 여부가 결정됩니다. 크기 조정 조건은 최대 인스턴스 수 및 최소 인스턴스 수로 크기 조정 한도도 정의합니다.
배송 회사 시나리오에서는 확장 집합 전체의 CPU 사용량을 모니터링하는 크기 조정 규칙을 추가할 수 있습니다. CPU 사용량이 75% 임계값을 초과하면 크기 조정 규칙은 가상 머신 인스턴스 수를 늘릴 수 있습니다. 두 번째 크기 조정 규칙도 CPU 사용량을 모니터링하되 사용량이 50% 아래로 떨어지면 가상 머신 인스턴스 수를 줄일 수 있습니다. 애플리케이션이 전역이기 때문에 이러한 규칙은 특정 시간만이 아니라 항상 활성 상태여야 합니다.
하나의 가상 머신 확장 집합에 여러 개의 크기 조정 조건이 포함될 수 있습니다. 일치하는 각 크기 조정 조건이 적용됩니다. 확장 집합에는 현재 시간 및 성능 메트릭과 일치하는 다른 크기 조정 조건이 없는 경우에 사용되는 기본 크기 조정 조건도 포함될 수 있습니다. 기본 크기 조정 조건은 항상 활성 상태입니다. 여기에는 스케일 인 또는 스케일 아웃을 수행하지 않는 null 스케일링 조건처럼 작동하는 스케일링 규칙이 없습니다. 단, 기본 스케일링 조건을 수정하여 기본 인스턴스 수를 설정하거나 스케일 아웃했다가 다시 스케일 인하는 스케일링 규칙 쌍을 추가할 수 있습니다.
일정 기반 자동 크기 조정 사용
일정 기반 크기 조정은 시작 및 종료 시간과 확장 집합에 추가할 인스턴스 수를 지정합니다. 다음 스크린샷은 Azure Portal에서의 예를 보여줍니다. 매주 월요일과 수요일 오전 6시에서 오후 6시 사이에 인스턴스의 수가 20개로 늘어나고, 이 시간 외에는 다른 크기 조정 조건이 없으면 기본 크기 조정 조건이 적용됩니다.
이 경우 기본 규칙은 다시 2개의 인스턴스로 시스템 크기를 조정합니다. 이 값은 이 기본 크기 조정 조건에서 최대입니다.
메트릭 기반 자동 크기 조정 사용
메트릭 기반 크기 조정 규칙은 CPU 사용량이나 응답 시간 등 모니터링할 리소스를 지정합니다. 이 크기 조정 규칙은 이러한 메트릭의 값에 따라 확장 집합에서 인스턴스를 추가 또는 제거합니다. 확장 집합이 과도하게 축소되거나 확장되지 않도록 인스턴스 수에 한도를 지정할 수 있습니다.
예시 시나리오에서는 평균 CPU 사용량이 75%를 초과하면 인스턴스 수를 1개 늘리려 합니다. 또한 확장 작업을 50개의 인스턴스로 제한하려 합니다. 이러한 한도는 공격으로 인해 발생하는 비용이 많이 드는 런어웨이 크기 조정을 방지하는 데 도움이 됩니다. 마찬가지로 평균 CPU 사용량이 50% 아래로 떨어지면 축소하려 합니다.
이러한 메트릭은 가상 머신 확장 집합을 모니터링하는 데 일반적으로 사용됩니다.
- CPU 사용률: 이 메트릭은 모든 인스턴스에서의 CPU 사용량을 나타냅니다. 값이 크면 인스턴스가 CPU에 바인딩되어 클라이언트 요청 처리가 지연될 수 있음을 나타냅니다.
- 인바운드 흐름 및 아웃바운드 흐름: 이러한 메트릭은 네트워크 트래픽이 확장 집합의 가상 머신으로 들어오고 나가는 속도를 보여 줍니다.
- 디스크 읽기 작업/초 및 디스크 쓰기 작업/초: 이러한 메트릭은 확장 집합에서의 디스크 I/O 볼륨을 보여 줍니다.
- 데이터 디스크 큐 크기: 이 메트릭은 가상 머신에 있는 데이터 디스크에 대한 I/O 요청 중 대기 중인 요청 수를 보여 줍니다.
크기 조정 규칙은 모든 인스턴스의 메트릭에 대해 검색한 값을 집계합니다. 또한 시간 조직이라고 하는 기간 동안의 값을 집계합니다. 각 메트릭에는 내부 시간 조직이 있지만 일반적으로 이 기간은 1분입니다. 집계된 값은 시간 집계라고 합니다. 시간 집계 옵션은 평균, 최소, 최대, 총계, 마지막, 개수입니다.
1분 간격은 메트릭의 변화가 자동 크기 조정을 가치 있게 만들 만큼 충분히 오래 지속되는지 여부를 결정하기에는 너무 짧습니다. 크기 조정 규칙은 두 번째 단계를 수행하여 사용자가 지정한 더 긴 기간 동안 추가로 시간 집계 값을 집계합니다. 이 기간을 지속 시간이라고 합니다. 최소 지속 시간은 5분입니다. 예를 들어 지속 시간이 10분으로 설정되면 크기 조정 규칙은 시간 조직에 대해 계산된 10개의 값을 집계합니다.
지속 시간의 집계 계산은 시간 조직의 집계 계산과 다를 수 있습니다. 예를 들어 시간 집계가 평균이고 수집된 통계가 1분 시간 조직에서의 CPU 사용률이라고 가정해 보겠습니다. 매분 해당 분 동안 모든 인스턴스에서의 평균 CPU 사용률이 계산됩니다. 시간 조직 통계가 최대로 설정되고 규칙의 지속 시간이 10분으로 설정된 경우, CPU 사용 백분율의 10개 평균 값 중 최대 값이 규칙 임계값 초과 여부를 결정합니다.
크기 조정 규칙은 메트릭이 임계값을 초과했음을 감지하면 크기 조정 작업을 수행할 수 있습니다. 크기 조정 작업은 확장 또는 축소일 수 있습니다. 확장 작업은 인스턴스 수를 늘립니다. 축소 작업은 인스턴스 개수를 줄입니다.
크기 조정 작업은 연산자(예: 보다 작음, 보다 큼, 같음)를 사용하여 임계값에 대응하는 방법을 결정합니다. 확장 작업은 일반적으로 보다 큼 연산자를 사용하여 메트릭 값을 임계값과 비교합니다. 축소 작업은 보다 작음 연산자를 사용하여 메트릭 값을 임계값과 비교하는 경향이 있습니다. 크기 조정 작업은 사용 가능한 수를 늘리거나 줄이는 대신 인스턴스 개수를 특정 수준으로 설정할 수도 있습니다.
크기 조정 작업에는 분 단위로 지정된 휴지 기간이 있습니다. 이 기간 동안에는 크기 조정 규칙이 다시 트리거되지 않습니다. 시스템은 휴지 기간을 통해 크기 조정 이벤트 사이에 안정화될 수 있습니다. 인스턴스를 시작하거나 종료하는 데 시간이 걸리므로 수집된 메트릭에 몇 분 동안 큰 변화가 표시되지 않을 수 있습니다. 최소 휴지 기간은 5분입니다.
마지막으로 워크로드가 감소하면 축소를 계획해야 합니다. 크기 조정 규칙을 동일한 크기 조정 조건에서 쌍으로 정의하는 것이 좋습니다. 하나의 크기 조정 규칙은 메트릭이 상한 임계값을 초과할 때 시스템을 규모 확장하는 방법을 나타내야 합니다. 다른 하나의 규칙은 동일한 메트릭이 하한 임계값 미만으로 떨어질 때 시스템을 다시 축소하는 방법을 정의해야 합니다. 두 임계값을 동일한 값으로 설정하면 안 됩니다. 동일한 값으로 설정하면 확장했다가 다시 축소하는 일련의 진동 이벤트가 트리거될 수 있습니다.
다음 이미지는 Azure Portal에서 정의한 크기 조정 규칙을 보여 줍니다.