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

weighted_8 서브도메인을 다음과 같이 설정한다.
Weighted로 설정하고, Weight 값은 8로 지정한다. (전체 합 10 기준)weighted_8로 지정한다.이후, Add another record 버튼을 눌러 동일한 서브도메인에 대해 두 번째 서버의 정보를 입력한다.

weighted_2 서브도메인을 다음과 같이 설정한다.
weighted_2로 설정.이로써 전체 트래픽이 8:2 비율로 두 서버에 분산되도록 설정되었다.

weighted가 2개 생성된 것을 볼수 있다.
도메인이 제대로 작동하는지 확인하기 위해 터미널에서 다음 명령어를 입력한다
host weighted.leo4de-dns.click

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

계속해서 host 명령어를 반복 실행하면, 설정한 8:2의 비율에 따라 두 서버 중 하나로 무작위 연결되는 것을 볼 수 있다.
현재 상태에서 아래 명령어를 입력해 서버에 메세지를 전송해 본다
echo hello | nc weighted.leo4de-dns.click 2000

main 서버로 메시지가 정상적으로 전달된 것을 확인할 수 있다.
이제 두 번째 서버(54.180.95.238)를 종료시킨다 (Ctrl + C).

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 기준의 비율로 재조정된다.
이번에는 두 서버 모두를 종료하고 일정 시간 후 헬스 체크 결과를 확인한다. (둘 다 Unhealty상태로 바뀔 때까지 잠시 기다리자.)
두 서버 전부 Unhealty 바뀌었다면 host 명령어로 어디로 연결했는지 확인해보자.
host weighted.leo4de-dns.click

모든 서버가 Unhealthy 상태임에도 불구하고 DNS는 여전히 Weight가 가장 큰 레코드(13.209.75.148)만 반환하고 있다.
이는 Weighted Routing에서 모든 레코드가 Unhealthy일 경우에도 Route 53이 가장 높은 weight를 가진 레코드 하나를 반환하기 때문이다.
Failover Routing과의 차이점:
- Failover는 Primary/Secondary로 구분하고, 모든 서버가 Unhealthy이면 레코드 자체를 반환하지 않거나 다른 동작을 하도록 구성할 수 있음
- Weighted는 모든 레코드가 Unhealthy여도 Weight 기준으로 하나는 반드시 반환됨