Amazon Route 53
개발자 안내서 (API 버전 2013-04-01)

라우팅 정책 선택

레코드를 생성할 때 라우팅 정책을 선택하게 되는데, 이는 Amazon Route 53이 쿼리에 응답하는 방식을 결정합니다.

  • 단순 라우팅 정책 – 도메인에 대해 특정 기능을 수행하는 하나의 리소스만 있는 경우(예: example.com 웹 사이트의 콘텐츠를 제공하는 하나의 웹 서버)에 사용합니다.

  • 장애 조치 라우팅 정책 – 액티브-패시브 장애 조치를 구성하려는 경우에 사용합니다.

  • 지리 위치 라우팅 정책 – 사용자의 위치에 기반하여 트래픽 라우팅하려는 경우에 사용합니다.

  • 지리 근접 라우팅 정책 – 리소스의 위치를 기반으로 트래픽을 라우팅하고 필요에 따라 한 위치의 리소스에서 다른 위치의 리소스로 트래픽을 보내려는 경우에 사용합니다.

  • 지연 시간 라우팅 정책 – 여러 AWS 리전에 리소스가 있고 최상의 지연 시간을 제공하는 리전으로 트래픽을 라우팅하려는 경우에 사용합니다.

  • 다중 응답 라우팅 정책 – Route 53이 DNS 쿼리에 무작위로 선택된 최대 8개의 정상 레코드로 응답하게 하려는 경우에 사용합니다.

  • 가중치 기반 라우팅 정책 – 사용자가 지정하는 비율에 따라 여러 리소스로 트래픽을 라우팅하려는 경우에 사용합니다.

단순 라우팅

단순 라우팅에서는 가중치나 지연 시간 같은 특별한 Route 53 라우팅 없이 표준 DNS 레코드를 구성할 수 있습니다. 단순 라우팅에서는 보통 단일 리소스로 트래픽을 라우팅합니다. 예를 들면 웹 사이트에 대한 웹 서버로 라우팅합니다.

Route 53 콘솔에서 단순 라우팅 정책을 선택할 경우 동일한 이름과 유형을 가진 여러 레코드를 만들 수 없지만, 동일 레코드 안에 여러 값(예: 다중 IP 주소)을 지정할 수는 있습니다. (별칭 레코드에 단순 라우팅 정책을 선택한 경우, 현재 호스팅 영역에 단 하나의 AWS 리소스 또는 하나의 레코드만 지정할 수 있습니다.) 한 레코드에 다중 값을 지정한 경우 Route 53이 모든 값을 무작위 순서로 재귀적 해석기로 반환하며, 해석기는 DNS 쿼리를 제출한 클라이언트(웹 브라우저 같은)로 그 값을 반환합니다. 그러면 클라이언트가 값을 하나 선택하고 쿼리를 다시 제출합니다.

단순 라우팅 정책으로 레코드를 만들 때 지정하는 값에 대한 정보는 다음 주제를 참조하십시오.

장애 조치 라우팅

장애 조치 라우팅은 특정 리소스가 정상일 경우 해당 리소스로 트래픽을 라우팅하고 첫 번째 리소스가 비정상일 경우 다른 리소스로 트래픽을 라우팅합니다. 기본 및 보조 레코드는 웹 사이트로 구성되는 Amazon S3 버킷에서 복잡한 레코드 트리에 이르기까지 그 어느 것에도 트래픽을 라우팅할 수 있습니다. 자세한 내용은 액티브-패시브 장애 조치 단원을 참조하십시오.

장애 조치 라우팅 정책으로 레코드를 만들 때 지정하는 값에 대한 정보는 다음 주제를 참조하십시오.

지리적 라우팅

지리적 라우팅을 사용하면 사용자의 지리 위치, 즉 DNS 쿼리가 발생하는 위치를 기반으로 트래픽을 제공하는 리소스를 선택할 수 있습니다. 예를 들어 유럽에서 발생하는 모든 쿼리를 프랑크푸르트 리전에 위치한 ELB 로드 밸런서로 라우팅할 수 있습니다.

