모노산달로스의 행보

[AWS] Route 53의 개념과 Records에 대하여 본문

Infrastructure/AWS

[AWS] Route 53의 개념과 Records에 대하여

모노산달로스 2024. 10. 28. 16:31

aws - Route 53, Records

 

AWS(Amazon Web Services)

 

AWS(Amazon Web Services)는 아마존이 제공하는 클라우드 컴퓨팅 서비스로, 서버, 스토리지, 네트워크 등을 클라우드를 통해 이용할 수 있습니다. 높은 안정성과 확장성을 갖춘 AWS는 클라우드 분야에서 높은 점유율을 차지하고 있습니다. 스파게티처럼 많은 기술이 존재하여 올바른 사용을 위해서는 꼭 학습이 필요합니다. 반대로 배워두면 많은 클라우드 기술을 사용할 수 있게 됩니다.

 


Route 53

What is Route 53?

 

이전에 DNS(Domain Name Service)에 대해서 소개한 바 있습니다. Amazon Web Services에서 DNS를 관리하기 위해서 Route 53를 사용할 수 있습니다.

 

Route 53High Availability와 Scalability를 가지는 Authoritative DNS입니다. 여기서 Authoritative란 유저가 DNS records를 업데이트 할 수 있다는 것을 의미합니다.

 

Route 53의 주요 기능으로 도메인 생성 및 관리와 Health Check가 있습니다. 또한 100%의 SLA Availability를 제공한다는 특징이 존재합니다.

 

이번 포스트에서는 Route 53의 핵심인 Records에 대해서 정리해보겠습니다.

 


 

Route 53 - Records

What is Records?

 

Record(레코드)란 특정 도메인으로의 라우팅 방법을 정의한 것입니다. 각 레코드는 도메인 이름을 비롯한 여러 정보를 가지고 있습니다. Record Types, Routing Policy 그리고 TTL 등이 있습니다.

 

한마디로 정리하자면, 레코드를 사용하여 도메인 요청이 어떻게 라우팅될지 설정할 수 있습니다. 이러한 레코드의 타입으로 다양한 선택지가 존재하는데, 아래에서 주로 사용되는 4개의 타입을 정리했습니다.

 

Record Types

A
호스트 이름과 IPv4를 매핑합니다.

AAAA
호스트 이름과 IPv6를 매핑합니다.

CNAME
호스트 이름과 다른 호스트 이름을 매핑합니다. 대상은 A와 AAAA가 될 수 있습니다.
DNS namespace 혹은 Zone Apex의 상위 노드로 CNAME을 사용할 수 없습니다.
예를 들어 example.com에는 CNAME을 사용할 수 없지만, www.example.com은 가능합니다.

NS
Hosted Zone을 위한 Name Server
서버의 DNS 이름 또는 IP address로 Hosted Zone에 대한 DNS 쿼리 응답이 가능합니다.
트래픽이 도메인으로 라우팅 되는 방식을 제어합니다.

 

Hosted Zone

What is the concept of a hosted zone?

 

Hosted Zone이란 간단히 이야기해서 레코드의 컨테이너입니다. 도메인과 서브 도메인으로 가는 트래픽의 라우팅 방식을 정의합니다. 다시 말해, Hosted Zone은 특정 도메인 이름에 대한 DNS Records의 모음입니다.

 

Hosted Zone은 Public Hosted Zone와 Private Hosted Zone으로 구분할 수 있습니다. 두 방식은 이름 그대로 공개 여부에 따라 결정됩니다.

 

Public Hosted Zone누구든지 접근이 가능하며 도메인 이름의 IP가 무엇인지 알 수 있습니다. Public Domain을 살 때마다 Public Hosted Zone을 만들 수 있습니다.

Private Hosted Zone내부 네트워크에서만 접근이 가능하며 VPC만 URL resolve가 가능합니다. Private Domain을 지원합니다.

 

Public Hosted Zone vs Private Hosted Zone

What are the distinguishing features between the two?

 

 

