AWS를 사용하여 애플리케이션을 배포할 때, 도메인 이름을 AWS 리소스와 연결하는 것이 일반적인 작업입니다. 예를 들어, 로드 밸런서나 CloudFront와 같은 리소스를 사용하면서 사용자 지정 도메인 이름을 해당 리소스에 매핑하는 경우가 있습니다. 이때, DNS 설정을 통해 두 가지 주요 옵션을 고려할 수 있습니다: CNAME 레코드와 별칭(Alias) 레코드입니다. 이 블로그에서는 이 두 가지 옵션의 차이점과 각각의 장단점에 대해 살펴보겠습니다.
CNAME 레코드(Canonical Name Record)는 한 도메인 이름을 다른 도메인 이름으로 매핑하는 DNS 레코드입니다. 예를 들어, app.mydomain.com
이라는 도메인을 blabla.anything.com
으로 리다이렉션하고 싶을 때 CNAME 레코드를 사용할 수 있습니다. 이 방식은 여러 애플리케이션에서 널리 사용되며, 도메인 간의 연관성을 쉽게 관리할 수 있습니다.
하지만 CNAME 레코드에는 몇 가지 제한사항이 있습니다. 루트 도메인(Zone Apex)에는 CNAME 레코드를 사용할 수 없습니다. 즉, mydomain.com
과 같이 최상위 도메인 이름에는 CNAME을 설정할 수 없고, 반드시 서브도메인 (www.mydomain.com
등)에만 사용할 수 있습니다.
별칭(Alias) 레코드는 AWS Route 53에서 제공하는 기능으로, 특정 도메인 이름을 AWS 리소스와 연결할 수 있도록 해줍니다. 예를 들어, app.mydoamin.com
을 blabla.amazonaws.com
과 같은 AWS 리소스로 매핑할 수 있습니다. 이는 CNAME과 유사하게 작동하지만, 몇 가지 추가적인 이점이 있습니다.
가장 큰 차이점 중 하나는 루트 도메인에도 별칭 레코드를 사용할 수 있다는 것입니다. 예를 들어, mydomain.com
을 별칭 레코드를 통해 AWS 리소스(예:ELB, CloudFront 배포 등)로 직접 연결할 수 있습니다. 이는 CNAME이 지원하지 않는 기능으로, 루트 도메인을 AWS 리소스와 연결해야 하는 경우 Alias 레코드가 매우 유용합니다.
1. 루트 도메인 지원: 앞서 언급한 바와 같이 별칭 레코드는 루트 도메인에 사용할 수 있습니다. 이는 CNAME 레코드가 제공하지 않는 중요한 기능입니다.
2. 무료 사용: 별칭 레코드를 사용하는 경우, Route 53에서 제공하는 쿼리에 대해 별도의 비용이 부과되지 않습니다.
3. 상태 확인 기능: 별칭 레코드는 AWS 리소스의 상태를 자동으로 확인합니다. 예를 들어, 로드 밸런서의 IP가 변경될 경우, 별칭 레코드는 이를 자동으로 인식하고 갱신합니다.
4. TTL 자동 관리: 별칭 레코드는 Route 53에서 자동으로 TTL(Time-to-Live)을 관리하므로, 수동으로 설정할 필요가 없습니다.
별칭 레코드는 오직 AWS 리소스와의 연결에만 사용할 수 있습니다. 아래는 별칭 레코드를 사용할 수 있는 주요 AWS 리소스입니다.
그러나 주의할 점도 있습니다. EC2 인스턴스의 DNS 이름은 별칭 레코드의 대상이 될 수 없습니다. 이는 별칭 레코드 사용 시 자주 묻는 질문 중 하나이므로, 미리 숙지해 두면 좋습니다.
example.com
)에 대해 DNS 설정을 해야 한다면, CNAME은 사용할 수 없으므로 별칭 레코드를 선택해야 합니다.AWS Route 53에서 제공하는 CNAME 레코드와 별칭 레코드는 각각의 사용 시나리오에 맞는 기능을 제공하며, 올바르게 이해하고 사용하면 DNS 설정을 보다 효율적으로 관리할 수 있습니다. 특히, AWS 리소스와의 통합이 필요한 경우 Alias 레코드를 적극 활용해보세요.