CNAME 레코드(정규 이름)

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

CNAME 레코드란?

CNAME 레코드 (정규 이름 레코드)는 도메인 이름을 다른 도메인 이름으로 라우팅합니다. CNAME을 사용하면 서브도메인이 다른 도메인을 가리킬 수 있으므로 서버 관리를 단순화하고 여러 도메인에서 같은 콘텐츠를 공유할 수 있습니다.

CNAME 레코드 구조

blog.example.com.  3600  IN  CNAME  blogplatform.example.com.

│ │ │ │ │

│ │ │ └── 레코드 유형 └── 대상 (별칭)

│ │ └── 클래스

│ └── TTL

└── 도메인 이름

CNAME 작동 방식

CNAME은 "별칭" 또는 "리다이렉션"처럼 작동합니다:

1. 사용자가 blog.example.com 방문

2. DNS가 CNAME 레코드 조회

3. CNAME이 blogplatform.example.com을 가리킴

4. DNS가 blogplatform.example.com의 A 레코드 조회

5. A 레코드가 IP 주소 반환 (예: 192.0.2.5)

6. 브라우저가 그 IP에 연결

실제 CNAME 예제

CDN 설정

# 주 도메인

example.com. A 192.0.2.1

# CDN을 통해 라우팅

www.example.com. CNAME d111111abcdef8.cloudfront.net.

블로그 플랫폼

example.com.      A     192.0.2.1      (메인 사이트)

blog.example.com. CNAME myblog.platform.com. (Medium, Substack 등)

서브서비스

api.example.com.      CNAME api-prod.internal.example.com.

webhooks.example.com. CNAME webhook-handler.internal.example.com.

mobile.example.com. CNAME mobile-app.example.com.

CNAME 제약 조건

CNAME이 루트에서 작동하지 않음

# 작동 안 함

@ CNAME other-domain.com.

example.com. CNAME other-domain.com. (허용 안 됨)

# 작동함

www.example.com. CNAME other-domain.com. (okay)

blog.example.com. CNAME other-domain.com. (okay)

이것은 DNS 사양의 기술적 제약입니다. 루트 도메인은 A 또는 AAAA 레코드와 NS, MX, TXT 같은 다른 레코드를 가져야 합니다.

단일 레코드당 하나의 CNAME

# 불가능

subdomain.example.com. CNAME target1.com.

subdomain.example.com. CNAME target2.com. (두 번째 CNAME 허용 안 됨)

CNAME 체인 피하기

# 작동하지만 느림

subdomain.example.com. CNAME alias1.com.

alias1.com. CNAME alias2.com.

alias2.com. CNAME actual.com.

actual.com. A 192.0.2.1

# 더 나음 - 직접 가리킴

subdomain.example.com. CNAME actual.com.

일반적인 CNAME 사용

사용 사례예제
CDNwww CNAME cdn.example.com
클라우드 호스팅blog CNAME myapp.heroku.com
이메일 서비스email CNAME sendgrid.example.com
분석analytics CNAME go.analytics.com
호스팅api CNAME api-host.example.com

CNAME과 다른 레코드

CNAME vs A 레코드

# A 레코드: 직접 IP 주소

www.example.com. A 192.0.2.1

# CNAME: 다른 도메인을 가리킴

www.example.com. CNAME webhost.example.com.

# 그러면 webhost를 A 레코드로 해석

webhost.example.com. A 192.0.2.1

CNAME과 MX 레코드

MX 레코드가 있는 도메인에는 CNAME을 추가할 수 없습니다:

# 불가능

example.com. MX 10 mail.example.com.

example.com. CNAME other.com. (허용 안 됨 - MX와 충돌)

CNAME 설정

호스팅 제어판

1. DNS 관리 대시보드 열기

2. "레코드 추가" 클릭

3. 입력:

- 이름: blog (또는 www)

- 유형: CNAME

- 값: myblog.platform.com.

- TTL: 3600

4. 저장

명령줄 (BIND)

blog    IN  CNAME  myblog.platform.com.

www IN CNAME cdn.example.com.

api IN CNAME api-server.example.com.

CNAME 조회

# dig 사용

dig www.example.com CNAME

# nslookup 사용

nslookup -type=CNAME www.example.com

# 따라가기

dig +trace www.example.com

CNAME과 HTTPS

CNAME으로 라우팅할 때 SSL 인증서가 대상 도메인과 일치해야 합니다:

www.example.com -> CNAME -> cdn.provider.com

└─ SSL: www.example.com

└─ SSL: *.provider.com (또는 cdn.provider.com)

모범 사례

1. CNAME 체인 피하기: 직접 가리키기 선호

2. 루트에 A 레코드 사용: www와 @ 일치 시키기

3. 명확한 명명: 대상이 명백한 CNAME 이름

4. TTL 고려: CDN의 경우 더 낮은 TTL 사용

5. 테스트: CNAME 추가 후 모든 서비스 확인

CNAME은 복잡한 DNS 설정을 관리하기 위한 강력한 도구이지만 제약 조건을 이해하는 것이 중요합니다.

이 지식을 활용하세요

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