Traffic Manager in Azure
4 minute read
성능 라우팅 알고리즘
- 사용자에게 가장 빠른 응답을 제공
- 가장 가까운 위치로 트래픽을 라우팅하도록 설계된 알고리즘
- 트래픽 관리자가 IP 주소 범위와 Azure 데이터센터 간 왕복 응답 시간을 추적한 테이블을 사용
- 이 테이블은 트래픽 관리자가 인터넷 및 Azure 지경의 변경 내용을 고려해 정기적으로 업데이트함
동작
- 사용자의 DNS 쿼리가 재귀 DNS 서비스를 통해 트래픽 관리자에게 전달되면
- 응답 시간 테이블에서 해당 IP 주소(클라이언트 IP가 아니라 재귀 DNS 서비스의 IP 주소) 범위에 대해 응답시간이 가장 짧은 Azure 데이터센터의 엔드포인트를 선택해 DNS 응답을 반환함
- 엔드포인트를 사용할 수 없는 경우 이 엔드포인트는 응답하지 않음.
- 그러면 클라이언트는 응답받은 엔드포인트를 직접 연결함
- 선택된 Azure 지역의 엔드포인트 성능이 저하되면 다음으로 응답시간이 짧은 가까운 Azure 지역의 엔드포인트로 트래픽을 라우팅함
우선순위 라우팅 알고리즘
- 우선순위로 정렬된 서비스 엔드포인트 목록을 통해 가장 우선순위가 높은 엔드포인트로 트래픽을 라우팅하도록 설계된 알고리즘
- 기본 서비스가 중단될 경우를 대비해 추가적인 백업 서비스를 배포해 서비스 안정성을 제공하는 장애 조치 패턴을 구현시 좋음
- 엔드포인트의 가용성은 엔드포인트 구성 상태와 엔드포인트 모니터링을 기반으로 함
동작
- 사용자의 DNS 쿼리가 재귀 DNS 서비스를 통해 트래픽 관리자에게 전달되면
- 우선순위로 정렬된 엔드포인트 목록에서 가장 높은 우선순위의 엔드포인트(기본 엔드포인트)를 선택해 DNS 응답을 반환함
- 클라이언트는 응답받은 엔드포인트를 직접 연결함
- 기본 엔드포인트를 사용할 수 없는 경우 트래픽 관리자는 그 다음 순위의 장애 조치 엔드포인트로 트래픽을 라우팅함
가중 라우팅 알고리즘
- 엔드포인트에 가중치를 미리 할당하고 이를 이용해 트래픽을 라우팅하거나 균등하게 분산하도록 설계된 알고리즘
- 가중치는 1 ~ 1,000 사이의 정수이고, 기본값은 1이다.
- 가중치가 높을수록 우선순위가 높음
- 가중치에 따라 엔드포인트가 임의로 선택되고 더 높은 가중치를 가진 엔드포인트가 선택될 확률이 높음
- 엔드포인트에 동일한 가중치를 부여하면 트래픽을 균등하게 분산한다.
동작
- 사용자의 DNS 쿼리가 재귀 DNS 서비스를 통해 트래픽 관리자에게 전달되면
- 미리 정의된 가중치를 기반으로 엔드포인트를 임의로 택해 DNS 응답을 반환함
- 클라이언트는 응답받은 엔드포인트를 직접 연결함
시나리오
- 애플리케이션 업그레이드
- 새 엔드포인트를 만들어 트래픽의 초기 백분율을 할당한 다음 점차 늘려가면서 애플리케이션을 업그레이드
- Azure 에플리케이션으로 마이그레이션
- 기존 온프레미스 애플리케이션이나 타사 클라우드 서비스를 Azure로 마이그레이션할 때 Azure 엔드포인트를 배포한 후 이 엔드포인트가 선택되도록 가중치를 조정
- 클라우드를 사용한 용량 즉시 확장
- 온프레미스 엔드포인트 용량이 부족해 엔드포인트를 신속하게 확장해야 할 경우
- Azure에 트래픽 관리자 프로필을 배포하고 Azure 엔드포인트를 신속하게 구성해 트래픽이 Azure 엔드포인트로 전송되는 트래픽 양을 지정
지리적 라우팅 알고리즘
- 엔드포인트에 할당한 지리적 위치 집합과 사용자의 지리적 위치를 비교해 트래픽을 해당 엔드포인트로 라우팅하도록 설계한 알고리즘
- 엔드포인트에는 지리적 위치를 매핑해야 하며 한번 매핑한 위치는 다른 엔드포인트에 중복 매핑할 수 없다.
- 엔드포인트와 매핑된 지역의 요청은 해당 엔드포인트로만 라우팅된다.
동작
- 사용자의 DNS 쿼리가 재귀 DNS 서비스를 통해 트래픽 관리자에게 전달되면
- DNS 쿼리의 원본 IP 주소(로컬 DNS 확인자)를 사용해 사용자의 요청 지역을 확인한 후 매핑된 엔드포인트로 DNS 응답을 반환함
- 클라이언트는 응답받은 엔드포인트를 직접 연결함
DNS 확인자: DNS 클라이언트를 말함. DNS 서버로 이름 풀이를 원하는 호스트에 대한 쿼리를 보내고 DNS 서버에서 받은 응답을 해석해 요청한 클라이언트에 전달하는 역할
- 매핑된 엔드포인트가 중지되었거나 매핑이 없는 지역에서 쿼리가 수행된 경우 NODATA 응답을 반환함
- 지역에 매핑되지 않은 IP 주소를 처리하기 위해 2개 이상의 엔드포인트를 사용하고 하나의 엔드포인트는 지리적 매핑을 ‘모두(전세계)’로 설정한다.
시나리오
- 사용자의 위치에 매핑된 엔드포인트를 통해서만 데이터를 제공받거나
- 지역에 따라 사용자 환경을 다르게 제공하고 컨텐츠를 지역화를 제공해야 하는 경우
다중값 라우팅 알고리즘
- 한 번의 DNS 쿼리 응답에 정상 상태인 여러 엔드포인트를 반환
-
클라이언트는 반환된 엔드포인트에 연결을 시도하고 응답하지 않는 경우 다른 엔드포인트로 연결을 시도할 수 있음
- 엔드포인트 응답이 없는 경우 다시 DNS 쿼리를 하지 않고도 바로 정상 상태의 엔드포인트에 연결을 시도할 수 있기에
- DNS 쿼리 대기시간을 줄이고 서비스의 가용성을 향상시킴
주의점
- 트래픽을 IPv4나 IPv6 엔드포인트에만 라우팅해야 함
- 한 번에 반환하도록 지정할 수 있는 정상 엔드포인트 수는 최대 10개
- DNS 쿼리가 항상 동일한 엔드포인트 집합을 보장하지 않음
서브넷 라우팅 알고리즘
- 사용자 IP 주소가 속한 서브넷 주소 범위를 특정 엔드포인트로 매핑하고 이를 기반으로 트래픽을 라우팅하는 알고리즘
- 엔드포인트에 매핑하는 IP 주소 점위는 CIDR 표기법으로 지정
- 이 주소 범위는 프로필 내에서 고유해야 함
- 매핑되지 않은 주소 범위에서 나오는 요청은 NODATA 응답을 반환
- 이런 경우 응답할 수 있는 대체(fallback) 엔드포인트를 지정할 수 있다.
- 대체 엔드포인트는 주소 범위가 없는 엔드포인트이다.
동작
- 클라이언트가 DNS 쿼리를 수행하면 트래픽 관리자가 해당 DNS 쿼리의 원본 IP 주소(로컬 DNS 확인자의 아웃바운드 IP 주소)를 확인
- 그 다음 매핑된 엔드포인트가 있으면 DNS 응답에 이 엔드포인트를 반환
시나리오
- 서브넷 라우팅은 사용자가 회사 본사에서는 내부용 웹사이트 버전을 접속해 테스트하도록 하거나
- 특정 ISP에서 연결을 시도하는 사용자를 차단하거나 다른 환경을 제공하는 경우
I feedback.
Let me know what you think of this article in the comment section below!
Let me know what you think of this article in the comment section below!
comments powered by Disqus