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 과는 다르다.

Scale Up과 Scale Out의 차이점Auto-scaling rules
규칙은 사용자 정의에 따라 작동한다. 앱의 관리자는 해당 메트릭의 임계값(Threshold)을 지정하면, Auto-scaling rules은 임계값이 초과될 때 이벤트가 동작하는 구조이다.
Tip. 워크로드가 감소했을 때, 추가된 자원을 해제할 수도 있다.
확장Scale out의 경우, 이벤트 트리거는 설정된 규칙 중 하나라도 충족될 경우에 동작한다. 반면 축소Scale in 의 경우, 설정된 모든 규칙이 충족되어야 동작한다. 이 때 사용되는 논리 연산자는 OR 과AND 이다.
제한 사항
Tip. Automatic 기능을 이용하려면 SKU Premium 이상이 요구된다.