지리적 라우팅을 사용하는 경우, 콘텐츠를 지역화하고 웹 사이트의 일부 또는 전체를 사용자의 언어로 제공할 수 있습니다. 또한 지리적 라우팅을 사용하여 배포권이 있는 위치에서만 콘텐츠를 배포할 수 있도록 제한할 수 있습니다. 또한 예측 가능하고 간편하게 관리할 수 있는 방식으로 엔드포인트 간에 로드를 분산하는 데 사용함으로써, 사용자의 위치가 동일한 엔드포인트에 일관되게 라우팅되도록 할 수도 있습니다.

미국에서는 대륙, 국가 또는 주를 기준으로 지리적 위치를 지정할 수 있습니다. 중복되는 지리 지역에 대해 별도의 레코드를 생성하는 경우(예를 들면, 북미에 하나의 레코드, 캐나다에 하나의 레코드) 우선 순위는 가장 작은 지리 지역에 돌아갑니다. 이렇게 하면 한 대륙의 일부 쿼리를 하나의 리소스로 라우팅하고 그 대륙에서 선택된 여러 나라들의 쿼리는 다른 리소스로 라우팅할 수 있습니다. (각 대륙별 국가 목록은 다음(위치)을 참조하십시오).

지리 위치는 IP 주소를 위치에 매핑하는 방식으로 작동합니다. 그러나 일부 IP 주소들은 지리 위치에 매핑되지 않으므로, 7개 대륙 전체를 포괄하는 지리 위치 레코드를 생성한다 해도 Amazon Route 53은 식별할 수 없는 위치로부터 일부 DNS 쿼리를 수신합니다. 어떤 위치에도 매핑되지 않는 IP 주소로부터 온 쿼리, 그리고 지리 위치 레코드를 생성하지 않은 위치로부터 온 쿼리 모두를 처리하는 기본 레코드를 생성할 수 있습니다. 기본 레코드를 생성하지 않으면, Route 53은 그 위치들로부터 온 쿼리에 대해 "응답 없음"으로 응답합니다.

자세한 내용은 Amazon Route 53의 사용자 위치 추정 방법(지리적 위치 및 지리 근접 라우팅) 단원을 참조하십시오.

지리적 위치 라우팅 정책으로 레코드를 만들 때 지정하는 값에 대한 정보는 다음 주제를 참조하십시오.

지리 근접 라우팅(트래픽 흐름 전용)

Amazon Route 53은 지리 근접 라우팅을 사용하여 사용자와 리소스의 지리적 위치를 기반으로 트래픽을 리소스로 라우팅할 수 있습니다. 또한 트래픽이 리소스로 라우팅되는 지리적 리전의 크기를 확장하거나 축소하는 값(바이어스라고 함)을 지정하여 주어진 리소스로 더 많거나 더 적은 트래픽을 라우팅하도록 선택할 수 있습니다.

지리 근접 라우팅을 사용하려면 Route 53 트래픽 흐름을 사용해야 합니다. 리소스에 대한 지리 근접 규칙을 생성하고 각 규칙에 대해 다음 값 중 하나를 지정합니다.

  • AWS 리소스를 사용하는 경우 리소스를 생성한 AWS 리전

  • 비 AWS 리소스를 사용하는 경우 리소스의 위도와 경도

Route 53이 트래픽을 리소스로 라우팅하는 지리적 리전의 크기를 선택적으로 변경하려면 바이어스에 대해 해당하는 값을 지정합니다.

  • Route 53이 트래픽을 리소스로 라우팅하는 지리적 리전의 크기를 확장하려면 바이어스에 대해 1 ~ 99의 양의 정수를 지정합니다. Route 53은 인접 리전의 크기를 축소합니다.

  • Route 53이 트래픽을 리소스로 라우팅하는 지리적 리전의 크기를 축소하려면 -1 ~ -99의 음의 바이어스를 지정합니다. Route 53은 인접 리전의 크기를 확장합니다.

