AZ-204 Certified: 12-Day Scale apps in Azure App Service

Introduction

Azure App Service의 Auto-scaling(자동 크기 조정)은 웹 앱이 실행되는 동안 리소스 메트릭을 모니터링한다. 이는 워크로드 증가에 대처하기 위해 추가 자원이 필요한 상황을 감지하고, 시스템이 과부하되기 전에 해당 자원을 조절하기 위함이다.

  1. Auto-scaling기능
  2. 웹 앱에 대한 Auto-scaling rules 작성
  3. 자동 크기 조정의 영향 및 효과 감시
The following diagram shows the autoscale architecture

Tip. 참고 페이지

When should you consider auto-scaling?

  • 서비스의 탄력성(Elasticity)이 요구되는 경우
    • 휴일 및 특정 기간 동안 앱의 사용량 변화에 대응이 가능하다.
  • 가용성 및 신뢰도 향상이 요구되는 경우
    • 클라이언트의 요청에 대한 시간 지연이나 서버 과부하로 인해 문제에 대응이 가능하다.
Horizontal scaling(Scaling out)

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 UpScale Out의 차이점

Auto-scaling rules

규칙은 사용자 정의에 따라 작동한다. 앱의 관리자는 해당 메트릭의 임계값(Threshold)을 지정하면, Auto-scaling rules은 임계값이 초과될 때 이벤트가 동작하는 구조이다.

Tip. 워크로드가 감소했을 때, 추가된 자원을 해제할 수도 있다.

확장Scale out의 경우, 이벤트 트리거는 설정된 규칙 중 하나라도 충족될 경우에 동작한다. 반면 축소Scale in 의 경우, 설정된 모든 규칙이 충족되어야 동작한다. 이 때 사용되는 논리 연산자는 ORAND 이다.

제한 사항

Tip. Automatic 기능을 이용하려면 SKU Premium 이상이 요구된다.