Traffic Manager in Azure

on under deploy
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에서 연결을 시도하는 사용자를 차단하거나 다른 환경을 제공하는 경우

ref : 처음 배우는 애저 : Azure Portal로 배우는 애저 도입부터 활용까지

network, azure
comments powered by Disqus