다음 그림에서는 보스턴에 있는 엔드포인트에 대한 레코드의 바이어스를 증가하고 워싱턴 D.C.에 있는 엔드포인트에 대한 레코드의 바이어스를 감소하는 것으로 가정합니다(하나의 값이나 두 값 모두 변경 가능).

  • 보스턴의 엔드포인트에 대한 바이어스를 증가하면 그 엔드포인트가 서비스를 제공하는 지리 영역을 증가하는 효과가 있습니다. 원래는 워싱턴 D.C.에 있는 엔드포인트로 라우팅되었던 필라델피아의 사용자는 이제 보스턴에 있는 엔드포인트로 라우팅됩니다.

  • 워싱턴 D.C.의 엔드포인트에 대한 바이어스를 감소하면 그 엔드포인트가 서비스를 제공하는 지리 영역을 감소하는 효과가 있습니다.

 양수 또는 음수의 바이어스를 추가하면 사용자를 한 엔드포인트에서 다른 엔드포인트로 옮길 수 있습니다.

리소스에 대한 바이어스를 변경할 때의 효과는 다음을 포함하여 여러 요인에 따라 달라집니다.

  • 보유한 리소스의 수.

  • 리소스가 서로 근접한 정도.

  • 지리적 리전 간의 경계 영역 근처에 있는 사용자의 수. 예를 들어 보스턴 및 워싱턴 D.C.에 리소스가 있고 리소스 간에 거의 등거리인 많은 사용자가 뉴욕에 있는 경우, 바이어스를 약간 변경하면 보스턴의 리소스에서 워싱턴 D.C.의 리소스 또는 그 반대 경우의 트래픽이 크게 증가할 수 있습니다.

예상치 못한 트래픽의 증가로 인해 리소스가 부족하지 않도록 바이어스를 조금씩 일정하게 변경하는 것이 좋습니다.

자세한 내용은 Amazon Route 53의 사용자 위치 추정 방법(지리적 위치 및 지리 근접 라우팅) 단원을 참조하십시오.

Amazon Route 53이 바이어스를 사용하여 트래픽을 라우팅하는 방법

다음은 Amazon Route 53이 트래픽 라우팅 방법을 결정하기 위해 사용하는 수식입니다.

양의 바이어스

Biased distance = actual distance * [1 - (bias/100)]

음의 바이어스

Biased distance = actual distance / [1 + (bias/100)]

바이어스 값이 양수일 때 Route 53은 DNS 쿼리의 소스와 지리 근접 레코드(예: AWS 리전의 EC2 인스턴스)에 지정하는 리소스가 실제보다 더 가까웠던 것처럼 처리합니다. 예를 들어 다음과 같은 지리 근접 레코드가 있다고 가정하겠습니다.

  • 양수 바이어스 값 50을 가진 웹 서버 A의 레코드

  • 바이어스가 없는 웹 서버 B의 레코드

지리 근접 레코드가 양수 바이어스 값 50을 가지고 있을 때 Route 53은 쿼리의 소스와 그 레코드에 대한 리소스 사이의 거리를 반으로 줄입니다. 그러면 Route 53에서 어떤 리소스가 쿼리의 소스에 더 가까운지 계산합니다. 웹 서버 A와 B가 쿼리의 소스로부터 각각 150킬로미터와 100킬로미터 떨어져 있다고 가정해 봅시다. 어느 쪽 레코드에도 바이어스가 없다면 Route 53은 더 가까이 있는 웹 서버 B로 쿼리를 라우팅할 것입니다. 하지만 웹 서버 A의 레코드에 양수 바이어스 값 50이 있으므로, Route 53은 웹 서버 A가 쿼리의 소스로부터 75킬로미터 떨어져 있는 것처럼 처리합니다. 결과적으로, Route 53은 쿼리를 웹 서버 A로 라우팅합니다.

다음은 양수 바이어스 값 50에 대한 계산 과정입니다.

Bias = 50 Biased distance = actual distance * [1 - (bias/100)] Biased distance = 150 kilometers * [1 - (50/100)] Biased distance = 150 kilometers * (1 - .50) Biased distance = 150 kilometers * (.50) Biased distance = 75 kilometers

지연 시간 기반 라우팅

애플리케이션이 여러 AWS 리전에서 호스팅된다면, 사용자들의 요청을 지연 시간이 가장 낮은 AWS 리전에서 처리함으로써 최종 사용자를 위해 성능을 향상시킬 수 있습니다.

