비고
App Service Environment 버전 3은 이 아키텍처의 주요 구성 요소입니다. 버전 1과 2는 2024년 8월 31일에 사용 중지되었습니다.
가용성 영역은 특정 지역에 있는 데이터 센터의 물리적으로 구분된 컬렉션입니다. 영역 간에 리소스를 배포하여 영역으로 제한되는 중단이 애플리케이션의 가용성에 영향을 주지 않도록 할 수 있습니다. 이 아키텍처는 영역 중복 아키텍처에 배포하여 App Service Environment 배포의 복원력을 향상시키는 방법을 설명합니다. 이러한 영역은 근접과 관련이 없습니다. 서로 다른 구독에 대해 서로 다른 물리적 위치에 매핑할 수 있습니다. 아키텍처는 단일 구독 배포를 가정합니다.
가용성 영역을 지원하는 Azure 서비스는 영역, 영역 중복 또는 둘 다일 수 있습니다. 영역 서비스를 특정 영역에 배포할 수 있으며 영역 간에 영역 중복 서비스를 자동으로 배포할 수 있습니다. 자세한 내용은 가용성 영역 지원을 참조하세요. App Service Environment는 영역 중복 배포를 지원합니다.
영역 중복성을 위해 App Service Environment를 구성하는 경우 플랫폼은 선택한 지역에서 사용 가능한 최대 영역 수에 Azure App Service 계획의 인스턴스를 자동으로 배포합니다. 영역 중복을 사용하도록 설정하려면 지역에서 두 개 이상의 영역을 사용할 수 있어야 합니다. 따라서 최소 App Service 계획 인스턴스 수는 항상 2개입니다. 플랫폼은 App Service Environment에 사용할 수 있는 영역 수를 결정합니다.
아키텍처
이 아키텍처의 Visio 파일을 다운로드합니다.
이 아키텍처에 대한 참조 구현은 GitHub에서 사용할 수 있습니다.
이 참조 구현의 App Service Environment 서브넷에 있는 리소스는 표준 App Service Environment 배포 아키텍처의 리소스와 일치합니다. 이 참조 구현은 App Service Environment v3 및 Azure Managed Redis의 영역 중복 기능을 사용하여 더 높은 가용성을 제공합니다. 이 참조 아키텍처의 범위는 단일 지역으로 제한됩니다.
Components
App Service Environment v3 는 영역 중복을 지원하는 격리된 고성능 호스팅 옵션입니다. 영역 중복을 지원하는 지역에서는 App Service Environment의 수명 주기 동안 언제든지 영역 중복을 구성할 수 있습니다. 영역 중복 App Service Environment의 각 App Service 계획에는 둘 이상의 영역에 배포할 수 있도록 2개 이상의 인스턴스가 포함되어야 합니다. 동일한 App Service Environment 내에서 영역 중복 및 비 영역 중복 계획을 결합할 수 있습니다. 인스턴스가 하나만 있는 계획을 구성하려면 먼저 해당 계획에 대한 영역 중복을 사용하지 않도록 설정합니다. 영역 중복은 추가 요금이 발생하지 않습니다. 사용 중인 격리 v2 인스턴스에 대해서만 요금을 지불합니다. 자세한 내용은 App Service Environment의 App Service Environment 가격 책정 및 안정성을 참조하세요. 이 아키텍처에서 App Service Environment v3는 웹앱, API 및 함수를 위한 격리된 고성능 호스팅 플랫폼을 제공합니다.
Azure Virtual Network 는 단일 지역 내의 모든 가용성 영역에 걸쳐 있는 계층 3 IP 기반 네트워크입니다. 또한 가상 네트워크의 서브넷은 가용성 영역 간에 확장됩니다. 자세한 내용은 Virtual Network의 App Service Environment 및 안정성에 대한 네트워크 요구 사항을 참조 하세요. 이 아키텍처에서 Virtual Network는 모든 리소스에 대해 안전하고 격리된 네트워킹을 제공합니다.
Azure Application Gateway v2 는 영역 중복을 지원하는 클라우드 네이티브 웹 트래픽 부하 분산 장치입니다. 이 아키텍처에서는 각 지역의 여러 가용성 영역에 걸쳐 있습니다. 따라서 단일 애플리케이션 게이트웨이는 참조 아키텍처에 표시된 대로 고가용성을 제공합니다. 참조 아키텍처는 일반적인 위협 및 취약성에 대한 향상된 보호를 제공하는 Application Gateway의 웹 애플리케이션 방화벽 SKU를 사용합니다. 이 보호는 OWASP(Open Web Application Security Project)의 CRS(핵심 규칙 집합) 구현을 기반으로 합니다. 자세한 내용은 Application Gateway v2의 안정성을 참조하세요. Application Gateway v2는 영역 중복 웹 트래픽 부하 분산 장치 역할을 합니다.
Azure Firewall 은 고가용성을 위한 기본 제공 지원을 포함하는 클라우드 네이티브 관리형 네트워크 보안 서비스입니다. 추가 구성 없이 여러 영역을 사용할 수 있습니다. 이 아키텍처에서 Azure Firewall은 관리되는 고가용성 네트워크 보안을 제공하여 가상 네트워크의 리소스에 대한 아웃바운드 트래픽을 제어하고 모니터링합니다.
방화벽을 배포할 때 특정 가용성 영역을 구성할 수도 있습니다. 자세한 내용은 Azure Firewall 가용성 영역 지원을 참조하세요. 참조 아키텍처는 이 구성을 사용하지 않습니다.
Microsoft Entra ID 는 가용성 영역 및 지역에 걸쳐 있는 고가용성 고 중복 글로벌 서비스입니다. 자세한 내용은 고급 Microsoft Entra ID 가용성을 참조하세요. 이 아키텍처에서 Microsoft Entra ID는 모든 구성 요소에서 인증 및 권한 부여를 위해 고가용성 중복 ID 및 액세스 관리 서비스를 제공합니다.
GitHub Actions 는 CI/CD(지속적인 통합 및 지속적인 배포) 기능을 지원하는 자동화 플랫폼입니다. 이 아키텍처에서 GitHub Actions는 가상 네트워크 외부에서 앱을 빌드하고 App Service 환경에서 호스트되는 App Service 계획에 배포합니다.
App Service Environment는 가상 네트워크에 있으므로 VM(가상 머신)은 배포를 용이하게 하기 위해 가상 네트워크에서 점프 상자를 제공합니다. 향상된 보안 및 RDP(원격 데스크톱 프로토콜) 및 SSH(Secure Shell) 연결을 위해 점프 상자에 Azure Bastion 을 사용하는 것이 좋습니다.
- Azure Managed Redis 는 영역 중복 서비스입니다. 영역 중복 캐시는 여러 가용성 영역에 배포된 VM에서 실행됩니다. 이 아키텍처에서 Azure Managed Redis는 더 높은 복원력과 가용성을 제공합니다.
고려 사항
이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일련의 기본 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Well-Architected Framework를 참조하세요.
Reliability
안정성은 애플리케이션이 고객에 대한 약정을 충족할 수 있도록 하는 데 도움이 됩니다. 자세한 내용은 안정성에 대한 디자인 검토 검사 목록을 참조하세요.
점프 상자
이 참조 구현은 표준 배포와 동일한 프로덕션 수준 CI/CD 파이프라인을 사용하며 점프 박스 VM은 하나만 사용합니다. 그러나 세 영역 각각에 대해 하나의 점프 상자를 사용할 수 있습니다. 점프 상자는 앱의 가용성에 영향을 주지 않으므로 이 아키텍처는 하나의 점프 상자만 사용합니다. 점프 상자는 배포 및 테스트를 지원합니다.
App Service 환경
가용성 영역에 App Service Environment를 배포하여 중요 비즈니스용 워크로드에 대한 복원력과 안정성을 제공할 수 있습니다. 이 구성을 영역 중복이라고도 합니다.
영역 중복을 구현하는 경우 플랫폼은 선택한 지역의 두 개 이상의 영역에 App Service 계획의 인스턴스를 자동으로 배포합니다. 따라서 최소 App Service 계획 인스턴스 수는 항상 2개입니다.
App Service Environment를 만들 때 또는 환경의 수명 주기에서 언제든지 가용성 영역을 구성할 수 있습니다.
해당 App Service Environment에서 만드는 모든 App Service 계획에는 영역 중복을 사용하도록 설정하려면 최소 두 개의 인스턴스가 필요합니다. 환경이 영역 중복인 경우 개별 App Service 계획에 대해 영역 중복을 선택적으로 사용하도록 설정하고 사용하지 않도록 설정할 수 있습니다. App Service 계획을 단일 인스턴스로 확장하려면 해당 계획에 대한 영역 중복을 사용하지 않도록 설정한 다음 규모 감축 작업을 진행합니다.
지역 하위 집합만 가용성 영역을 지원합니다.
자세한 내용은 App Service의 안정성을 참조하세요.
Resiliency
App Service Environment에서 실행되는 애플리케이션은 Application Gateway에 대한 백 엔드 풀 을 형성합니다. 애플리케이션에 대한 요청이 공용 인터넷에서 제공되면 게이트웨이는 App Service Environment에서 실행되는 애플리케이션에 요청을 전달합니다. 이 참조 아키텍처는 기본 웹 프런트 엔드 내에서 votingApp 구현합니다. 이 상태 프로브는 웹 API 및 Redis 캐시의 상태를 확인합니다.
var uriBuilder = new UriBuilder(Configuration.GetValue<string>("ConnectionEndpoints:VotingDataAPIBaseUri"))
{
Path = "/health"
};
services.AddHealthChecks()
.AddUrlGroup(uriBuilder.Uri, timeout: TimeSpan.FromSeconds(15))
.AddRedis(Configuration.GetValue<string>("ConnectionEndpoints:RedisConnectionEndpoint"));
웹 프런트 엔드, API 또는 캐시를 포함한 구성 요소가 상태 프로브에 실패하는 경우 Application Gateway는 백 엔드 풀의 다른 애플리케이션으로 요청을 라우팅합니다. 이 구성은 요청이 항상 완전히 사용 가능한 App Service Environment 서브넷에서 애플리케이션으로 라우팅되도록 합니다.
표준 참조 구현은 상태 프로브도 사용합니다. 이 구현에서 게이트웨이는 상태 프로브가 실패하면 오류를 반환합니다. 그러나 고가용성 구현은 애플리케이션의 복원력과 사용자 환경의 품질을 향상시킵니다.
비용 최적화
비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 개선하는 방법에 중점을 둡니다. 자세한 내용은 비용 최적화를 위한 디자인 검토 검사 목록을 참조하세요.
고가용성 아키텍처에 대한 비용 고려 사항은 표준 배포와 유사합니다.
다음과 같은 차이점이 비용에 영향을 줄 수 있습니다.
가용성 영역 지원에는 추가 요금이 부과되지 않습니다. 사용하는 인스턴스에 대해서만 요금을 지불합니다. 자세한 내용은 App Service Environment 가격 책정을 참조 하세요.
Azure Managed Redis는 고가용성이 활성화되면 여러 가용성 영역이 있는 지역에서 영역 중복 서비스가 됩니다. 영역 중복 캐시는 지역 내의 여러 가용성 영역에 배포된 노드에서 실행되어 더 높은 복원력과 가용성을 제공합니다.
고가용성, 복원력 및 매우 안전한 시스템에 대한 절판에는 일부 Azure 서비스에 대한 비용 증가가 포함됩니다. 요구 사항을 평가하고 비용을 예측하려면 Azure 가격 계산기를 사용합니다.
이 시나리오를 배포하십시오
이 아키텍처에 대한 참조 구현을 배포하려면 GitHub 추가 사항을 참조하세요. 고가용성 배포에 스크립트를 사용합니다.
기여자
Microsoft는 이 문서를 유지 관리합니다. 다음 기여자는 이 문서를 작성했습니다.
주요 작성자:
- Deep Bhattacharya | 클라우드 솔루션 설계자
- Suhas Rao | 클라우드 솔루션 설계자
LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.
다음 단계
이 아키텍처를 수정하려면 예상 최대 부하 용량에 따라 동일한 지역 내 또는 여러 지역에 걸쳐 애플리케이션의 수평 크기를 조정할 수 있습니다. 여러 지역에 애플리케이션을 복제하면 지진 또는 기타 자연 재해로 인한 오류와 같은 광범위한 지리적 데이터 센터 오류의 위험을 완화하는 데 도움이 될 수 있습니다.
- 수평 크기 조정에 대한 자세한 내용은 App Service Environment를 사용하여 지리적으로 분산된 규모를 참조하세요.
- 전역적이고 고가용성 라우팅 솔루션의 경우 Azure Front Door를 사용하는 것이 좋습니다.