AZ-204 Certified: 14-Day App Service 배포 슬롯 알아 보기

Deployment slots

Azure App Service 배포 슬롯은 웹앱, Linux 기반 웹앱, 모바일 백 엔드, 또는 API 앱을 각 요금제 계층(Pricing tier)에서 관리할 수 있는 유용한 기능이다. 유효성 검사 및 준비, 롤백의 용이성 등 다양한 이점이 존재한다.

Continuously deploy code

배포 슬롯의 이점

  • 독립적인 호스팅
  • 콘텐츠 및 구성 교환
  • 유효성 검사 준비
  • 중단 없는 배포
  • 슬롯 자동 교환 기능

독집적인 호스팅

각 배포 슬롯은 자체 호스트 이름(Hostname)을 가지고 있으며, 라이브 상태의 앱으로 동작한다.

Staging slot’s hostname

Tip. 라이브 상태로 동작한다는 의미는 사용자가 인터넷을 통해 접근이 가능하고 실시간으로 서비스가 제공되는 상태를 의미한다.

반대로 비라이브(개발 중)인 상태의 앱은 일반 사용자에게 공개되지 않은 상태를 의미하여, 개발자나 테스터 등 관계자만 접근이 가능하다.

콘텐츠 및 구성 교환

프로덕션 슬롯과 다른 배포 슬롯 간에 앱 콘텐츠 및 구성 요소를 교환할 수 있다.

Production slot info
Create staging slot
Slot swap

유효성 검사 준비

비프로덕션 슬롯에 앱을 배포하면 프로덕션 슬롯과 교환하기 전에 변경 사항의 유효성을 검사하고 준비할 수 있다.

TIp. 특히 웹 앱과 같은 복잡한 시스템에서 유효성 검사 단계는 중요하다.

  • 버그 및 문제 식별
    프로덕션 환경에 앱이 배포되기 전에, 앱의 버그 및 문제점을 발견하고 수정한다.
  • 사용자 경험 보장
    사용자의 인터페이스 오류, 사용성 문제 등을 확인하고 수정하여 UX를 최적화 한다.
  • 보안 취약점 점검
    보안은 모든 앱에서 중요한 측면이다. 보안 취약점을 식별하고 해결함으로써, 보안 위험을 최소화 한다.
  • 성능 최적화
    시스템의 부하 테스트, 응답 시간 등을 검토하고 개선한다.
  • 호환성 확인
    다양한 디바이스, 브라우저, 운영 체제에서 앱의 호환성을 검증한다. 사용자 기반을 확장하고 다양한 환경에서 확인한다.
  • 규정 준수 및 표준화
    규제가 있는 산업에서 앱의 특정 표준이나 규정을 준수해야 할 경우 확인한다.

중단 없는 배포

슬롯에 먼저 앱을 배포한 후 프로덕션으로 교환하기 때문에, 교환 과정에서 가동이 중단되지 않는다.

조금 더 상세하게 설명하자면, 먼저 슬롯으로 앱을 배포하고 프로덕션으로 교환하기 때문에 프로덕션으로 교환되기 전에 슬롯에 있는 모든 인스턴스가 준비되어 있는 상태이다. 따라서 앱을 배포할 때 가동 중지가 발생하지 않는다.

Tip. 트리팩 리디렉션(Redirection)도 원활하게 이루어진다.

자동 교환 옵션

자동 교환을 설정하면 사전에 교환 유효성 검사를 생략하고 전체 배포 워크 플로우(Word flow)를 자동화할 수 있다;

교환 후에 문제가 발생하면, 이전의 “마지막 양호한 상태”로 쉽게 되돌릴 수 있다.

Note. 자동 교환 기능에 대한 자세한 설명은 다른 포스트에서 기술

제한 사항

Microsoft Learn App Service 제한

각 App Service Plan 계층은 다양한 수의 배포 슬롯을 지원한다.

Tip. 배포 슬롯을 사용하는데 추가적인 비용은 없다.

앱의 크기를 조정하고 새로운 배포 슬롯을 생성하는 과정은 앱의 확장성과 관리성을 향상시키는 중요한 역할을 한다.

Tip. 이때 고려할 두 가지 주요 사항

계층에 따른 슬롯 지원 수

  • Azure App Service – Pricing tier 는 다른 수의 배포 슬롯을 지원한다.

만약, Premium 계층에서 Standard 계층으로 비용을 절약하고 싶은 경우, 배포 슬롯 수에 주의해야 한다.

Standard 계층은 총 5개의 배포 슬롯을 지원(Production Slot 포함)한다. 현재 사용중인 배포 슬롯의 수가 5개를 넘는 경우, Standard 계층으로 축소할 수 없다.

새 배포 슬롯 생성 시의 초기 상태

  • 새로운 배포 슬롯을 만들 때, 슬롯은 기본적으로 비어있다.

새 슬롯에는 콘텐츠가 존재하지 않는 상태이다. 기존 슬롯을 복제하여 새로운 슬롯을 작성하는 경우, 슬롯의 설정은 복제되지만 내용물(Contents)는 복제되지 않는다. 만약 콘텐츠를 새 슬롯에 배포하고 싶은 경우, 다른 리포지토리 배포 및 분기를 사용할 수 있다.

Tip. 슬롯의 환경 변수, 구성 설정 등은 복제가 가능하다.