[AWS] Weighted Routing 실습

Hyunjun Kim·2025년 5월 14일

실습 - (AWS 환경)

목록 보기
9/61

Weighted Routing 실습

  1. Create Record 설정

Route 53 > Hosted zones > my_dns_link 에 들어간 뒤, create recrod 버튼을 클릭한다.

create 설정 화면_weighted 8

weighted_8 서브도메인을 다음과 같이 설정한다.

  • 서브도메인은 weighted로 설정한다.
  • Value에는 첫 번째 서버의 IP 주소를 입력한다.
  • TTL은 60초.
  • Routing policy는 Weighted로 설정하고, Weight 값은 8로 지정한다. (전체 합 10 기준)
  • 첫 번째 서버에 대한 헬스 체크를 연결한다.
  • Record ID는 구분을 위해 weighted_8로 지정한다.

이후, Add another record 버튼을 눌러 동일한 서브도메인에 대해 두 번째 서버의 정보를 입력한다.

create 설정 화면_weighted_2

weighted_2 서브도메인을 다음과 같이 설정한다.

  • 두 번째 서버의 IP 주소를 입력한다.
  • Weight 값은 2로 설정한다.
  • 두 번째 서버에 대한 헬스 체크 연결.
  • Record ID는 weighted_2로 설정.

이로써 전체 트래픽이 8:2 비율로 두 서버에 분산되도록 설정되었다.

Route 53 hosted zone details

weighted가 2개 생성된 것을 볼수 있다.


  1. DNS 연결 테스트

도메인이 제대로 작동하는지 확인하기 위해 터미널에서 다음 명령어를 입력한다

host weighted.leo4de-dns.click

host weighted.leo4de-dns.click 결과

어? 처음에는 2번 서버(54.180.95.238)로 연결된 것을 확인할 수 있다.

host weighted.leo4de-dns.click 여러 번 결과

계속해서 host 명령어를 반복 실행하면, 설정한 8:2의 비율에 따라 두 서버 중 하나로 무작위 연결되는 것을 볼 수 있다.


  1. 서버 장애 상황 테스트

현재 상태에서 아래 명령어를 입력해 서버에 메세지를 전송해 본다

echo hello | nc weighted.leo4de-dns.click 2000

echo hello | nc weighted.leo4de-dns.click 2000 결과

main 서버로 메시지가 정상적으로 전달된 것을 확인할 수 있다.

이제 두 번째 서버(54.180.95.238)를 종료시킨다 (Ctrl + C).

Unhealthy로 바뀜

Route 53의 Health checks 화면에서 두 번째 서버가 Unhealthy 상태로 전환된 것을 확인할 수 있다.

이 상태에서 다시 host 명령어를 실행하면 결과는 다음과 같다.

이제 모든 요청이 첫 번째 서버(13.209.75.148)로만 전달된다.
즉, Route 53은 헬스 체크 결과를 바탕으로 Unhealthy한 인스턴스를 DNS 응답 대상에서 제외한다.

Route 53은 설정된 헬스 체크 결과를 기반으로, Unhealthy 상태인 서버를 라우팅 대상에서 제외한다.
이때 주의할 점은 Weighted Routing의 특성상 Unhealthy 레코드는 weight 계산에서도 제외된다는 것이다.

즉, 세 대 이상 서버가 있다고 가정하고, 그중 한 서버가 Unhealthy 상태가 되면,
남은 Healthy 서버들의 weight 비율로 트래픽을 다시 분산하게 된다.

  • 예를 들어 A:5, B:3, C:2 의 비율로 구성된 상태에서 C가 Unhealthy 상태가 되면,
  • 트래픽은 A:5 / B:3 = 총합 8 기준의 비율로 재조정된다.

  1. 모든 서버가 Unhealthy인 경우

이번에는 두 서버 모두를 종료하고 일정 시간 후 헬스 체크 결과를 확인한다. (둘 다 Unhealty상태로 바뀔 때까지 잠시 기다리자.)

두 서버 전부 Unhealty 바뀌었다면 host 명령어로 어디로 연결했는지 확인해보자.

host weighted.leo4de-dns.click

둘 다 unhealty 상태에서의 host 결과

모든 서버가 Unhealthy 상태임에도 불구하고 DNS는 여전히 Weight가 가장 큰 레코드(13.209.75.148)만 반환하고 있다.

이는 Weighted Routing에서 모든 레코드가 Unhealthy일 경우에도 Route 53이 가장 높은 weight를 가진 레코드 하나를 반환하기 때문이다.

Failover Routing과의 차이점:

  • Failover는 Primary/Secondary로 구분하고, 모든 서버가 Unhealthy이면 레코드 자체를 반환하지 않거나 다른 동작을 하도록 구성할 수 있음
  • Weighted는 모든 레코드가 Unhealthy여도 Weight 기준으로 하나는 반드시 반환됨
profile
Data Analytics Engineer 가 되

0개의 댓글