Public Hosted Zone은 클라이언트로부터 온 쿼리에 응답이 가능합니다. 이를 통해 인터넷상의 도메인 이름을 IP address로 변환하거나, 트래픽을 AWS 리소스로 라우팅할 수 있습니다.

 

이에 반해 Private Hosted Zone은 VPC(Virtual Private Cloud) 내부에서 동작합니다. 이에 따라 VPC 내부에서만 사용되는 프라이빗 도메인 이름을 통해 프라이빗 리소스에 접근할 수 있습니다.

 

둘의 동작방식은 동일합니다. Route 53을 통해 domain name으로부터 IP address 정보를 얻어옵니다. 유일한 차이점은 Public은 누구나 레코드를 쿼리할 수 있고, Private는 VPC 내부에서만 쿼리가 가능하다는 점입니다.

 


 

Route 53 - Records TTL

What is TTL in Records?

 

TTL(Time To Live)는 캐시를 어느 시간만큼 가지고 있을지를 정합니다. DNS 쿼리를 하면 레코드 타입과 IP address 그리고 TTL을 받습니다. TTL은 이러한 결과를 캐시하도록 요청합니다. 즉, 다음에 같은 호스트 이름으로 접속하면 쿼리를 하지 않아도 되는 것을 의미합니다.

 

만약 TTL이 매우 길어지면, Route 53으로 향하는 트래픽은 매우 적어질 것입니다. 하지만 클라이언트가 오래된 레코드를 받을 가능성이 높아집니다. 즉, 새 레코드를 캐시에 저장할 때 까지 오랜 시간을 기다려야합니다.

 

반대로 TTL이 매우 짧아지면, Route 53으로 향하는 트래픽이 증가하고 이는 비용의 증가로 이어지게 됩니다. 하지만 오래된 레코드의 보관 기간이 짧아진다는 장점이 있습니다.

 

레코드를 변경하는 경우

1. TTL을 길게 만듭니다. 이를 통해 클라이언트가 기존 정보를 안정적으로 유지할 수 있습니다.
2. 모든 클라이언트가 긴 TTL을 가지고 있는지 확인합니다.
3. 모두 긴 TTL을 가지고 있다면 레코드를 변경합니다.
4. 레코드 업데이트가 모두 완료되면 TTL을 원래대로 돌려놓습니다.

 

 


Alias Records

How do Alias Records work?"

 

ELB 혹은 CloudFront와 같은 서비스를 사용하는 경우 호스트 이름이 노출됩니다. 이를 보유한 도메인 이름과 매핑하여 사용할 수 있습니다. 매핑을 하면 다양한 장점이 생깁니다. 예를 들어 서버나 인프라의 IP address가 변경되어도 도메인을 수정할 필요가 없어집니다.

 

앞서 언급한 CNAME은 호스트 이름을 다른 호스트 이름으로 매핑합니다. 이를 통해서 도메인 이름을 매핑할 수 있습니다. 하지만 CNAME은 루트 도메인에서 사용하지 못한다는 단점이 있습니다.

 

Alias Records또한 호스트 이름을 다른 호스트 이름으로 매핑합니다. 그런데 Alias Records는 CNAME와 달리 루트 도메인에서도 동작한다는 특징이 존재합니다.

 

Alias Records의 특징

- 기반 ELB에서 IP address가 변경되면 이를 바로 인식합니다.
- Zone Apex의 상위 노드로 사용될 수 있습니다.
- A 또는 AAAA의 record type을 사용하며 TTL이 자동으로 설정됩니다.

 

 

Alias는 Route 53에 한정되지만 호스트 이름이 특정 aws recource로 향하도록 할 수 있습니다. 장점으로 비용이 들지 않는다는 점, 자체적으로 헬스체크가 가능하다는 점이 있습니다.

 


 

Route 53의 기본적인 개념과 더불어 Records에 관련된 내용을 모두 정리했습니다.

 

다음 포스트에서는 Routing Policy에 대해서 알아보겠습니다.