DNS란 Domain Name System의 약어로, 인터넷에서 사용되는 컴퓨터나 기기들의 주소를 인터넷 사용자가 쉽게 이해하고 기억할 수 있는 도메인 이름(예: www.google.com)으로 변환해주는 시스템
인터넷에 있는 모든 기기들은 IP주소를 가지고 있다(예:172.91.45.12)
하지만 사용자들이 이러한 IP주소를 외우기는 너무어렵다
그러므로, DNS가 이런 IP주소를 도메인 이름으로 변경
인터넷에서 도메인 이름을 이용하여 웹 사이트나 이메일을 찾을 때는 DNS(Domain Name System) 서비스를 사용
DNS 서비스는 계층적으로 구성된 분산 시스템으로 이루어져 있으며, 이 계층 구조에서는 Root DNS Server, TLD DNS Server, SLD DNS Server가 각각의 역할을 수행
1. Root DNS Server
- Root DNS Server는 DNS 계층 구조에서 가장 상위에 위치한 DNS 서버
- 모든 DNS 쿼리는 먼저 Root DNS Server에 도착하여 해당 도메인의 TLD(Top-Level Domain) DNS Server의 주소를 알아내야 한다.
- Root DNS Server는 인터넷 상에서 전 세계에 총 13개가 운영되고 있으며, 이들은 전 세계의 인터넷 서비스 제공 업체들에 의해 운영된다.
2. TLD DNS Server
- TLD DNS Server는 도메인 이름의 최상위 레벨에 해당하는 .com, .net, .org, .kr 등의 TLD를 관리하는 DNS 서버
- 모든 도메인 이름은 하나 이상의 TLD에 속하며, TLD DNS Server는 해당 도메인 이름이 속한 SLD(Secod-Level Domain) DNS Server의 주소를 알려준다.
3. SLD DNS Server
- SLD DNS Server는 도메인 이름의 중간 레벨에 해당하는 DNS 서버
- 도메인 이름의 중간 레벨에 해당하는 부분은 일반적으로 사용자가 만든 이름이며, SLD DNS Server는 해당 도메인 이름에 대한 IP 주소를 반환
👌 즉, Root DNS Server는 인터넷에서 가장 상위에 위치하며, TLD DNS Server는 도메인 이름의 최상위 레벨을 관리하고, SLD DNS Server는 중간 레벨을 관리

- 53은 통신에 사용되는 프로토콜 중 하나인 DNS(Domain Name System)에서 사용하는 기본 포트 번호
- DNS는 인터넷에서 사용되는 컴퓨터나 기기들의 주소를 인터넷 사용자가 쉽게 이해하고 기억할 수 있는 도메인 이름으로 변환해주는 시스템
IPv4와 IPv6는 인터넷 프로토콜 주소 체계입니다. IPv4는 32비트로 구성된 주소 체계로, 최대 약 43억개의 IP 주소를 사용할 수 있다.
192.168.0.1.
하지만, 인터넷 사용자의 증가로 인해 IPv4 주소가 부족해지는 문제가 발생
이에 따라, IPv6가 등장하게 되었습니다. IPv6는 128비트로 구성된 주소 체계로, 약 340경개의 IP 주소를 사용할 수 있습니다.
2001:0db8:85a3:0000:0000:8a2e:0370:7334
IPv6는 IPv4에 비해 주소 고갈 문제를 해결할 수 있을 뿐만 아니라, 보안성과 기능 면에서도 개선
- A 레코드: 호스트네임과 IPv4 주소를 연결
- AAAA 레코드: 호스트네임과 IPv6 주소를 연결
- CNAME 레코드: 호스트네임을 다른 호스트네임과 연결. 다른 호스트네임은 반드시 A 혹은 AAAA 레코드가 있어야 한다
- NS 레코드: 호스트존의 네임서버를 지정
호스트존은 주소록
public 호스트존은 도메인 네임의 IP 주소를 가리키며, private 호스트존은 사설망 내부에서 사용
또한, SOA 레코드는 메타 데이터를, NS 레코드는 네임서버 정보를 담고 있다
CNAME과 Alias는 DNS 레코드의 유형입니다. 두 레코드는 호스트 이름을 다른 호스트 이름에 매핑하는 데 사용 그러나 두 레코드는 서로 다른 용도를 가지고 있다
CNAME 레코드는 호스트 이름을 다른 호스트 이름으로 매핑 이전에 정의된 호스트 이름의 모든 레코드를 복사하여 새 호스트 이름에 할당 이는 호스트 이름이 변경되었거나 호스트 이름이 서로 다른 IP 주소를 가리키도록 하려는 경우에 유용
CNAME은 루트 도메인이 아닌경우에만 적용가능
(ex app.mydomain.com O, mydomain.com X)
Alias 레코드는 호스트 이름을 Amazon S3 버킷, Elastic Load Balancer 또는 Amazon CloudFront 분산 된 웹 사이트와 같은 AWS 리소스에 매핑
이를 통해 AWS 리소스에 대한 DNS 레코드를 만들 수 있다.
Alias 레코드는 Amazon Route 53에서만 지원
Alias가 가능한 서비스들
- Elastic Load Balancer
- Cloudfront
- API Gateway
- Elastic Beanstalk
- S3
- VPC Interface Endpoints
Alias가 불가능한 서비스
- EC2
TTL은 Time to Live의 약어로, DNS 레코드가 캐싱될 수 있는 최대 시간을 나타내는 값
TTL이 높을수록 DNS 레코드가 캐싱될 수 있는 시간이 더 길어지므로, 캐시 효율성은 높아진다.
일반적으로, TTL은 몇 분에서 몇 시간까지로 설정