Routing Policies
Route53에는 많은 종류의 Route 정책이 있습니다. Route53은 트래픽을 직접 관리하지 않고 DNS Query에만 응답하는 방식이므로, 우리가 일전에 ELB에서 처리했던 라우팅과는 조금 거리가 있지만, 정책을 통해 하는 행위가 라우팅과 비슷하여 라우트 정책이라고 명명한 것 같습니다. 즉, 요약하자면 Routing Policy란 Route53이 어떻게 DNS Query에 응답할지 정의하는 정책입니다.
Simple Routing Policy
- 가장 기본적으로 쓰이는 방법으로 트래픽을 하나의 리소스로 보내는 방식입니다.
- 오직 하나의 DNS record set만 가능합니다.
- 위 정책을 이용할 경우 한 레코드에 아래와 같이 여러 개의 values를 지정할 수 있습니다.
- 값이 여러개로 중복이 되면 클라이언트가 전달받은 IP중 하나를 무작위로 선택하여 접근합니다.
- Alias 기능을 사용하는 경우에는 단 하나의 리소스만 레코드의 values로 선택이 가능합니다.
- health Check는 지원하지 않습니다.
Weighted Routing Policy
- 가중치 기반 라우팅은 제공한 가중치를 기반으로 사용자 트래픽을 전송합니다.
- 서로 다른 Region 간에 트래픽을 분할할 수 있습니다.
- 레코드 세트당 여러 IP 주소를 사용할 수 있습니다.
- health check를 사용할 수 있습니다.
- 특정 리소스로 향하는 요청의 %를 조절할 수 습니다.
• 레코드 생성시 여러 개를 추가해 생성할 수 있으며 각 레코드 별로weight를 부여하면 됩니다.
- 전체 weight에 대한 %로 계산 되기 때문에 weight은 합이 꼭 100이 될 필요는 없습니다.
- 가중치를 부여할 DNS 레코드는 반드시 동일한 레코드 이름과 ID을 가져야 합니다.
- 사용 예시
• 리전 사이의 로드 밸런싱
• 새로운 어플리케이션의 버전 테스트: 테스트할 EC2 instance의 비중을 10 정도로 낮게 두어 테스트 해볼 수 있습니다.
- 만약 특정 리소스에 트래픽을 더이상 전송하고 싶지 않다면 가중치를 0으로 설정하면 됩니다.
- 만약 모든 레코드의 가중치가 각각 0이라면 이 때는 모든 레코드가 동일한 가중치를 갖습니다.
Latency Routing
- 라우팅은 User 대 Region 대기 시간, 트래픽을 기반으로 합니다.
•클라이언트로부터 가장 지연 시간이 짧은 region의 리소스로 redirect를 해줍니다.
- 레코드 세트당 여러 IP 주소를 사용할 수 있습니다.
- health check를 사용할 수 있고, failover능력이 있습니다.
- 이 기능은 유저의 지연 시간이 가장 큰 우선순위인 서비스에서 활용하면 좋습니다.
Failover Routing Policy
활성-수동 장애 조치를 구성하려는 경우 장애 조치 라우팅 정책을 사용합니다.
- Primary 레코드를 생성하고 failover에 사용할 Secondary 레코드를 생성해야 합니다.
- health check
• 상태 확인 없이 기본 레코드를 저장할 수 없습니다.
• 상태 확인 없이 보조 레코드를 생성할 수 있습니다.
- primary, secondary 레코드를 모두 생성하고 나면 primary에 장애가 발생했을 때 secondary로 failover를 하게 되며 만약 primary가 복구 되면 다시 primary로 failover back을 할 수 있습니다.
Geolocation Routing Policy
지리적 위치 라우팅을 사용하면 사용자의 지리적 위치, 즉 DNS 쿼리가 시작된 위치를 기반으로 트래픽을 제공하는 리소스를 선택할 수 있습니다.
- 이것은 사용자의 위치를 기반으로 한 라우팅입니다.
- 레코드 세트당 여러 IP 주소를 사용할 수 있습니다.
- 건강 검진을 사용할 수 있습니다.
- 지역을 대륙/ 나라 등으로 한정해서 해당 대륙이나 나라에 대한 요청은 모두 A ip로 이동하도록 설정할 수 있다.
- 해당하는 지역들이 아닐 경우에도 라우팅을 해주어야 하기 때문에 default도 반드시 설정해야 한다.
- 사용 예시
• 웹 사이트의 localization
• 특정 컨텐츠가 다른 지역으로 나가는 것을 막아야 할 때
- Health checks도 사용할 수 있습니다.
Geoproximity Routing Policy
위 지리적 근접성은 리소스를 전세계로 설정한 뒤 특정 리전에 더 많은 트래픽을 보내고 싶은 경우 사용할 수 있는 정책입니다. 즉, 특정 리전의 편향을 증가시켜서 한 리전에서 다른 리전으로 트래픽을 보낼 때 유리합니다.
- 지리적 영역의 크기를 변경하려면 바이어스(편향) 값을 지정합니다.
• 확장하려면(1에서 99까지) – 리소스에 대한 더 많은 트래픽
• 축소(-1 ~ -99) – 리소스에 대한 트래픽 감소
- 사용할 수 있는 리소스는 AWS 리소스와 Non-AWS 리소스 두 가지가 있다.
• AWS resources: AWS region을 특정해 주어야 합니다.
• Non-AWS resources: 이 경우 위도와 경도를 특정해 주어야 합니다.
- 이 기능을 사용하기 위해서는 Route53의 Traffic flow를 설정해야 합니다.
Multivalue Answer Routing policy
Route 53이 무작위로 선택된 최대 8개의 정상 레코드로 DNS 쿼리에 응답하도록 하려는 경우에 사용합니다.
-
트래픽을 다중 리소스로 라우팅할 때 사용합니다 그래서 Route 53은 다중 값과 리소스를 반환합니다
-
health check과 연결하면 다중 값 정책에서 반환되는 유일한 리소스는 pass인 상태입니다.
-
위에서 말했듯이, 각각의 다중 값 쿼리에 최대 8개의 정상 레코드가 반환됩니다
-
ELB와 유사해 보이지만 ELB를 대체할 수는 없습니다
•클라이언트 측면의 로드 밸런싱인 것입니다
-
Simple 라우팅과 매우 유사하지만 두 가지 차이점이 있습니다.
• 여러 레코드 세트를 가질 수 있습니다.
• Health checks도 사용할 수 있습니다.
- Simple policy를 사용하게 되면 health check를 사용하지 않기 때문에 안전을 보장할 수는 없는 반면 Multi values를 사용하면 안전이 보장된다는 장점이 있습니다.
AWS Certified Solutions Architect Associate 시험합격!