AWS Route 53을 사용하는 이유는 도메인 관리와 유연한 트래픽 라우팅에 있다. 사용자가 웹 브라우저나 애플리케이션을 통해 서비스에 접근할 때 실제로는 서버의 IP 주소를 통해 통신이 이루어진다. 하지만 사용자는 복잡한 IP 주소 대신 abc.com, google.com과 같은 기억하기 쉬운 도메인 이름을 사용한다. 이 도메인 이름을 서버의 IP 주소로 변환해주는 시스템이 바로 DNS(Domain Name System)이다
Route 53의 “53”은 DNS가 사용하는 표준 포트 번호(TCP/UDP 53)에서 온 이름이며, 일반 질의·응답을 주로 UDP 53을 싸고 영역 전송[AXFR – Authoritative Transfer (전체 영역 전송) / IXFR – Incremental Transfer (증분 영역 전송)]이나 DNSSEC 등 큰 응답, 또는 UDP 응답이 잘려(TRUNC) 재시도될 때 TCP 53을 사용한다. 여기서 “Route”는 사용자를 애플리케이션으로 라우팅한다는 의미를 담고 있다. 왜 53인지 검색해 보았는데 전문용어가 난무하다. 네트워크 공부도 하긴 해야 되는데…
DNS의 기본 원리
- 도메인 등록: 서비스 공급자(회사)는 사용하려는 도메인(예: abc.com)을 도메인 등록 대행사(예: 가비아, 후이즈)를 통해 구매하고 해당 도메인이 어떤 IP 주소와 매핑되는지 전 세계 DNS 서버에 등록한다
- 사용자 질의: 사용자가 웹 브라우저에 abc.com을 입력하면, 사용자의 컴퓨터는 먼저 DNS 서버에 abc.com의 IP 주소가 무엇인지 질의(Query)한다
- IP 주소 응답: DNS 서버는 이전에 등록된 정보를 바탕으로 abc.com에 해당하는 IP 주소를 사용자 컴퓨터에 알려준다
- 서버 접근: 사용자 컴퓨터는 응답받은 IP 주소를 사용하여 살제 서버(예: AWS EC2 인스턴스)로 요청을 보내고 서비스를 이용한다. 이 모든 과정은 웹 브라우저가 자동으로 처리하므로 사용자는 IP 주소 변환 과정을 인지하지 못 한다
도메인 등록 대행사의 한계와 Route 53의 필요성
일반적으로 도메인 등록 대행사를 통해 도메인을 구매하고 IP 주소를 매핑할 수 있다. 하지만 이는 단순한 매핑에 그쳐 서비스 운영의 유연성과 확장성에 한계가 있다
- 서비 도메인의 필요성: 하나의 메인 도메인(abc.com) 아래에 www.abc.com, api.abc.com, dev.abc.com 등 다양한 서브 도메인을 생성하여 각각 다른 서비스로 트래픽을 분산하고 싶을 때가 많다. 예를 들어, api.abc.com은 API 서버로, dev.abc.com은 개발 환경 서버로 연결할 수 있다
- 제한적인 매핑 유연성: 일반 도메인 등록 대행사에서는 서브 도메인을 AWS의 다양한 서비스(EC2, 로드 밸런서, S3 등)에 유연하게 매핑하거나, 복잡한 라우팅 정책(예: 지연 시간 기반, 가중치 기반 라우팅)을 적용하기 어렵다
Route 53의 역할과 장점
AWS Route 53은 AWS에서 제공하는 클라우드 기반의 관리형 DNS 웹 서비스이다. 도메인 등록, DNS 레코드 관리, 트래픽 라우팅 등 DNS와 관련된 모든 기능을 제공한다
- 도메인 등록 대행사 위임: 사용자는 먼저 도메인 등록 대행사를 통해 abc.com과 같은 메인 도메인을 구매한 후, 해당 도메인의 DNS 관리를 Route 53으로 위임한다. 이는 도메인 등록 대행사의 네임 서버를 Route 53의 네임 서버로 변경하는 과정을 통해 이루어진다
- 유연한 서브 도메인 관리: Route 53으로 DNS 관리가 위임되면, 사용자는 Route 53에서 www.abc.com, api.abc.com, dev.abc.com 등 원하는 서브 도메인을 생성하고 각 서브 도메인을 AWS 내의 다양한 리소스(EC2 인스턴스, ELB 로드 밸런서, S3 버킷, CloudFront 배포 등)에 유연하게 매핑할 수 있다
- 다양한 라우팅 정책: Route 53은 단순한 IP 매핑을 넘어 다양한 라우팅 정책을 제공하여 트래픽을 효율적으로 관리할 수 있다
- 단순 라우팅: 단일 리소스에 트래픽을 보낸다
- 가중치 기반 라우팅: 여러 리소스 간에 지정된 가중치에 따라 트래픽을 분산한다(예: A 서버에 80%, B 서버에 20% 트래픽 전송)
- 지연 시간 기반 라우팅: 사용자에게 가장 지연 시간이 짧은 리전의 리소스로 트래픽을 보낸다
- 지리적 접근성 라우팅
- Geolocation 라우팅: 사용자 위치(국가 / 대륙 등)에 대해 미리 매핑한 리소스를 보낸다.
- Geoproximity 라우팅: 리소스의 지리적 위치를 기준으로 가장 가까운 리소스를 보내며, bias로 트래픽 영역을 확대 / 축소할 수 있다. 이 정책은 Route 53 Traffic Flow를 사용할 때 구성된다
- 장애 조치 라우팅: 주 리로스에 장애가 발생하면 자동으로 백업 리소스로 트래픽을 전환한다. Route 53 헬스 체크 또는 alias health evaluation 설정이 필요하다
- AWS 서버스와의 통합: Route 53은 AWS의 다른 서비스들과 긴밀하게 통합되어, AWS 클라우드 환경에서 서비스를 구축하고 운영할 때 최적의 성능과 안정성을 제공한다