CNAME 레코드(정규 이름)

DNS 레코드 유형
하나의 도메인 이름을 다른 도메인 이름으로 가리키는 별칭을 만드는 DNS 레코드로, 일반적으로 서브도메인 및 CDN 구성에 사용됩니다.
← 용어집으로 돌아가기

CNAME 레코드란?

CNAME(Canonical Name, 정식 이름) 레코드는 한 도메인 이름을 다른 도메인 이름의 별칭으로 만드는 DNS 레코드 유형입니다. A 레코드처럼 IP 주소를 직접 가리키는 대신 다른 도메인 이름을 가리키며, 그 이름이 다시 IP 주소로 해석됩니다.

CNAME 레코드의 작동 방식

CNAME을 설정하면:

www.example.com.    IN    CNAME    example.com.

해석 과정:

1. 사용자가 www.example.com을 요청

2. DNS가 example.com을 가리키는 CNAME을 찾음

3. DNS가 example.com의 A 레코드를 다시 해석

4. 최종 IP 주소를 반환

이런 연쇄 해석 때문에 CNAME 대상은 최종적으로 A 또는 AAAA 레코드로 해석되어야 합니다.

CNAME의 일반적인 사용 사례

WWW 하위 도메인

www를 루트 도메인으로 연결합니다.

www    IN    CNAME    example.com.

CDN 통합

도메인을 CDN 엔드포인트로 연결합니다.

cdn.example.com    IN    CNAME    d111111abcdef8.cloudfront.net.

플랫폼 호스팅

호스팅 제공업체를 가리킵니다.

blog.example.com    IN    CNAME    yoursite.wordpress.com.

shop.example.com IN CNAME shops.myshopify.com.

SaaS 애플리케이션

하위 도메인을 SaaS 플랫폼에 연결합니다.

docs.example.com    IN    CNAME    example.gitbook.io.

status.example.com IN CNAME stats.uptimerobot.com.

CNAME과 A 레코드 비교

상황CNAME 사용A 레코드 사용
루트 도메인(@)❌ 허용되지 않음✅ 필요
하위 도메인에서 고정 IP로 연결둘 다 가능✅ 직접 지정
하위 도메인에서 제공업체로 연결✅ 권장❌ IP가 바뀔 수 있음
CDN 구성✅ 일반적경우에 따라 다름
로드 밸런싱❌ 여러 개 사용 불가✅ 여러 IP 가능

루트 도메인에서 CNAME을 사용할 수 없는 이유

DNS 사양(RFC 1034)은 같은 이름에 CNAME과 다른 레코드 유형이 함께 존재하는 것을 금지합니다. 루트 도메인에는 SOA와 NS 레코드가 필요하므로 CNAME을 사용할 수 없습니다.

루트 도메인 별칭을 위한 해결책:

CNAME 체인

CNAME은 다른 CNAME을 가리킬 수 있습니다.

blog.example.com    → myblog.host.com

myblog.host.com → lb-1234.hosting.com

lb-1234.hosting.com → 203.0.113.50 (A record)

유효한 구성이지만 체인이 길어지면 지연이 늘어납니다. 대부분의 DNS 제공업체는 무한 루프를 막기 위해 체인 길이를 제한합니다.

CNAME 레코드 구성

기본 구문

subdomain    IN    CNAME    target.domain.com.
중요: 대상 도메인 끝에 점(.)을 붙여 완전한 도메인 이름임을 표시합니다. 점이 없으면 일부 DNS 서버가 원본 도메인을 뒤에 덧붙입니다.

TTL 고려 사항

CNAME의 TTL은 변경 사항이 전파되는 속도에 영향을 줍니다.

www    300    IN    CNAME    example.com.

TTL이 낮으면(300초) 업데이트가 빠르고, 높으면 DNS 질의가 줄어듭니다.

CNAME 레코드 확인

dig 사용:
dig www.example.com CNAME

; ANSWER SECTION:

www.example.com. 300 IN CNAME example.com.

전체 해석 추적:
dig +trace www.example.com

일반적인 CNAME 문제

루트 도메인의 CNAME

example.com    IN    CNAME    other.com.    ; INVALID

이는 이메일(MX 레코드)과 다른 서비스를 중단시킵니다.

다른 레코드와 CNAME 병용

blog.example.com    IN    CNAME    host.com.

blog.example.com IN MX mail.host.com. ; INVALID

CNAME이 있는 이름에는 다른 레코드 유형을 둘 수 없습니다.

대상 레코드 누락

CNAME 대상이 해석되지 않으면 하위 도메인도 작동하지 않습니다. CNAME을 구성하기 전에 대상이 유효한지 확인하세요.

모범 사례

1. 타사 서비스에는 CNAME 사용: IP 변경을 제공업체가 관리하게 함

2. 깊은 체인 피하기: 홉마다 지연이 추가됨

3. 루트에 CNAME을 사용하지 않기: A 레코드 또는 ALIAS 사용

4. 끝의 점 포함: 완전한 대상 이름 보장

5. CNAME 대상 모니터링: 외부 변경이 사이트에 영향을 줄 수 있음

이 지식을 활용하세요

DomScan의 API를 사용하여 도메인 가용성, 상태 등을 확인하세요.