: Domain Name System
사람에게 친숙한 호스트 이름을 IP 주소로 번역해 준다. DNS는 계층적 이름 구조를 가진다.
DNS 관련 용어
: 고가용성, 확장성을 갖춘, 완전히 관리되며 권한있는 DNS
권한이 있다는 것은 DNS 레코드를 업데이트할 수 있다는 것이다. DNS를 완전히 제어할 수 있다.
도메인 레지스트라이다.
Route 53은 여러 DNS 레코드를 정의하고, 레코드를 통해 특정 도메인으로 라우팅한다.
: 레코드의 컨테이너
도메인과 서브도메인으로 가는 트래픽의 라우팅 방식을 정의한다.
AWS에서 만드는 어떤 hosted zone이든 월 50센트를 지불해야 한다.
클라이언트가 웹 서버에 접속한다. DNS 요청을 보내면 TTL이 함께 회신된다. 이 시간동안 클라이언트는 결과를 캐시한다.
로드 밸런서나 CloudFront 등의 AWS의 리소스를 사용하는 경우 호스트 이름이 노출된다. 그리고 보유한 도메인에 호스트 이름을 매핑하고 싶다.
ex) lbl-1234.us-east-2.elb.amazonaws.com → myapp.mydomain.com
CNAME
호스트 이름을 다른 호스트 이름으로 향하게 한다.
루트 도메인 이름이 아닌 경우에만 가능
하기 때문에 mydomain.com 앞에 무언가가 붙어야 한다.
Alias
호스트 이름이 특정 AWS 리소스로 향하게 한다.
루트 도메인, 비루트 도메인에 모두 가능
하다.
무료이다.
TTL을 설정할 수 없다.
- Target
❌ EC2의 DNS 이름에 대해서는 Alias record를 설정할 수 없다.
Route 53이 DNS 쿼리에 응답하는 것을 돕는다.
: 트래픽을 단일 리소스로 보내는 방식
동일한 레코드에 여러 개의 값을 지정하는 것도 가능하다. DNS에 의해 다중 값의 받은 경우에는 클라이언트 쪽에서 그 중 하나를 무작위로 고르게 된다.
상태 확인(Health Check)은 할 수 없다.
: 가중치를 활용해 요청의 일부 비율을 특정 리소스로 보내는 식의 제어가 가능하다.
DNS 레코드들은 동일한 이름과 유형을 가져야 한다.
서로 다른 지역들에 걸쳐 로드 밸런싱을 할 때나 적은 양의 트래픽을 보내 새 애플리케이션을 테스트하는 경우에 사용한다.
가중치를 0으로 설정해서 트래픽 보내기를 중단해 가중치를 바꿀 수 있다.
모든 리소스 레코드 가중치의 값이 0인 경우에는 모든 레코드가 다시 동일한 가중치를 갖게 된다.
: 지연 시간이 가장 짧은(가장 가까운) 리소스로 리다이렉팅을 하는 정책이다.
지연 시간에 민감한 웹사이트나 애플리케이션이 있는 경우에 유용하다.
기본 EC2 인스턴스와 보조 EC2 인스턴스(재해 복구 EC2 인스턴스)가 있다. 기본 인스턴스 상태 확인이 비정상이면 자동으로 Route 53은 2번째의 EC2 인스턴스로 장애 조치한다.
: 사용자의 실제 위치를 기반으로 한다.
일치하는 위치가 없는 경우를 위해 기본 레코드를 생성해야 한다.
사용 사례로는 콘텐츠 분산 제한, 로드 밸런싱, 웹사이트 현지화가 있다.
: 사용자와 리소스의 지리적 위치를 기반으로 트래픽을 리소스로 라우팅하도록 한다.
편향값을 사용해 특정 위치의 리소스에 더 많은 트래픽을 이동하게 할 수 있다.
리소스에 더 많은 트래픽을 보내려면
: 편향값을 증가시켜서 확장하면 된다.
리소스에 트래픽을 줄이려면
: 편향값을 음수로 축소시키면 된다.
: 트래픽을 다중 리소스로 라우팅할 때 사용한다.
정상 상태 확인과 관련이 있다.
다중 값이 있는 단순 라우팅 정책은 상태 확인을 허용하지 않
기 때문에 단순 라우팅 정책의 쿼리가 반환하는 리소스 중 하나는 비정상일 가능성이 있다.