테마
DNS 레코드와 CDN 연결
CDN을 설정하다 보면 레코드 추가, A, CNAME, MX, TXT 같은 단어를 만납니다. 이 화면은 CDN 서버를 새로 만드는 화면이 아니라, 내 도메인을 어떤 서비스로 안내할지 DNS에 적는 화면입니다.
도메인을 하나의 건물이라고 생각하면 DNS 레코드는 건물 안내데스크의 안내문입니다.
| 레코드 | 비유 | 한 줄 의미 |
|---|---|---|
| A / AAAA | 건물의 실제 좌표 | 이 이름은 이 IP 주소로 가라 |
| CNAME | 다른 이름을 가리키는 안내 표지 | 이 이름은 저 이름과 같다 |
| MX | 우편물 수령처 | 이 도메인의 이메일은 이 메일 서버로 보내라 |
| TXT | 안내데스크의 메모장 | 도메인 소유권, 메일 인증 같은 검증 정보를 적는다 |
DNS 레코드가 필요한 이유
사용자는 www.example.com처럼 사람이 읽기 쉬운 이름으로 접속합니다. 하지만 네트워크는 결국 IP 주소와 서버 위치를 알아야 통신할 수 있습니다. DNS는 이 사이를 연결합니다.
CDN을 붙인다는 것은 보통 다음 두 가지를 함께 설정한다는 뜻입니다.
- DNS에서 도메인이 CDN을 바라보게 만든다.
- CDN이 오리진 서버를 대신해 사용자 요청을 받게 만든다.
그래서 CDN 설정 화면의 레코드 추가는 "이 도메인으로 들어온 요청을 어디로 보낼지 DNS에 등록한다"는 의미입니다.
A 레코드
A 레코드는 도메인 이름을 IPv4 주소에 연결합니다.
txt
example.com. A 203.0.113.10이 설정은 example.com으로 접속하면 203.0.113.10이라는 서버 IP로 가라는 뜻입니다. IPv6 주소를 가리킬 때는 같은 역할의 AAAA 레코드를 사용합니다.
txt
example.com. AAAA 2001:db8::10A 레코드는 다음 상황에서 자주 사용합니다.
- 루트 도메인
example.com을 서버 IP에 직접 연결할 때 - 고정 IP가 있는 서버, 로드밸런서, 방화벽 장비로 연결할 때
- CDN이 루트 도메인에 A 레코드 또는 ALIAS 형태의 값을 안내할 때
CNAME 레코드
CNAME은 도메인 이름을 다른 도메인 이름의 별칭으로 연결합니다.
txt
www.example.com. CNAME example.cdn-provider.com.이 설정은 www.example.com이 실제로는 example.cdn-provider.com을 따라가라는 뜻입니다. CDN, SaaS, 블로그 호스팅, 배포 플랫폼에서 커스텀 도메인을 붙일 때 자주 나옵니다.
주의할 점은 루트 도메인에는 일반적인 CNAME을 둘 수 없다는 것입니다. example.com에는 이미 NS, SOA 같은 필수 레코드가 있어야 하는데, CNAME은 같은 이름에 다른 레코드와 공존할 수 없습니다. 그래서 CDN이나 DNS 서비스는 루트 도메인을 위해 ALIAS, ANAME, CNAME flattening 같은 대체 기능을 제공하기도 합니다.
MX 레코드
MX는 이메일을 받을 메일 서버를 지정합니다.
txt
example.com. MX 10 mail.example.com.이 설정은 user@example.com으로 메일이 오면 mail.example.com으로 보내라는 뜻입니다. 앞의 숫자 10은 우선순위입니다. 숫자가 낮을수록 먼저 시도합니다.
txt
example.com. MX 10 mx1.mail-provider.com.
example.com. MX 20 mx2.mail-provider.com.웹사이트가 잘 열리는 것과 이메일이 잘 도착하는 것은 별개의 문제입니다. CDN을 붙이면서 기존 MX 레코드를 빠뜨리면 웹사이트는 정상이어도 회사 메일이나 도메인 메일이 끊길 수 있습니다.
TXT 레코드
TXT는 도메인에 텍스트 정보를 붙이는 레코드입니다. 사용자가 웹에서 직접 보는 값은 아니지만, 여러 서비스가 도메인 소유권과 신뢰성을 확인할 때 사용합니다.
txt
example.com. TXT "google-site-verification=..."
example.com. TXT "v=spf1 include:_spf.google.com ~all"TXT 레코드는 다음 용도로 자주 쓰입니다.
- Google Search Console, AWS, Vercel 같은 서비스의 도메인 소유권 검증
- SPF, DKIM, DMARC 같은 이메일 발신 인증
- 보안 정책이나 외부 서비스 연동 검증
특히 메일 인증용 TXT를 빼먹으면 메일이 스팸으로 분류되거나 발송이 실패할 수 있습니다.
CDN에서 레코드 추가를 해석하는 법
CDN을 연결할 때 DNS 설정은 보통 다음 모양입니다.
| 이름 | 타입 | 값 | 의미 |
|---|---|---|---|
@ | A / ALIAS | CDN이 준 대상 | 루트 도메인을 CDN으로 보낸다 |
www | CNAME | CDN이 준 도메인 | www.example.com을 CDN으로 보낸다 |
@ | MX | 메일 서비스가 준 서버 | 이메일은 메일 서버로 보낸다 |
@ | TXT | 검증 문자열 | 도메인 소유권이나 메일 인증을 증명한다 |
여기서 @는 보통 루트 도메인 자체를 뜻합니다. example.com 영역에서 @는 example.com입니다. www는 www.example.com 같은 서브도메인입니다.
CDN 서비스가 "이 레코드를 추가하세요"라고 안내할 때는 대부분 두 가지 목적 중 하나입니다.
- 웹 트래픽 연결: A, AAAA, CNAME으로 브라우저 요청을 CDN으로 보냅니다.
- 소유권 검증: TXT로 이 도메인을 내가 관리한다는 사실을 증명합니다.
프록시와 DNS-only
Cloudflare 같은 CDN/DNS 서비스에는 프록시 여부를 고르는 UI가 있습니다. 이때 중요한 기준은 "이 레코드가 웹 트래픽을 운반하는가"입니다.
| 레코드 | 주 용도 | CDN 프록시 대상 |
|---|---|---|
| A / AAAA | 웹 서버 IP 연결 | 가능 |
| CNAME | 다른 도메인으로 웹 연결 | 가능 |
| MX | 메일 서버 안내 | 불가능, DNS-only |
| TXT | 검증 정보 | 불가능, DNS-only |
A, AAAA, CNAME은 웹 요청을 CDN이 대신 받을 수 있습니다. 반면 MX와 TXT는 웹 트래픽을 보내는 레코드가 아닙니다. 이 레코드들은 CDN 가속이나 WAF 보호 대상이 아니라, DNS 질의에 그대로 응답해야 하는 정보입니다.
자주 하는 실수
기존 레코드를 일부만 옮긴다
네임서버를 CDN으로 바꾸면 기존 DNS 서비스에 있던 레코드는 더 이상 기준이 아닐 수 있습니다. 따라서 A/CNAME만 옮기고 MX/TXT를 빼먹으면 웹사이트는 살아 있어도 이메일, 검색 콘솔, 외부 서비스 검증이 깨질 수 있습니다.
CDN으로 이전하기 전에는 기존 DNS의 레코드 목록을 먼저 확인해야 합니다.
txt
A / AAAA
CNAME
MX
TXT
CAA
NS
기타 서비스가 요구한 레코드루트 도메인에 CNAME을 넣으려고 한다
www.example.com에는 CNAME을 자주 사용하지만, example.com 같은 루트 도메인에는 일반적인 CNAME을 넣지 않습니다. 루트 도메인 연결 방법은 CDN 또는 DNS 서비스가 안내하는 A, ALIAS, ANAME, CNAME flattening 방식을 따라야 합니다.
MX와 TXT를 CDN 프록시 대상으로 이해한다
MX는 이메일 라우팅이고 TXT는 검증 정보입니다. 둘 다 웹 요청을 CDN으로 보내는 설정이 아닙니다. Cloudflare 기준으로도 A, AAAA, CNAME처럼 IP 주소 해석에 쓰이는 웹 트래픽 레코드만 프록시 대상입니다.
TTL을 전환 직전에만 바꾼다
TTL은 DNS 응답을 얼마나 오래 캐시할지 정하는 값입니다. 도메인 이전이나 CDN 전환을 할 때는 미리 TTL을 낮춰 두면 전파와 롤백이 쉬워집니다. 이미 높은 TTL로 배포된 뒤에는 값을 낮춰도 기존 캐시가 끝날 때까지 기다려야 합니다.
TXT 값을 임의로 수정한다
TXT 값은 공백, 따옴표, 세미콜론 하나가 의미를 바꿀 수 있습니다. 서비스가 제공한 값을 그대로 입력해야 합니다. 특히 SPF는 같은 도메인에 여러 개를 중복으로 만들기보다 하나의 SPF 정책으로 합치는 것이 안전합니다.
한눈에 정리
| 레코드 | 가리키는 대상 | 대표 용도 | CDN 설정에서의 의미 |
|---|---|---|---|
| A | IPv4 주소 | 루트 도메인, 서버 직접 연결 | 웹 요청을 특정 IP 또는 CDN으로 보냄 |
| AAAA | IPv6 주소 | IPv6 서버 연결 | A와 같은 역할의 IPv6 버전 |
| CNAME | 다른 도메인 이름 | www, api 같은 별칭 | 서브도메인을 CDN이 준 도메인으로 보냄 |
| MX | 메일 서버 도메인 | 이메일 수신 | 웹과 별도로 메일 경로를 유지함 |
| TXT | 텍스트 값 | 소유권 검증, SPF/DKIM/DMARC | CDN 연결 검증이나 메일 신뢰성 증명 |