Introduction
Azure App Service의 Auto-scaling
(자동 크기 조정)은 웹 앱이 실행되는 동안 리소스 메트릭을 모니터링한다. 이는 워크로드 증가에 대처하기 위해 추가 자원이 필요한 상황을 감지하고, 시스템이 과부하되기 전에 해당 자원을 조절하기 위함이다.
Auto-scaling
기능- 웹 앱에 대한
Auto-scaling rules
작성 - 자동 크기 조정의 영향 및 효과 감시
Tip. 참고 페이지
- Overview of autoscale in Azure
- Get started with autoscale in Azure
- Automatic scaling in Azure App Service
When should you consider auto-scaling?
- 서비스의 탄력성(Elasticity)이 요구되는 경우
- 휴일 및 특정 기간 동안 앱의 사용량 변화에 대응이 가능하다.
- 가용성 및 신뢰도 향상이 요구되는 경우
- 클라이언트의 요청에 대한 시간 지연이나 서버 과부하로 인해 문제에 대응이 가능하다.
What do I consider for auto-scaling?
- 웹 앱의 각 요청에 대한 리소스 처리량
: 단일 요청의 부하가 인스턴스 처리량을 초과할 경우 Scale Out은 적절한 선택이 아니다. - 자동화 규칙에 대한 비용 문제
: Auto-scaling 서비스는 비용에 청구되므로, 수동 작업에 대한 고려도 필요하다. - 기본 인스턴스의 수
: 사용량을 대략적으로 예상하여 확장시에 부담을 최소화할 필요가 있다.
- 요청의 처리량 및 시스템 부하의 불균형에 대한 고려
- 리소스를 집약적으로 처리를 하는 앱의 경우, 특정 인스턴스에 부하가 집중되기 쉽다.
- 다른 인스턴스에 부하 분산이 효율적으로 처리되지 않는다.
- 단일 요청이 서버 인스턴스의 처리량을 초과하는 경우,
Scale Up
이 적절하다. Scale out
은 인스턴스가 만들어지고 로드 밸런싱을 조정하는데 시간이 요구된다.
What is difference Scale Out and Scale Up?
자동 크기 조정은 환경 변화에 대응하여 웹 서버를 추가 혹은 제거하고, 웹 서버 인스턴스 사이의 부하를 분산한다.
Auto-scaling
은 서버의 사양(Resource: CPU, Memory 등)의 변화는 없이 단순히 웹 서버의 수만을 변경Scale out/in
한다.
Tip. 서버의 사양을 변경하는 Scale up/down 과는 다르다.
Auto-scaling rules
규칙은 사용자 정의에 따라 작동한다. 앱의 관리자는 해당 메트릭의 임계값(Threshold)을 지정하면, Auto-scaling rules
은 임계값이 초과될 때 이벤트가 동작하는 구조이다.
Tip. 워크로드가 감소했을 때, 추가된 자원을 해제할 수도 있다.
확장Scale out
의 경우, 이벤트 트리거는 설정된 규칙 중 하나라도 충족될 경우에 동작한다. 반면 축소Scale in
의 경우, 설정된 모든 규칙이 충족되어야 동작한다. 이 때 사용되는 논리 연산자는 OR
과AND
이다.
제한 사항
Tip. Automatic 기능을 이용하려면 SKU Premium 이상이 요구된다.