Route53 가중치 기반 라우팅을 사용해보자!

Route53 가중치 기반 라우팅을 사용해보자!

Clock Icon2025.03.05

안녕하세요! 클래스메소드 금상원 입니다.
이번 블로그에서는 가중치 기반 라우팅을 사용하여 트래픽을 분산하는 방법에 대해 알아보겠습니다.

가중치 기반 라우팅 이란?

가중치 기반 라우팅은 동일한 이름의 레코드를 작성해 트래픽을 여러 대상(서버, 리전, 인스턴스 등)으로 분산할 때, 각 대상에 부여된 가중치(Weight)에 따라 높은 가중치를 우선적으로 트래픽을 배분하는 방식입니다.

주로 DNS 라우팅, 로드 밸런서, 클라우드 네트워크 설정에서 사용됩니다.

특징

  • 비율 기반 트래픽 분배: 특정 서버나 리전에 더 많은 트래픽을 보내거나, 점진적인 트래픽 전환이 가능
  • 유연한 트래픽 관리: 신규 서비스 배포 시 점진적 롤아웃(예: 10% → 50% → 100%) 가능
  • 부하 분산 최적화: 고성능 서버에는 높은 가중치를, 저성능 서버에는 낮은 가중치를 설정하여 효율적인 리소스 활용 가능

사용 사례

  • A/B 테스트 적용
    • 점진적으로 비율을 조정하여 새로운 서비스로 전환
  • DR(재해 복구) 구성
    • 장애 발생 시 DR 사이트의 가중치를「A:0% B:100%」로 변경하여 트래픽을 전환
  • 멀티 리전 트래픽 분배
    • 리전 간 부하를 조절하여 최적의 성능 유지

Load Balancer와 차이점

로드 밸런서는 실시간으로 서버 부하를 분산하여 트래픽을 자동으로 조정하는 네트워크 장치이며, 가중치 기반 라우팅은 DNS 레벨에서 미리 설정한 비율에 따라 트래픽을 분배하는 방식입니다.

로드 밸런서는 단일 리전 내 서버 부하 분산에 적합하고, 가중치 기반 라우팅은 멀티 리전 운영, A/B 테스트, DR(재해 복구) 구성 등에 활용됩니다.

가중치 기반 라우팅 사용해보기

목표: 가중치 기반 라우팅을 사용하여 두 개의 EC2 웹사이트에 액세스 해보기

준비 사항

스크린샷 2025-03-05 오후 1.45.41

  1. Apache가 설치된 EC2인스턴스 2대
  2. index.html 등의 html 파일 준비

가중치 기반 라우팅 설정하기

스크린샷 2025-03-05 오후 2.48.07

AWS검색창에서 「Route53」 를 검색하고 클릭합니다.


스크린샷 2025-03-05 오후 2.48.34

죄측 메뉴에서 「호스팅 영역」 을 클릭하고 가중치 기반 라우팅을 설정할 호스팅 영역 이름을 클릭 합니다.


스크린샷 2025-03-05 오후 2.47.09

호스팅 영역 이름 화면에서 우측상단의 「레코드 생성」 버튼을 클릭 합니다.


스크린샷 2025-03-05 오후 2.49.58

라우팅 정책 선택 화면에서 「가중치 기반」 을 선택합니다.


스크린샷 2025-03-05 오후 2.50.46

레코드 구성의 기본 구성 화면에서 아래의 내용을 필요에 맞게 설정 합니다.

  • 레코드 이름
    • www.test.com과 같은 이름을 설정 합니다.
  • 레코드 유형
    • 필요에 따라 A레코드등을 설정 합니다.
  • TTL(초)
    • 적절하게 변경사항이 반영되는 시간이나 캐싱이 유지되는 시간을 고려하여 설정 합니다.


스크린샷 2025-03-05 오후 2.52.00

위의 설정을 완료한 후 아래의 화면에서 「가중치 기반 레코드 정의」 버튼을 클릭 합니다.


스크린샷 2025-03-05 오후 3.45.24

가중치 기반 레코드 정의 화면에서 아래의 내용을 필요에 맞게 설정 합니다.

  • 값/트래픽 라우팅 대상
    • 대상 서버의 IP나 ALB등을 설정할 수 있습니다.
  • 가중치
    • 주로 엑세스할 서버에 높은 값을 설정하고 보조 서버에는 낮은 값을 설정합니다.
      • 예 : A서버 :90 / B서버 : 10
  • 상태 확인 ID
    • 필요에 따라 설정 합니다.
  • 레코드 ID
    • 서버별로 다른 값을 설정할 필요가 있습니다.


스크린샷 2025-03-05 오후 3.46.21

서버1의 가중치 기반 레코드를 작성한 후 다시 한번 「가중치 기반 레코드 정의」 버튼을 클릭 하여 서버2의 가중치 기반 레코드를 작성 합니다.


스크린샷 2025-03-05 오후 3.47.11

서버1과 같이 필요에 맞게 설정 합니다.


스크린샷 2025-03-05 오후 3.48.06

서버1, 서버2의 가중치 기반 레코드를 작성했다면 아래의 「레코드 생성」 버튼을 클릭하여 생성합니다.


스크린샷 2025-03-05 오후 3.50.38

작성이 완료되면 레코드 항목에 위에서 작성한 가중치 기반 레코드가 추가된 것을 확인할 수 있습니다.

엑세스 해보기

스크린샷 2025-03-05 오후 3.03.09

작성한 레코드로 접속하면 가중치 값이 높은 서버1에 우선적으로 접속 되는 것을 확인 할 수 있습니다.


스크린샷 2025-03-05 오후 3.51.43

다음은 서버2에 우선적으로 접속하기 위해 가중치 값을 변경 해보겠습니다.

변경할 레코드를 선택한 후 우측에 「레코드 편집」 버튼을 클릭 합니다.


스크린샷 2025-03-05 오후 3.52.47

설정 항목에서 「가중치」 값을 아래와 같이 변경합니다.

  • 예)
    • 서버1 : 10
    • 서버2 : 90

변경한 후 아래의 「저장」 버튼을 클릭 합니다.


스크린샷 2025-03-05 오후 3.41.56

변경된 후 TTL 설정에의해 일정 시간이 지난 후 다시 엑세스를 해보면 서버2에 접속 되는 것을 확인할 수 있습니다.

마무리

이번 블로그에서는 Route53의 가중치 기반 라우팅에 대해 알아 보았습니다.
Route53를 통해 여러 서버에 일정 비율로 트래픽을 전송하여 A/B테스트나 재해 복구를 실현하고 싶으신 분들께 조금이나마 도움이 되었으면 좋겠습니다.

참고 자료

https://docs.aws.amazon.com/ko_kr/Route53/latest/DeveloperGuide/routing-policy-weighted.html

https://dev.classmethod.jp/articles/lim-route53-policy-1/

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.