Azure App Service 계획 구현

Azure App Service의 애플리케이션은 계획 단계가 시작임. 계획부터 해야한다는 뜻. 이 계획 단계에서는 실행할 앱의 리소스 집합을 정의함. 리소스 집합 << 웹 호스팅의 서버 팜 하고 비슷함. 이 리소스 집합은 ‘같은 앱을 위한 하나 이상의 컴퓨팅 리소스’ 또는 ‘동일한 App Service 계획’에서 실행되게 구성할 수 있음.

App Service 계획에 대해 알아야 할 사항

VM에서 App Service 계획을 구현하고 사용하는 법?

  • App Service 계획 만들 때, 지정된 지역에서 계획에 대한 리소스 세트 생성함.
    • 계획에 포함되는 모든 애플리케이션 << 계획에서 정의된 리소스에서 실행됨
  • App Service 요금제가 정의하는 것
    • OS
      • Linux or Windows
    • 지역
      • 미 서부 등의 물리적인 지역
    • 가격 책정 계층
      • 요금제라고 보면 됨. OS에 따라 비싸질 수도.
    • VM 인스턴스 수
      • 현재 3~30개
    • VM 인스턴스 크기
      • CPU, MEM, 원격 스토리지
  • 계획 단계에서 정의한 리소스가 충분 기존 계획에 새 애플리케이션 추가 가능

App Service 계획 사용 시 고려사항

  • 비용 절감 고려
    • 여러 앱을 동일한 App Service에 배치 << 비용 절감
  • 하나의 계획에서 여러 애플리케이션 고려
    • 공유하는 VM을 쉽게 관리하기 위해 여러 앱이 지원하는 하나의 계획을 만들자.
    • 대충 C타입 커넥터로 통일하는 것 같은 느낌
  • 계획 용량 고려
    • 새 애플리케이션 추가 전에 요구사항 보고 용량을 계획해라
    • 계획을 오버로드 하면 가동 중지 생길 수 있음
  • 애플리케이션 격리 고려
    • 아래의 경우 App Service 계획 새로 만들어 격리해라
      • 리소스 집약적인 애플리케이션
      • 기존 계획에서 독립시키려 함 (애초에 목적이 격리라.. )
      • 애플리케이션에 서로 다른 지역의 리소스 사용

Azure App Service 요금제 가격 책정 확인

Azure App Service 계획 << 얘는 애플리케이션의 스케일링 단위임. 그러니까 App Service에서 쓰는 요금제에 따라 애플리케이션 실행법이 달라짐. 예를 들어, 니가 만든 계획이 5개의 VM 쓰도록 정의돼있다? 그럼 계획의 모든 애플리케이션은 VM 5개 모두에서 실행됨. 자동 스케일링을 위해 계획 구성하면, 모든 애플리케이션도 자연스럽게 스케일 조정됨.

아무튼 이 요금제 계층은 세 범주로 그룹화 할 수 있음.

  • 공유 컴퓨팅
    • 체험, 공유 라는 두 개의 기본 계층이 있음.
    • 다른 App Service 앱과 동일한 VM에서 앱을 실행함.
    • CPU 할당량을 공유 리소스에서 실행되는 각각의 앱에 할당함. 리소스 스케일 아웃 불가능.
    • 개발, 테스트 목적으로만 사용 가능
  • 전용 컴퓨팅
    • 기본, 표준, 프리미엄, 프리미엄 V2, 프리미엄 V3
    • 전용 Azure VM에서 앱 실행
    • 동일한 요금제에 속한 앱만 동일한 컴퓨터 리소스 가짐.
    • 높은 계층일 수록 사용할 수 있는 VM 많아짐.
  • 격리
    • 격리, 격리 V2 계층 << Azure VNet에서 전용 VM 실행함
    • 컴퓨팅 격리 + 네트워크 격리 제공
    • 최대 스케일 아웃 기능 제공

아래 표를 참고할 것.

무료, 공유

다른 애플리케이션과 동일한 VM에서 실행되는 기본 계층임. 일부 앱은 다른 고객에게 속할 수 있음. 개발, 테스트 목적으로만 사용할 수 있으며 SLA가 제공되지 않음. 애플리케이션 마다 각자 계산됨.

기본

기본 요금제 << 트래픽 적고 자동 스케일링, 트래픽 관리 필요없는 앱 실행하는 인스턴스 크기, 수를 기준으로 가격 책정됨 기본 제공 네트워크 부하 분산 << 인스턴스 간 트래픽 자동 분산 Linux 런타임 환경 << Web App for Containers 지원

표준

프로덕션 워크로드 실행하도록 설계됨. 실행하는 인스턴스 크기, 수를 기준으로 가격 책정. 기본 제공 네트워크 부하 분산 지원. VM 인스턴스 수 자동 스케일링 지원. 마찬가지로 Linux에서는 Web App for Containers 지원함.

Premium

프로덕션 애플리케이션에 확장됭 성능. 프리미엄 요금제 < 프리미엄 V2 V2는 빠른 프로세서, SSD, (이중 메모리:코어 비율 가진) Dv2 VM 제공 프리미엄에 추가적인 고급 기능 제공, 더 큰 규모 지원 걍 1세대 계속 써도 됨.

격리