지연 시간 기반 라우팅을 사용하려면 여러 AWS 리전에 위치하는 리소스에 대해 지연 시간 레코드를 생성해야 합니다. Route 53은 도메인 또는 하위 도메인(example.com 또는 apex.example.com)에 대한 DNS 쿼리를 수신하면 어느 AWS 리전에 지연 시간 레코드가 생성되었는지 확인하고 어느 리전이 사용자에게 가장 낮은 지연 시간을 제공하는지 결정한 후 해당 리전의 지연 시간 레코드를 선택합니다. Route 53은 선택한 레코드의 값(예: 웹 서버의 IP 주소)으로 응답합니다.

예를 들어 미국 서부(오레곤) 리전 및 아시아 태평양(싱가포르) 리전에 ELB 로드 밸런서가 있다고 가정합시다. 각 로드 밸런서에 대해 지연 시간 레코드를 생성했습니다. 다음은 런던에 있는 사용자가 브라우저에 도메인 이름을 입력했을 때 발생하는 현상입니다.

  1. DNS가 Route 53 이름 서버로 쿼리를 라우팅합니다.

  2. Route 53은 런던과 싱가포르 리전 간, 그리고 런던과 오레곤 리전 간의 지연 시간에 대한 데이터를 참조합니다.

  3. 런던 리전과 오레곤 리전 간의 지연 시간이 더 짧다면, Route 53은 오레곤 로드 밸런서의 IP 주소로 쿼리에 응답합니다. 런던 리전과 싱가포르 리전 간의 지연 시간이 더 짧다면, Route 53은 싱가포르 로드 밸런서의 IP 주소로 응답합니다.

인터넷상의 호스트 간 지연 시간은 네트워크 연결 및 라우팅이 시간에 따라 변화하는 양상에 따라 달라집니다. 지연 시간 기반 라우팅은 일정 기간에 걸쳐 수행되는 지연 시간 측정에 기반을 두고 있으며, 측정치는 그 변화 양상을 반영합니다. 이번 주에는 오레곤 리전으로 라우팅되는 요청이 다음 주에는 싱가포르 리전으로 라우팅될 수 있습니다.

참고

브라우저 또는 다른 뷰어가 EDNS0의 edns-client-subnet 확장을 지원하는 DNS 해석기를 사용하는 경우, DNS 해석기는 잘린 버전의 사용자 IP 주소를 Route 53에 전송합니다. 지연 시간 기반 라우팅이 구성된 경우 Route 53은 트래픽을 리소스로 라우팅할 때 이 값을 고려합니다.

지연 시간 라우팅 정책으로 레코드를 만들 때 지정하는 값에 대한 정보는 다음 주제를 참조하십시오.

다중 응답 라우팅

다중 응답 라우팅을 사용하면 Amazon Route 53이 DNS 쿼리에 대해 다수의 값(예: 웹 서버의 IP 주소)을 반환하도록 구성할 수 있습니다. 다중 값은 거의 모든 레코드에 대해 지정할 수 있지만, 다중 응답 라우팅을 사용하면 각 리소스의 상태를 확인할 수도 있으므로 Route 53은 정상 리소스의 값만 반환합니다. 이것이 로드 밸런서를 대체하는 것은 아니지만, 다수의 상태 확인 가능한 IP 주소를 반환하는 기능은 DNS를 사용하여 가용성 및 로드 밸런싱을 개선하는 한 방법입니다.

트래픽을 거의 무작위적으로 웹 서버 같은 다수의 리소스로 라우팅하려면 각 리소스마다 하나씩 다중 응답 레코드를 생성하고, 선택적으로 Route 53 상태 검사를 각 레코드에 연결합니다. Route 53은 최대 8개의 정상 레코드로 DNS 쿼리에 응답하며, DNS 해석기마다 다른 응답을 제공합니다. 해석기가 응답을 캐시한 후 한 웹 서버가 사용 불가능해질 경우 클라이언트 소프트웨어는 응답에 포함된 다른 IP 주소를 시도할 수 있습니다.

