Anycast 라우팅을 사용하면 여러 Azure 지역에서 동일한 IP 주소를 보급하여 향상된 애플리케이션 가용성, 성능 및 복원력을 제공할 수 있습니다. Azure Route Server를 사용하면 라우팅 메트릭에 따라 트래픽을 가장 가깝거나 가장 최적의 애플리케이션 인스턴스로 자동으로 전송하도록 anycast 라우팅을 구현할 수 있습니다.
이 문서에서는 프라이빗 네트워크를 통해 다중 지역 애플리케이션 배포를 위해 Azure Route Server를 사용하여 애니캐스트 라우팅을 구현하는 방법을 설명합니다.
애니캐스트 라우팅이란?
Anycast 라우팅은 동일한 IP 주소가 여러 위치의 여러 서버 또는 애플리케이션 인스턴스에 할당되는 네트워크 주소 지정 및 라우팅 방법론입니다. 클라이언트가 아무캐스트 IP 주소로 요청을 보내면 네트워크 인프라는 라우팅 프로토콜 및 메트릭에 따라 트래픽을 가장 가깝거나 가장 최적의 서버로 자동으로 라우팅합니다.
애니캐스트 라우팅의 이점
Anycast 라우팅은 다중 지역 배포에 몇 가지 이점을 제공합니다.
- 성능 향상: 트래픽이 가장 가까운 애플리케이션 인스턴스로 자동으로 라우팅되어 대기 시간이 줄어듭니다.
- 향상된 가용성: 한 지역을 사용할 수 없게 되면 트래픽이 다른 지역으로 자동으로 전환됩니다.
- 부하 분산: 라우팅 메트릭에 따라 트래픽을 여러 지역에 분산할 수 있습니다.
- 간소화된 클라이언트 구성: 클라이언트는 실제 서버 위치에 관계없이 단일 IP 주소에 연결합니다.
- 프라이빗 네트워크 지원: DNS 기반 솔루션과 달리 anycast는 개인 IP 주소 및 네트워크에서 작동합니다.
Anycast 및 기타 다중 지역 접근 방식
Azure는 Azure Traffic Manager, Azure Front Door 및 Azure 지역 간 Load Balancer와 같은 다중 지역 배포를 위한 여러 서비스를 제공하지만 이러한 서비스는 공용 인터넷 트래픽 및 공용 IP 주소 지정을 위해 설계되었습니다.
Azure Route Server를 사용하여 Anycast 라우팅은 다음을 위해 설계되었습니다.
- 프라이빗 네트워크 시나리오: 개인 IP 주소 지정이 필요한 애플리케이션
- 하이브리드 연결: 온-프레미스 네트워크에 대한 ExpressRoute 또는 VPN 연결과 관련된 시나리오
- 라우팅 기반 트래픽 관리: DNS 캐싱 또는 클라이언트 동작이 DNS 기반 솔루션을 방해할 수 있는 경우
Azure Route Server를 사용하여 Anycast 구현
Azure Route Server는 ExpressRoute 또는 VPN 연결을 통해 여러 Azure 지역에서 온-프레미스 네트워크로 동일한 경로의 보급을 용이하게 하여 애니캐스트 라우팅을 가능하게 합니다.
아키텍처 개요
anycast 구현은 다음 구성 요소를 사용합니다.
- 여러 Azure 지역: 각 지역은 애플리케이션의 인스턴스를 호스트합니다.
- Azure Route Server: 경로 알림을 관리하기 위해 각 지역에 배포됨
- NVA(네트워크 가상 어플라이언스) : 각 지역의 anycast IP 주소를 보급합니다.
- 허브 및 스포크 토폴로지: NVA와 애플리케이션 인스턴스 간의 연결을 제공합니다.
- ExpressRoute 또는 VPN: Azure 지역을 온-프레미스 네트워크에 연결
구현 토폴로지
다음 다이어그램은 두 Azure 지역을 사용하는 일반적인 애니캐스트 구현을 보여 줍니다. 각 지역에는 다음이 포함됩니다.
- NVA 및 Azure Route Server를 사용하는 허브 가상 네트워크
- 애플리케이션 인스턴스를 호스팅하는 스포크 가상 네트워크
- 온-프레미스 네트워크에 대한 ExpressRoute 연결
애니캐스트 라우팅 작동 방식
-
경로 광고: 각 지역의 NVA는 동일한 IP 주소 접두사(예:
a.b.c.d/32
)를 로컬 Azure Route Server에 보급합니다. - 경로 전파: Azure Route Server는 ExpressRoute 또는 VPN 연결을 통해 이러한 경로를 온-프레미스 네트워크로 전파합니다.
- 경로 선택: 온-프레미스 라우팅 프로토콜은 라우팅 메트릭에 따라 anycast IP 주소에 도달하는 가장 좋은 경로를 선택합니다.
- 트래픽 분산: 클라이언트 트래픽은 선택한 경로에 따라 최적의 지역으로 자동으로 라우팅됩니다.
경로 선택 및 부하 분산
트래픽을 수신하는 지역의 선택은 라우팅 특성에 따라 달라집니다.
- ECMP(동일 비용 다중 경로): 여러 지역의 경로에 동일한 메트릭이 있는 경우 트래픽은 사용 가능한 모든 경로에 균등하게 분산됩니다.
- BGP 경로 기본 설정: AS 경로 길이, 로컬 기본 설정 또는 MED 값과 같은 BGP 특성을 조정하여 라우팅 결정에 영향을 줄 수 있습니다.
- AS 경로 덧붙이기: 특정 경로의 AS 경로를 인위적으로 길게 설정하여 주/보조 운영 전략을 만듭니다.
중요합니다
NVA는 로컬 애플리케이션 인스턴스를 사용할 수 없게 될 때 광고 경로를 중지하는 상태 검사 메커니즘을 구현해야 합니다. 이렇게 하면 트래픽이 실패한 인스턴스(블랙홀링)로 라우팅되지 않습니다.
트래픽 반환 고려 사항
성공적인 애니캐스트 구현에는 반환 트래픽의 적절한 처리가 중요합니다. 이 메서드는 NVA가 들어오는 트래픽을 처리하는 방법에 따라 달라집니다.
트래픽 처리 방법
역방향 프록시 모드 는 NVA가 역방향 프록시로 작동하는 경우 가장 예측 가능한 트래픽 흐름을 제공합니다. 이 구성에서 NVA는 클라이언트에서 원래 연결을 종료하고 애플리케이션 인스턴스에 대한 새 연결을 설정합니다. NVA가 연결의 양쪽을 관리하기 때문에 반환 트래픽은 자연스럽게 동일한 NVA를 통해 다시 흐릅니다.
NVA가 DNAT(대상 네트워크 주소 변환)를 수행할 때 NAT(네트워크 주소 변환) 모드에는 다른 고려 사항이 필요합니다. NVA는 대상 IP 주소를 애니캐스트 IP에서 애플리케이션의 실제 IP 주소로 변환합니다. NVA가 SNAT(원본 NAT)도 수행하는 경우 동일한 NVA를 통해 트래픽 흐름이 다시 반환됩니다. 그러나 SNAT가 수행되지 않는 경우 적절한 반환 트래픽 라우팅을 보장하기 위해 추가 구성이 필요합니다.
반환 트래픽 라우팅
애플리케이션이 원래 클라이언트 IP 주소(SNAT 없음)를 사용하여 트래픽을 수신하는 경우 올바른 NVA를 통해 트래픽 흐름을 반환해야 합니다. 애플리케이션의 서브넷에서 UDR(사용자 정의 경로)을 구성하여 트래픽을 다시 NVA로 보낼 수 있습니다. 이러한 UDR은 온-프레미스 IP 주소 범위를 포함해야 하며 단일 NVA 배포에 적합합니다.
지역당 여러 NVA 인스턴스가 있는 배포의 경우 비대칭 트래픽 고려 사항이 중요합니다. 상태 없는 NVA는 인바운드 및 아웃바운드 흐름이 서로 다른 인스턴스를 통과하는 비대칭 트래픽을 처리할 수 있습니다. 그러나 상태 저장 NVA는 연결 상태를 유지하기 위해 대칭 트래픽 흐름이 필요합니다. 상태 저장 NVA에 대한 솔루션에는 연결 선호도 메커니즘 사용, NVA 인스턴스 간의 세션 공유 구현 또는 세션 지속성을 사용하여 부하 분산 장치 구성이 포함됩니다.
트래픽 흐름에 대한 모범 사례
상태 모니터링은 강력한 상태 검사를 구현하여 애플리케이션 및 NVA 오류를 신속하게 검색해야 합니다. 장애 조치 타이밍을 사용하려면 신속한 장애 조치와 안정성 사이의 균형을 맞추기 위해 적절한 BGP 타이머를 구성해야 합니다. 트래픽 엔지니어링은 BGP 커뮤니티 또는 기타 특성을 사용하여 트래픽 정책을 구현할 수 있습니다. 포괄적인 모니터링 및 경고는 최적의 성능과 빠른 문제 검색을 보장하기 위해 지역 간 경로 광고 및 트래픽 패턴을 추적해야 합니다.
구현 고려 사항
필수 구성 요소 및 요구 사항
Azure Route Server를 사용하여 애니캐스트 라우팅을 구현하기 전에 임의의 캐스트 IP 주소가 기존 Azure 또는 온-프레미스 네트워크와 충돌하지 않도록 IP 주소 할당을 신중하게 계획해야 합니다. 성공적인 배포를 위해서는 BGP 라우팅 정책과 해당 정책이 트래픽 배포에 미치는 영향을 확실하게 이해해야 합니다. 애플리케이션 아키텍처는 여러 지역의 트래픽을 효과적으로 처리하도록 설계되어야 하며, 안정적인 작업을 보장하기 위해 애플리케이션 및 네트워크 가상 어플라이언스 모두에 대한 포괄적인 상태 모니터링을 구현해야 합니다.
배포 모범 사례
anycast 라우팅을 배포할 때 다른 지역으로 확장하기 전에 간단한 2개 지역 배포부터 시작하는 것이 좋습니다. 장애 조치(failover) 시나리오를 정기적으로 테스트하면 시스템이 가용성 요구 사항을 충족하고 가동 중단 중에 예상대로 동작하도록 할 수 있습니다. 대기 시간 및 다른 온-프레미스 위치의 처리량과 같은 성능 메트릭을 모니터링하면 라우팅 구성의 효율성에 대한 중요한 인사이트를 얻을 수 있습니다. BGP 정책 및 의도한 효과에 대한 명확한 설명서를 유지하는 것은 지속적인 관리 및 문제 해결에 매우 중요합니다.
제한 사항 및 고려 사항
Azure Route Server를 사용하여 anycast 라우팅을 구현할 때는 몇 가지 요소를 고려해야 합니다. BGP 수렴 시간은 장애 조치(failover) 이벤트 중에 지연을 발생시킬 수 있으며 복구 기준 시간 목표에 영향을 미칠 수 있습니다. DNS 기반 솔루션에 비해 네트워크 계층 라우팅의 복잡성이 더해지려면 더 많은 전문 지식과 신중한 계획이 필요합니다. 네트워크 계층 라우팅 문제 해결은 애플리케이션 계층 문제를 진단하는 것보다 더 어려울 수 있으며, 특수한 지식과 도구가 요구됩니다. 또한 여러 지역에 걸쳐 더 많은 네트워크 가상 어플라이언스 및 Route Server 인스턴스가 필요하므로 인프라 비용이 증가합니다.