AWS Route 53 라우팅 정책(Routing Policy)을 알아보자!

Hansoo Kim·2021년 1월 13일
2

AWS의 Route 53에는 레코드를 생성할 때 6가지의 라우팅 정책(Routing Policy)을 제공하고 있는데요!
보통 단순 라우팅 정책(Simple routing)으로 생성하거나 가끔 필요에 의해서 가중치 기반 라우팅 정책(Weighted)으로 레코드를 생성해본적이 있지만, 그 외 다른 정책들은 언제 선택해야하며 어떤 방식으로 라우팅을 해주는지 궁금했었습니다. 그래서 라우팅 정책에 대해 한번 알아보는 시간을 한번 가져보려 합니다🧐

Routing Policy?

Routing Policy를 간단하게 정의(?)하면 아래처럼 설명할 수 있습니다.

AWS Route 53이 쿼리에 응답하는 방식

특정 도메인을 호출(쿼리) 했을 때 Route 53이 어떤 방식으로 응답을 해주는가에 따라 정책이 달라지며, 상황에 맞게 라우팅 정책을 선택할 수 있습니다.

Routing Policy 종류

Route 53이 쿼리에 응답하는 방식으로는 6가지가 존재합니다.

👇🏻 (참고!) 설명을 돕기 위한 예시의 그림들은 도메인 등 예민할 수 있는 정보는 보이지 않게끔 가려서 첨부한 것이오니 양해 부탁드립니다🙏🏻

단순 라우팅 정책 (Simple Routing)

단순 라우팅 정책은 이름에서 느껴지듯 특별한 기능(가중치, 지연시간 등)을 제공하지 않으며, 단일 리소스(서버, 로드 밸런서 등)로 트래픽을 라우팅합니다. 일반적으로 가장 많이 사용하는 라우팅 정책입니다. 보통 DNS에서 레코드를 등록하는 방법과 거의 동일하다고 보시면 됩니다.
아래 그림과 같이 레코드 이름, 트래픽을 라우팅할 리소스, 리소스의 값(IP, URL 등), 레코드의 타입, TTL(Time To Live)을 기입하여 레코드를 생성할 수 있습니다.

가중치 기반 라우팅 정책 (Weighted)

가중치 기반 라우팅 정책은 하나의 레코드에서 각각의 리소스로 라우팅되는 비율을 지정하여 설정할 수 있습니다. 새로운 버전의 어플리케이션을 테스트하거나 로드밸런싱의 용도로 사용할 수 있는 라우팅 정책입니다. (로드밸런싱의 용도로 사용할 수는 있겠지만 그렇게 추천드리지는 않습니다.)
아래와 같이 레코드 이름, 레코드 타입, TTL을 기입하면 해당 레코드에 대한 가중치를 지정할 수 있게 됩니다.
가중치는 0~255 사이의 값을 지정할 수 있으며 0으로 지정하게 되면 해당 리소스로는 라우팅을 하지 않습니다.
(Record ID는 단순히 지정한 리소스를 구분하기 위해 설정하는 것이므로 알아보기 쉽게 지정하는게 좋습니다.)

지리적 라우팅 정책 (Geolocation)

지리적 라우팅 정책은 사용자의 위치(DNS 쿼리가 발생하는)를 기반으로 라우팅할 리소스를 지정할 수 있습니다.각 위치마다 사용자들의 특성별로 서비스를 제공할 수 있어 글로벌 서비스에 특화되어 있는 리소스 정책입니다.
마찬가지로 레코드 이름, 레코드 타입, TTL을 기입하면 해당 레코드에 대한 지역(Location)과 라우팅할 리소스를 지정할 수 있습니다.

지연 시간 라우팅 정책 (Latency)

지연 시간 라우팅 정책은 지연 시간이 가장 낮은 AWS 리전의 리소스로 요청을 라우팅합니다.
여러 AWS 리전에서 서비스를 하고 있다면, 사용자에게 가장 최적의 성능의 서비스를 제공할 수 있는 정책입니다.
마찬가지로 레코드 이름, 레코드 타입, TTL을 기입하면 레코드에 대한 리전과 라우팅할 리소스를 지정할 수 있습니다.

장애 조치 라우팅 정책 (Failover)

장애 조치 라우팅 정책은 첫 번째, 두 번째 리소스를 정해두고 첫 번째 리소스가 비정상일 경우 두 번째 리소스로 라우팅합니다. 로드밸런싱 용도로 사용하기에는 어려움이 있습니다. 첫 번째 리소스가 비정상인 경우에만 두 번째 리소스로 라우팅을 하기 때문입니다. 레코드를 정의할 때 특이한 점은, Failover record type을 'Primary'로 지정할 때 Health check 부분은 정상여부를 확인하기 위해 필수로 기입해야 한다는 점입니다. ('Secondary' 는 Health check 기입은 옵션입니다.)

다중 응답 라우팅 정책 (Multivalue answer)

다중 응답 라우팅 정책은 요청에 대해 여러 리소스 값을 반환할 수 있습니다. 로드밸런서 역할을 할 수 있지만 몇 가지 제약사항이 있습니다.(해당 정책으로만 로드밸런싱을 구현하는건 추천드리지 않는 방법입니다.)
Record type을 지정할 때 CNAME, NS 를 지원하지 않으며 리소스 값으로 alb 등의 값을 줄 수 없고 오로지 'IP address or another value' 로만 지정이 가능합니다.

참고 자료

라우팅 정책에 대해 추가로 궁금하신 사항이 있으시다면 아래 AWS 공식 문서를 참고해주세요.
자세한 내용을 확인하실 수 있습니다.
> AWS 공식 문서 - 라우팅 정책

profile
Devops 엔지니어로 일하고 있습니다.

2개의 댓글

comment-user-thumbnail
2021년 1월 17일

유용한 정보 감사합니다 (__)

답글 달기
comment-user-thumbnail
2024년 1월 30일

도움 많이 되었습니다 감사합니다

답글 달기