AWS Route 53은 도메인 이름을 IP 주소로 변환하는 관리형 DNS 서비스입니다. 도메인 등록, DNS 레코드 관리, Health Check를 통한 트래픽 라우팅을 하나의 서비스에서 처리할 수 있습니다. 서비스 이름의 53은 DNS 표준 포트 번호에서 유래합니다. AWS 리소스와 긴밀하게 통합되어 ALB, CloudFront, S3 같은 서비스와 쉽게 연동됩니다.
DNS(Domain Name System): 사람이 읽을 수 있는 도메인 이름(example.com)을 컴퓨터가 통신에 사용하는 IP 주소(203.0.113.1)로 변환하는 시스템.
Hosted Zone은 특정 도메인에 대한 DNS 레코드를 관리하는 컨테이너입니다. example.com에 대한 Hosted Zone을 생성하면, 그 안에서 www.example.com, api.example.com 등의 서브도메인 레코드를 관리합니다.
Hosted Zone은 두 종류입니다.
DNS 레코드는 도메인 이름과 대상의 매핑을 정의합니다. 주요 레코드 유형은 다음과 같습니다.
| 유형 | 설명 |
|---|---|
| A | 도메인을 IPv4 주소로 매핑 |
| AAAA | 도메인을 IPv6 주소로 매핑 |
| CNAME | 도메인을 다른 도메인 이름으로 매핑 |
| MX | 메일 서버 지정 |
| TXT | 텍스트 정보 (도메인 인증 등) |
| NS | 네임서버 지정 |
Route 53의 Alias 레코드는 AWS 고유의 확장 기능입니다. 일반 CNAME은 루트 도메인(example.com)에 사용할 수 없지만, Alias는 루트 도메인을 ALB, CloudFront, S3 웹사이트 엔드포인트 등 AWS 리소스에 직접 매핑할 수 있습니다.
example.com --Alias--> my-alb-12345.ap-northeast-2.elb.amazonaws.com
Alias 레코드는 DNS 쿼리 요금이 부과되지 않으며, 대상 리소스의 IP가 변경되면 자동으로 반영됩니다. AWS 리소스를 대상으로 할 때는 CNAME 대신 Alias를 사용하는 것이 권장됩니다.
루트 도메인(Apex Domain): www 없이 도메인 자체(example.com)를 가리키는 최상위 도메인. CNAME 표준 규격은 루트 도메인에서의 사용을 금지합니다.
Health Check는 대상 엔드포인트의 가용성을 주기적으로 확인합니다. HTTP, HTTPS, TCP 프로토콜을 지원하며, 응답 코드와 응답 본문으로 정상 여부를 판단합니다.
Health Check를 라우팅 정책과 결합하면 정상 리소스로만 트래픽을 보내는 고가용성 구성을 만들 수 있습니다.
Route 53은 다양한 라우팅 정책을 제공합니다.
Simple: 단순 도메인-IP 매핑. 단일 리소스에 사용합니다.
Weighted: 비율로 트래픽을 분배합니다. 새 버전 배포 시 소량의 트래픽만 먼저 보내는 카나리 배포에 활용됩니다.
example.com
|-- 90% --> v1 서버
|-- 10% --> v2 서버 (신버전 테스트)
Failover: Primary가 Health Check를 통과하지 못하면 Secondary로 자동 전환합니다. DR(재해 복구) 구성에 사용합니다.
Latency-based: 사용자와 가장 지연이 낮은 리전으로 라우팅합니다. 글로벌 서비스에서 응답 속도를 최적화할 때 사용합니다.
Geolocation: 사용자의 지리적 위치를 기반으로 라우팅합니다. 국가별로 다른 콘텐츠를 제공하거나 컴플라이언스 요구사항을 충족할 때 활용합니다.
Geoproximity: 지리적 위치와 설정한 편향값(Bias)을 결합해 라우팅합니다. 특정 리전으로 더 많은 트래픽을 유도할 수 있습니다.
Multivalue Answer: 여러 IP를 반환하여 클라이언트 측 로드 밸런싱을 지원합니다. Health Check와 결합해 정상 엔드포인트만 반환합니다.
도메인 등록부터 DNS 관리, 상태 확인, 트래픽 제어까지 Route 53 하나로 처리할 수 있어 AWS 기반 서비스의 네트워크 진입점을 효율적으로 관리할 수 있습니다.