Azure App Service의 안정성
이 문서에서는 가용성 영역과 다중 지역 배포에 대한 정보를 포함하는 지역 내 복원력을 모두 다루는 Azure 앱 Service의 안정성 지원에 대해 설명합니다.
복원력은 사용자와 Microsoft 간의 공동 책임이므로 이 문서에서는 요구 사항을 충족하는 복원력 있는 솔루션을 빌드하는 방법도 다룹니다.
Azure App Service는 웹 애플리케이션, REST API 및 모바일 백 엔드를 호스트하는 HTTP 기반 서비스입니다. Azure 앱 Service는 보안, 부하 분산, 자동 크기 조정 및 자동화된 관리를 위한 기능을 사용하여 애플리케이션에 Microsoft Azure의 기능을 추가합니다. Azure App Service가 애플리케이션 워크로드의 안정성 및 복원력을 강화하는 방법을 살펴보려면 App Service를 사용하는 이유를 참조하세요.
Azure 앱 Service를 배포할 때 애플리케이션 코드를 실행하는 컴퓨팅 작업자를 나타내는 App Service 계획의 여러 인스턴스를 만들 수 있습니다. 플랫폼은 여러 장애 도메인에 인스턴스를 배포하기 위해 노력하지만 가용성 영역에 인스턴스를 자동으로 분산하지는 않습니다.
프로덕션 배포 권장 사항
프로덕션 배포의 경우 다음을 수행해야 합니다.
- 프리미엄 v3 App Service 계획을 사용합니다.
- 영역 중복을 사용하도록 설정하려면 App Service 계획이 최소 3개의 인스턴스를 사용해야 합니다.
- 영역 중복을 사용하도록 설정하려면 App Service 계획이 최소 3개의 인스턴스를 사용해야 합니다.
일시적인 오류
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 그들은 짧은 기간 후에 자신을 수정합니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리하는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure의 일시적인 오류 처리 지침을 따라야 합니다. 일시적인 오류 처리에 대한 자세한 내용은 일시적인 오류를 전달하기 위한 권장 사항을 참조 하세요.
Microsoft에서 제공하는 SDK는 일반적으로 일시적인 오류를 처리하지만 Azure 앱 Service에서 사용자 고유의 애플리케이션을 호스트하기 때문에 다음을 확인하여 일시적인 오류를 발생시키는 것을 방지하는 방법을 고려해야 합니다.
계획의 여러 인스턴스를 배포합니다. Azure 앱 Service는 계획 인스턴스에 대해 자동화된 업데이트 및 기타 형태의 유지 관리를 수행합니다. 인스턴스가 비정상 상태가 되면 서비스는 해당 인스턴스를 새 정상 인스턴스로 자동으로 바꿀 수 있습니다. 교체 프로세스 중에 이전 인스턴스를 사용할 수 없고 새 인스턴스가 트래픽을 처리할 준비가 되지 않은 짧은 기간이 있을 수 있습니다. App Service 계획의 여러 인스턴스를 배포하여 이 동작의 영향을 완화할 수 있습니다.
배포 슬롯을 사용합니다. Azure 앱 서비스 배포 슬롯은 애플리케이션의 가동 중지 시간 배포를 허용하지 않습니다. 배포 슬롯을 사용하여 배포 및 구성 변경이 사용자에게 미치는 영향을 최소화합니다. 또한 배포 슬롯을 사용하면 애플리케이션이 다시 시작될 가능성이 줄어들어 일시적인 오류가 발생합니다.
확장 또는 축소를 피합니다. 대신 일반적인 부하에서 성능 요구 사항을 충족하는 계층 및 인스턴스 크기를 선택합니다. 트래픽 볼륨의 변경 내용을 처리하기 위해 인스턴스만 스케일 아웃합니다. 확장 및 축소는 애플리케이션 다시 시작을 트리거할 수 있습니다.
가용성 영역 지원
Azure 앱 Service는 영역 중복으로 구성할 수 있습니다. 즉, 리소스가 여러 가용성 영역에 분산됩니다. 여러 영역에 분산하면 프로덕션 워크로드가 복원력과 안정성을 달성하는 데 도움이 됩니다. 가용성 영역 지원은 App Service 계획의 속성입니다.
영역 중복 배포를 통해 분산되는 인스턴스는 앱 규모가 확대 및 축소되더라도 다음 규칙 내에서 결정됩니다.
- 최소 App Service 계획 인스턴스 수는 3개입니다.
- 3보다 큰 용량을 지정하고 인스턴스 수를 3으로 나눌 수 있는 경우 인스턴스가 균등하게 분산됩니다.
- 3*N개를 초과하는 모든 인스턴스 수는 나머지 하나 또는 두 개의 영역에 분산됩니다.
App Service 플랫폼이 영역 중복 App Service 계획에 대한 인스턴스를 할당하는 경우 기본 Azure 가상 머신 확장 집합에서 제공하는 최상의 작업 영역 분산을 사용합니다. App Service 계획에서 사용하는 다른 모든 영역에서 각 영역에 동일한 수의 VM 또는 +/- 하나의 VM이 있는 경우 App Service 계획은 "균형"입니다.
영역 중복으로 구성되지 않은 App Service 계획의 경우 VM 인스턴스는 가용성 영역 오류에 복원력이 없습니다. 해당 지역의 모든 영역에서 중단 중에 가동 중지 시간이 발생할 수 있습니다.
요구 사항
- 프리미엄 v2 또는 Premium v3 플랜 유형을 사용해야 합니다.
- 가용성 영역은 최신 App Service 공간에서만 지원됩니다. 지원되는 지역 중 하나를 사용하는 경우에도 리소스 그룹에 대해 가용성 영역이 지원되지 않는 경우 오류가 발생합니다. 워크로드가 가용성 영역을 지원하는 스탬프에 배치되도록 하려면 새 리소스 그룹, App Service 요금제 및 App Service를 만들어야 할 수 있습니다.
- 계획의 인스턴스를 3개 이상 배포해야 합니다.
지원되는 지역
영역 중복 App Service 계획은 가용성 영역을 지원하는 모든 지역에 배포 할 수 있습니다.
App Service Environment v3의 가용성 영역을 지원하는 지역을 보려면 지역을 참조하세요.
고려 사항
영역 중복 App Service 계획에 배포된 애플리케이션은 지역의 여러 영역이 중단되더라도 계속 실행되고 트래픽을 제공합니다. 그러나 가용성 영역 중단 시 App Service 계획 크기 조정, 애플리케이션 만들기, 애플리케이션 구성 및 애플리케이션 게시를 비롯한 비 런타임 동작이 여전히 영향을 받을 수 있습니다. App Service 요금제의 영역 중복은 배포된 애플리케이션에 대한 지속적인 작동 시간만 보장합니다.
비용
App Service Premium v2 또는 Premium v3 플랜을 사용하는 경우 App Service 계획에 3개 이상의 인스턴스가 있는 한 가용성 영역 사용과 관련된 추가 비용은 없습니다. App Service 요금제 SKU, 지정한 용량 및 자동 크기 조정 조건에 따라 크기를 조정하는 모든 인스턴스에 따라 요금이 청구됩니다. 가용성 영역을 사용하도록 설정하지만 용량을 3보다 작게 지정하면 플랫폼은 최소 인스턴스 수를 3개 적용하고 이 세 인스턴스에 대해 요금을 부과합니다.
App Service Environment v3에는 영역 중복에 대한 특정 가격 책정 모델이 있습니다. App Service Environment v3에 대한 가격 책정 정보는 가격 책정을 참조하세요.
가용성 영역 지원 구성
영역 중복성을 사용하려면 지원되는 App Service 계획 유형으로 전환합니다.
새 영역 중복 Azure 앱 서비스 계획을 배포하려면 계획을 배포할 때 영역 중복 옵션을 선택합니다.
새 영역 중복 Azure 앱 서비스 환경을 배포하려면 App Service Environment 만들기를 참조하세요.
영역 중복성은 새 App Service 계획을 만들 때만 구성할 수 있습니다. 영역 중복이 아닌 기존 App Service 계획이 있는 경우 새 영역 중복 계획으로 대체해야 합니다. 가용성 영역을 사용하도록 기존 App Service 계획을 변환할 수 없습니다. 마찬가지로 기존 App Service 계획에서 영역 중복을 사용하지 않도록 설정할 수 없습니다.
용량 계획 및 관리
가용성 영역 오류에 대비하려면 서비스 용량을 과도하게 프로비전하여 솔루션이 1/3 용량 손실을 허용하고 영역 전체가 중단되는 동안 성능 저하 없이 계속 작동할 수 있도록 해야 합니다. 플랫폼에서 세 영역에 걸쳐 VM을 분산하고 하나 이상의 영역 오류를 고려해야 하므로 최대 워크로드 인스턴스 수에 영역 수/(영역 수-1) 또는 3/2의 인수를 곱합니다. 예를 들어 일반적인 최대 워크로드에 4개의 인스턴스가 필요한 경우 6개의 인스턴스 프로비전해야 합니다((2/3 * 6개 인스턴스) = 4개 인스턴스).
영역 간 트래픽 라우팅
정상적인 작업 중에 트래픽은 모든 가용성 영역에서 사용 가능한 모든 App Service 계획 인스턴스 간에 라우팅됩니다.
영역 다운 환경
검색 및 응답: App Service 플랫폼은 가용성 영역에서 오류를 감지하고 응답하는 역할을 담당합니다. 영역 장애 조치(failover)를 시작하기 위해 아무 작업도 수행할 필요가 없습니다.
활성 요청: 가용성 영역을 사용할 수 없는 경우 잘못된 가용성 영역의 App Service 계획 인스턴스에 연결된 진행 중인 모든 요청이 종료되고 다시 시도해야 합니다.
트래픽 경로 변경: 영역을 사용할 수 없는 경우 Azure 앱 Service는 해당 영역에서 손실된 인스턴스를 검색합니다. 새 대체 인스턴스를 자동으로 찾으려고 시도합니다. 그런 다음 필요에 따라 새 인스턴스에 트래픽을 분산합니다.
자동 크기 조정을 구성하고 더 많은 인스턴스가 필요하다고 판단되는 경우 자동 크기 조정은 App Service에 더 많은 인스턴스를 추가하도록 요청합니다.
참고 항목
자동 크기 조정 동작은 App Service 플랫폼 동작과 독립적입니다. 자동 크기 조정 인스턴스 수 사양은 3의 배수일 필요가 없습니다.
Important
영역 아래로 시나리오에서 추가 인스턴스에 대한 요청이 성공한다는 보장은 없습니다. 손실된 인스턴스를 다시 채우는 작업은 최선을 다해 이루어집니다. 가용성 영역이 손실될 때 보장된 용량이 필요한 경우 영역 손실을 고려하도록 App Service 계획을 만들고 구성해야 합니다. App Service 계획의 용량을 과도하게 프로비전하여 이 작업을 수행할 수 있습니다.
장애 복구(Failback)
가용성 영역이 복구되면 Azure 앱 Service는 복구된 가용성 영역에 인스턴스를 자동으로 만들고, 다른 가용성 영역에서 만든 임시 인스턴스를 제거하고, 인스턴스 간 트래픽을 정상적으로 라우팅합니다.
영역 오류 테스트
Azure 앱 Service 플랫폼은 영역 중복 App Service 계획에 대한 트래픽 라우팅, 장애 조치(failover) 및 장애 복구(failback)를 관리합니다. 이 기능은 완전히 관리되므로 가용성 영역 오류 프로세스를 시작하거나 유효성을 검사할 필요가 없습니다.
다중 지역 지원
Azure 앱 서비스는 단일 지역 서비스입니다. 지역을 사용할 수 없게 되면 애플리케이션도 사용할 수 없습니다.
대체 다중 지역 솔루션
애플리케이션이 단일 지역 오류에 덜 취약해지도록 하려면 애플리케이션을 여러 지역에 배포해야 합니다. 이렇게 하려면 다음을 수행해야 합니다.
- 각 지역의 인스턴스에 애플리케이션을 배포합니다.
- 부하 분산 및 장애 조치(failover) 정책을 구성합니다.
- 마지막 애플리케이션 상태를 복구할 수 있도록 지역 간에 데이터를 복제합니다.
이 방법을 보여 주는 예제 아키텍처는 다음을 참조하세요.
- 참조 아키텍처: 고가용성 다중 지역 웹 애플리케이션.
- 재해 복구를 위한 다중 지역 App Service 앱
다중 지역 앱을 만드는 자습서를 따르려면 자습서: Azure 앱 Service에서 고가용성 다중 지역 앱 만들기를 참조하세요.
이 아키텍처를 보여 주는 예제 방법은 App Service Environment를 사용한 고가용성 엔터프라이즈 배포를 참조 하세요.
Backup
기본 계층 이상을 사용하는 경우 App Service 백업 및 복원 기능을 사용하여 App Service 앱을 파일에 백업할 수 있습니다. 이 기능은 코드를 다시 배포하기 어렵거나 디스크에 상태를 저장하는 경우에 유용합니다. 그러나 대부분의 솔루션에서는 App Service 백업에 의존해서는 안 되며, 대신 이 문서에 설명된 다른 방법을 사용하여 복원력 요구 사항을 지원해야 합니다.
SLA(서비스 수준 계약)
Azure 앱 Service에 대한 SLA(서비스 수준 계약)는 서비스의 예상 가용성을 설명합니다. 또한 가용성 기대치를 달성하기 위해 충족해야 하는 조건에 대해서도 설명합니다. 이러한 조건을 이해하려면 온라인 서비스에 대한 SLA(서비스 수준 계약)를 검토 하는 것이 중요합니다.
영역 중복 App Service 계획을 배포하면 SLA에 정의된 가동 시간 비율이 증가합니다.