다음을 참조하십시오.

  • 상태 확인을 다중 응답 레코드와 연결할 경우 Route 53은 상태 검사가 정상일 경우에만 해당 IP 주소로 DNS 쿼리에 응답합니다.

  • 상태 검사를 다중 응답 레코드와 연결하지 않을 경우 Route 53은 항상 레코드가 정상이라고 간주합니다.

  • 정상 레코드가 8개 이하일 경우 Route 53은 모든 DNS 쿼리에 모든 정상 레코드로 응답합니다.

  • 모든 레코드가 비정상일 경우 Route 53은 최대 8개의 비정상 레코드로 DNS 쿼리에 응답합니다.

다중 응답 라우팅 정책으로 레코드를 만들 때 지정하는 값에 대한 정보는 다중값 응답 레코드 값 단원을 참조하십시오.

가중치 기반 라우팅

가중치 기반 라우팅을 사용하면 다수의 리소스를 단일 도메인 이름(example.com) 또는 하위 도메인 이름(acme.example.com)과 연결하고 각 리소스로 라우팅되는 트래픽 비율을 선택할 수 있습니다. 이러한 방식은 로드 밸런싱, 새 버전의 소프트웨어 테스트 등을 비롯한 다양한 목적에 활용될 수 있습니다.

가중치 기반 라우팅을 구성하려면 각 리소스에 대해 동일한 이름의 레코드를 생성합니다. 각 리소스로 라우팅하려는 트래픽 비율에 해당하는 상대 가중치를 각 레코드에 할당합니다. Amazon Route 53은 그룹 내 전체 레코드의 총 가중치에 대한 비율로 레코드에 할당된 가중치를 기반으로 리소스에 트래픽을 전송합니다.

 특정 리소스로 라우팅되는 트래픽의 양을 계산하는 수식: 지정된 레코드의 가중치 / 모든 레코드의 가중치 합계.

예를 들어 한 리소스에 일부 트래픽만 전송하고 나머지를 다른 리소스로 전송하려는 경우 가중치 1과 255를 지정할 수 있습니다. 가중치 1이 할당된 리소스에는 트래픽의 1/256(1/1+255)이 전송되고, 다른 리소스에는 트래픽의 255/256(255/1+255)이 전송됩니다. 가중치를 변경하여 점진적으로 균형을 조정할 수 있습니다. 특정 리소스로 트래픽 전송을 중단하려면 해당 레코드의 가중치를 0으로 변경할 수 있습니다.

가중치 기반 라우팅 정책으로 레코드를 만들 때 지정하는 값에 대한 정보는 다음 주제를 참조하십시오.

Amazon Route 53의 사용자 위치 추정 방법(지리적 위치 및 지리 근접 라우팅)

지리적 위치 및 지리 근접 라우팅의 정확도를 향상하기 위해 Amazon Route 53은 EDNS0의 edns-client-subnet 확장자를 지원합니다. (EDNS0은 DNS 프로토콜에 몇 개의 확장자 옵션을 추가합니다). Route 53은 DNS 해석기가 edns-client-subnet을 지원할 때만 edns-client-subnet을 사용할 수 있습니다.

  • 브라우저 또는 다른 최종 사용자가 edns-client-subnet을 지원하지 않는 DNS 해석기를 사용하는 경우, Route 53은 DNS 해석기의 소스 IP 주소를 이용해 사용자 위치의 근사치를 측정해 해석기의 위치에 대한 DNS 레코드로 지리 위치 쿼리에 응답합니다.

  • 브라우저 또는 다른 최종 사용자가 edns-client-subnet을 지원하는 DNS 해석기를 사용하는 경우, DNS 해석기는 잘린 버전의 사용자 IP 주소를 Route 53에 전송합니다. Route 53은 DNS 해석기의 소스 IP 주소보다는 잘린 IP 주소에 기반을 두어 사용자의 위치를 결정하는데, 이는 일반적으로 사용자의 위치를 더 정확하게 추정합니다. 그 다음에 Route 53은 사용자의 위치에 대한 DNS 레코드로 지리 위치 쿼리에 응답합니다.

edns-client-subnet에 대한 자세한 내용은 IETF 초안인 DNS 요청의 클라이언트 서브넷를 참조하십시오.