VNet에서 실행해야 하는 중요 업무용 워크로드에 씀. Private 전용 환경에서 앱 실행 가능. 표준보다 더 빠른 프로세서, SSD, 이준 메모리:코어 비율 가진 Dv2 VM 제공. 격리 플랜과 함께 쓰이는 프라이빗 환경 = App Serviec Environment라고도 함. (요청 시) VM 100개 까지 스케일링 가능.

Azure App Service 스케일 업, 아웃

스케일링 << 스케일 업, 스케일 다운 두 가지 있음. 자동 스케일링은 알제?

Azure App Service 스케일링에 대해 알아야 할 사항

  • 스케일 업
    • CPU, MEM, Disk 공간 증가
    • 전용 VM, 커스텀 도메인 등의 추가 기능 사용 가능
    • Azure App Service 가격 계층 변경하여 강화함
  • 스케일 아웃
    • VM 수 증가
    • 최대 30개의 인스턴스
    • 격리 계층의 App Service 쓰면 최대 100개의 인스턴스 사용 가능
    • 인스턴스 수 << 수동 또는 자동
  • 자동 스케일링
    • 스케일 아웃 << 인스턴스 수 자동 증가
    • 미리 정의된 규칙, 일정 기반 작동
  • 가격 책정 계층을 변경하여 언제든지 확장, 축소 가능

Azure App Service 스케일링 사용 시 고려사항

호텔 웹 사이트를 만든다고 가정하자.

  • 플랜 계층은 수동 조정
    • 낮은 계층에서 시작하고 필요에 따라 강화하자
    • 기능 더 안쓰면 축소하여 적약하자
    • 무료 계층 사용도 고려하여 테스트로 시작해보자
    • 커스텀 DNS 추가할 때 공유 계층으로 확장하자
    • SSL 바인딩 할 때 기본 계층으로 확장하자
    • 스테이징 할 때 표준 계층으로 확장하자
    • 더 좋은 성능이 필요하면 동일한 계층에서 VM 크기를 확장하자
  • 자동 스케일링 고려
    • 사용자 지원, 비용 절감을 위함.
    • 설정된 규칙과 조건에 따라 제공되는 기능, 지원 수 제어
    • 부하 감소하면 비용도 감소
  • 재배포 고려 X
    • 스케일링 설정 바꿀 때 다시 배포할 필요가 없음
    • Azure App Service 플랜 내의 모든 애플리케이션에 영향을 줌
  • 다른 Azure 서비스에 대한 스케일링 고려
    • 사용하는 애플리케이션이 Azure SQL DB, Azure Storage 등의 서비스를 쓴다면, 얘네만 별도로 스케일링 가능
    • App Service 요금제와 무관함

Azure App Service 자동 크기 조정 구성

자동 크기 조정에 대해 알아야 할 사항

  • 자동 크기 조정 << 규칙, 조건 집합으로 최대 && 최소 인스턴스 수, 스케일 인 || 아웃 지정
  • 규칙 조건이 충족되면 자동 크기 조정 동작 트리거됨
  • 자동 스케일링 설정 << 프로필로 그룹화 됨
  • 규칙은 트리거, 조정(인 || 아웃) 작업 포함
    • 메트릭 기반 || 시간 기반

    • 크기 조정 모드 및 인스턴스 수에 대한 설정을 포함하여 Azure Portal에서 자동 크기 조정 조건을 만드는 방법을 보여주는 스크린샷.

    • 메트릭 기반

      • 앱 부하에 따라 VM 추가 || 제거
    • 시간 기반

      • 지정된 시간에 따라 크기 조정 트리거
      • 트래픽 증가에 패턴(주말에는 사람이 없더라 등)이 있을 때 유용
  • 자동 크기 조정 엔진 << 알림 설정 가능
    • 자동 크기 조정 이벤트 발생 시 알림 발생
    • 하나 이상의 메일 통보 || 하나 이상의 웹 후크 호출 가능

자동 크기 조정 구성 시 고려사항

  • 최소 인스턴스 수
    • 부하가 아예 없더라도 애플리케이션 실행 됨.
    • 최소가 0이라면 부하 없을 때 앱도 놀겠제
  • 최대 인스턴스 수
    • 설정 시 가능한 총 시간 비용 제한 (??)
  • 적절한 크기 조정
    • 최대, 최소 인스턴스 수 값이 다른 것을 확인
    • 둘 사이 적절한 여백(gap) 설정해야 함
    • 규칙은 최댓값과 최솟값 사이 자동으로 크기 조절
  • 크기 조정 규칙 조합
    • 스케일 아웃, 인 조합을 항상 사용할 것.
    • 안쓰면 오류나거나 부하 증가 시 성능 저하될 수 있음
    • 스케일 인 안쓰면 사용량 대비 엄청난 비용 발생 가능
  • 메트릭 통계
    • 진단 메트릭에 적합한 통계를 주의하여 선택
    • 통계 << 평균, 최소, 최대, 합계 등
  • 기본 인스턴스 수
    • 항상 안전한 기본 인스턴스 수 선택할 것
    • 메트릭 사용 불가능할 때 자동 크기 조정이 조정하는 수임
  • 알림
    • 항상 알림 켜놓을 것
    • 앱 상태 꾸준히 파악할 것