지리적으로 분산된 네트워킹 아키텍처 디자인
분산 앱에서는 구성 요소가 안정적으로 통신할 수 있으며 오류가 발생한 경우 요청이 다른 구성 요소 또는 지역으로 라우팅될 수 있도록 해야 합니다.
지역 장애에 대한 취약성을 줄이기 위해 Azure에서 배송 포털을 다시 설계하기로 결정했습니다. 주 지역을 사용할 수 없는 경우 애플리케이션이 보조 영역의 구성 요소로 페일오버되도록 하고자 합니다. 장애 조치로 인해 사용자에게 서비스 전달에 최소 중단이 발생합니다.
여기서는 Azure DNS, Traffic Manager, Front Door 및 Azure CDN이 배송 회사의 앱 아키텍처를 지원하는 방법을 알아봅니다.
Azure DNS
앞에서 설명한 대로 Azure DNS 구현은 변경할 필요가 없습니다. Azure DNS를 사용하여 앱을 식별하는 도메인 이름 레코드를 호스트합니다.
Azure DNS는 Azure 인프라를 통해 전체적으로 이름 확인을 제공합니다. 이 서비스는 본질적으로 다중 지역 서비스이므로 새 아키텍처 디자인에서 이 기능을 지원하도록 기존 Azure DNS 구성을 수정할 필요가 없습니다.
또한 Azure DNS SLA는 유효한 DNS 요청이 항상 하나 이상의 Azure DNS 이름 서버에서 응답을 받도록 100% 보장합니다.
트래픽 라우터 선택
분산 웹 애플리케이션을 사용하여 여러 지역에서 트래픽을 분산하고 리디렉션할 수 있는 서비스가 필요합니다.
Azure는 프런트 엔드 구성 요소 간에 트래픽을 라우팅할 수 있는 여러 가지 서비스를 제공합니다. 단일 지역에 바인딩되어 있으므로 Azure Application Gateway를 바꿔야 한다고 설명했습니다. 해당 지역이 실패하는 경우에는 라우팅을 수행할 수 없습니다.
Azure에는 여러 지역 간에 전역 라우팅을 수행할 수 있으며 단일 지역 중단에 취약하지 않은 두 개의 트래픽 라우터가 있습니다.
- Azure Traffic Manager
- Azure Front Door
애플리케이션에 적합한 라우터를 선택할 수 있도록 이 서비스를 자세히 살펴보겠습니다.
Azure Traffic Manager란?
Azure Traffic Manager는 DNS 레코드를 사용하여 여러 Azure 지역의 대상에 트래픽을 라우팅하는 전역 부하 분산 장치입니다.
모든 요청을 주 지역으로 라우팅하고 해당 지역에서 App Service의 응답을 모니터링하도록 Traffic Manager를 구성할 수 있습니다. 주 지역의 App Service가 실패하면 Traffic Manager는 자동으로 사용자 요청을 보조 지역의 App Service에 라우팅합니다. 이 바꾸기는 연속 서비스를 보장하는 장애 조치를 실행합니다. 이 방식을 우선 순위 라우팅 모드라고 합니다.
Traffic Manager는 DNS 시스템을 사용하여 트래픽을 라우팅하므로 HTTP 트래픽만이 아닌 모든 프로토콜을 라우팅합니다. 그러나 Traffic Manager는 클라이언트 국가 번호 또는 사용자 에이전트 헤더와 같은 HTTP 속성을 기반으로 트래픽을 라우팅하거나 필터링할 수 없습니다. 또한 라우터가 요청의 암호를 해독하고 응답을 암호화하여 App Service 가상 서버에서 해당 로드를 제거하는 TLS(전송 계층 보안) 프로토콜 종료를 수행할 수 없습니다. 이 기능 중 하나가 필요한 경우 Azure Front Door를 사용해야 합니다.
Traffic Manager는 고도로 구성 가능한 엔드포인트 모니터링을 사용합니다. 예를 들어 프로토콜, 포트, 경로, 사용자 지정 헤더 설정, 예상 상태 코드 범위, 허용되는 오류 수를 정의할 수 있습니다. 엔드포인트 모니터링을 통해 애플리케이션의 모든 부분에 대한 전반적인 상태를 지속적으로 파악할 수 있습니다.
Azure Front Door란?
Traffic Manager처럼 Azure Front Door는 전역 부하 분산 장치입니다. Traffic Manager와 달리 이 서비스는 네트워크 애플리케이션 계층, 계층 7에서 작동하며 HTTP 및 HTTPS 속성을 사용하여 필터링 및 라우팅을 수행합니다.
Front Door를 사용하면 Traffic Manager에서 지원하지 않는 다양한 라우팅을 수행할 수 있습니다. 예를 들어 브라우저의 국가 번호에 따라 트래픽을 라우팅할 수 있습니다. 또한 Front Door는 TLS 프로토콜 종료를 지원합니다.
그러나 예외가 있습니다. HTTP 및 HTTPS 이외의 프로토콜에 대한 트래픽을 라우팅하려면 Traffic Manager를 사용해야 합니다.
Front Door를 사용하면 추적 포털을 구성하는 다양한 백 엔드에 우선 순위를 할당할 수 있습니다. 이러한 우선 순위를 통해 Front Door는 필요에 따라 요청을 라우팅합니다. 주 지역 서비스에 가장 높은 우선 순위를 할당하고 보조 지역 서비스에 더 낮은 우선 순위를 할당합니다.
Front Door는 상태 프로브를 구현하여 서비스의 상태를 모니터링하며 오류가 있는 경우 트래픽을 올바르게 라우팅할 수 있습니다. Front Door의 우선 순위 라우팅 모드 및 엔드포인트 모니터링은 Traffic Manager의 기능과 유사합니다. 단, 상태 프로브는 항상 HTTP를 통해 작동한다는 점이 다릅니다.
배송 포털의 웹 UI 및 해당 API에 대한 모든 트래픽은 HTTPS를 통해 수행되며 Azure Traffic Manager를 Front Door로 전환할 수 있습니다. 또한 우선 순위 백 엔드 할당을 사용하여 Front Door를 구성할 수 있습니다.
Azure CDN
단일 지역 아키텍처에서 Azure CDN을 사용하여 Azure Blob Storage의 정적 콘텐츠를 캐시했습니다. Azure CDN 서비스는 사용자에게 가까운 정적 콘텐츠를 캐시하는 글로벌 서버 네트워크입니다. 다중 지역 아키텍처에 맞게 이 서비스를 수정할 필요가 없습니다. 그러나 다음 단원에서 다룰 Azure Storage 계정에 관련된 고려 사항이 있습니다.