IT
🌐

DNS 설정 완벽 가이드 — A레코드, CNAME, 네임서버 쉽게 설명

DNS(Domain Name System)는 도메인 주소를 IP 주소로 변환해주는 인터넷의 '전화번호부'다. 레코드 종류마다 역할이 다르다. A레코드(IPv4 주소 연결), CNAME(도메인 별칭), MX(이메일 라우팅), TXT(소유권 인증).

핵심 요약

  • DNS(Domain Name System)는 도메인 주소를 IP 주소로 변환해주는 인터넷의 '전화번호부'다.
  • 레코드 종류마다 역할이 다르다: A레코드(IPv4 주소 연결), AAAA레코드(IPv6), CNAME(도메인 별칭), MX(이메일 라우팅), TXT(소유권 인증·SPF 등).
  • 네임서버(NS) 변경은 도메인 등록 기관에서 하고, 레코드 편집은 DNS 공급자(Cloudflare, Route 53 등) 패널에서 한다.
  • TTL이 낮을수록 변경 사항이 빠르게 반영되지만, 서버 부하가 높아진다.
  • DNS 전파(Propagation)는 전 세계 서버에 퍼지는 데 최대 48시간이 걸릴 수 있다.
  • 직접 설정 전, DNS Lookup 도구로 현재 레코드를 먼저 확인하자.

DNS란 무엇인가? 왜 필요한가?

person holding paper near pen
항목
DNS 전파 최대 소요 시간48시간

우리가 브라우저에 www.example.com을 입력하면 컴퓨터는 그 주소 뒤에 숨어있는 실제 IP 주소(예: 93.184.216.34)를 찾아야 한다. 사람은 숫자로 된 IP를 외우기 어렵기 때문에, 도메인 이름을 IP 주소로 변환해주는 시스템이 필요하다. 이것이 바로 DNS(Domain Name System)다.

DNS는 전 세계에 분산된 수천 개의 서버로 구성되어 있으며, 계층 구조를 이룬다.

  1. 1루트 DNS 서버 — 최상위. 전 세계 13개 클러스터가 운영.
  2. 2TLD(최상위 도메인) 서버.com, .kr, .io 등 도메인 종류별 서버.
  3. 3권한 있는(Authoritative) DNS 서버 — 특정 도메인의 레코드를 실제로 보관하는 서버. Cloudflare, Route 53, 가비아 DNS 등이 여기에 해당.
  4. 4재귀(Recursive) DNS 리졸버 — 사용자의 인터넷 공급자(ISP) 또는 Google(8.8.8.8), Cloudflare(1.1.1.1) 등이 제공하는 중간 서버. 사용자 대신 위 계층을 탐색해 결과를 캐시한다.

이 구조 덕분에 전 세계 수십억 개의 도메인 조회가 빠르게 처리된다.


DNS 레코드 종류별 완전 해부

low angle photo city high rise buildings during daytime

DNS 레코드는 도메인에 대한 다양한 정보를 저장하는 항목이다. 종류마다 역할이 완전히 다르므로 하나씩 살펴보자.

A 레코드 (Address Record)

가장 기본적인 레코드. 도메인을 IPv4 주소에 연결한다.

이름타입TTL
example.comA93.184.216.343600
www.example.comA93.184.216.343600
  • 루트 도메인(example.com)과 서브도메인(www, blog, api 등) 모두에 설정 가능하다.
  • 하나의 도메인에 여러 A 레코드를 등록하면 라운드로빈 로드 밸런싱 효과를 낼 수 있다.

AAAA 레코드

A 레코드와 동일하지만 IPv6 주소를 가리킨다. IPv6 주소는 2606:2800:220:1:248:1893:25c8:1946처럼 길고 복잡한 형태다. IPv6 지원이 필요한 서비스라면 A 레코드와 함께 AAAA 레코드를 병행 설정해야 한다.

CNAME 레코드 (Canonical Name)

도메인을 다른 도메인에 연결하는 별칭(alias) 레코드다. IP 주소가 아니라 도메인 이름을 값으로 갖는다.

이름타입TTL
www.example.comCNAMEexample.com3600
blog.example.comCNAMEmyblog.github.io3600
shop.example.comCNAMEmystore.myshopify.com3600

CNAME의 핵심 제약: 루트 도메인(example.com, @)에는 CNAME을 사용할 수 없다. 루트 도메인에는 반드시 A 또는 AAAA 레코드를 써야 한다. 단, Cloudflare 같은 서비스는 내부적으로 처리해주는 CNAME Flattening 기능을 제공한다.

MX 레코드 (Mail Exchange)

이메일을 수신하는 메일 서버를 지정한다. 우선순위(Priority) 숫자가 낮을수록 먼저 시도된다.

이름타입우선순위TTL
example.comMX1aspmx.l.google.com3600
example.comMX5alt1.aspmx.l.google.com3600

Google Workspace, Microsoft 365 등의 이메일 서비스를 연결할 때 반드시 설정해야 한다.

TXT 레코드 (Text Record)

도메인에 텍스트 형태의 정보를 저장한다. 주로 다음 용도로 활용된다.

  • 도메인 소유권 인증: Google Search Console, GitHub Pages 등에서 요구.
  • SPF(Sender Policy Framework): 이메일 발신 서버를 명시해 스팸 차단에 활용.

- 예: v=spf1 include:_spf.google.com ~all

  • DKIM: 이메일 디지털 서명 키 등록.
  • DMARC: 이메일 인증 정책 선언.

NS 레코드 (Name Server)

해당 도메인의 DNS를 관리하는 서버가 어디인지 알려준다. 도메인 등록 기관(레지스트라)에서 변경하며, 모든 레코드의 '주인'을 정하는 가장 상위 설정이다.

SOA 레코드 (Start of Authority)

DNS 존(Zone)의 관리 정보를 담는 레코드. 직접 편집할 일은 거의 없지만 시리얼 번호, 새로고침 간격 등을 포함한다.


네임서버란 무엇이며 어떻게 설정하는가?

person putting money business finance

네임서버의 역할

네임서버(Name Server)는 특정 도메인의 모든 DNS 레코드를 최종적으로 보관하고 응답하는 서버다. 예를 들어, Cloudflare를 DNS 공급자로 선택하면 아래와 같은 네임서버 주소가 할당된다.

ava.ns.cloudflare.com
rick.ns.cloudflare.com

네임서버 변경 절차

  1. 1도메인 등록 기관(가비아, 후이즈, Namecheap, GoDaddy 등) 관리 페이지에 로그인한다.
  2. 2해당 도메인 설정에서 네임서버 변경 항목을 찾는다.
  3. 3기존 네임서버를 지우고 새 DNS 공급자(예: Cloudflare)가 제공한 주소로 교체한다.
  4. 4저장 후 전파 완료까지 최대 48시간 대기한다.

주의: 네임서버를 변경하면 기존 DNS 공급자의 모든 레코드가 무효화된다. 새 공급자 패널에서 레코드를 미리 옮겨둬야 서비스 중단을 방지할 수 있다.


TTL이란? 얼마로 설정해야 하는가?

person wearing suit reading business newspaper

TTL(Time To Live)은 DNS 레코드가 리졸버 캐시에 저장되는 시간(초 단위)이다. 예를 들어 TTL이 3600이면 1시간 동안 캐시된다.

TTL 값실제 시간적합한 상황
601분서버 이전, 마이그레이션 직전
3005분변경이 잦은 개발 환경
36001시간일반적인 운영 환경 (권장)
8640024시간변경 없는 안정적 프로덕션

전략적 TTL 관리법:

  • 서버 이전 예정 1~2일 전에 TTL을 300초로 낮춰두면, 실제 이전 시 변경 사항이 빠르게 전파된다.
  • 이전이 완료되고 안정화되면 TTL을 다시 3600~86400으로 올린다.

DNS 전파란 무엇인가? 왜 시간이 걸리는가?

DNS를 변경해도 전 세계 사용자에게 즉시 반영되지 않는 이유는 캐시 때문이다. 각 리졸버 서버는 이전 레코드를 TTL이 만료될 때까지 보관한다. 그러니:

  • TTL이 3600이었다면 변경 후 최대 1시간까지 구 주소로 접속될 수 있다.
  • 국가별·ISP별로 캐시 갱신 시점이 다르므로, 일부 지역에선 먼저 반영되고 일부는 늦게 반영된다.
  • 전 세계 완전 전파까지 최대 48시간을 예상해야 한다.

현재 전파 상태는 DNS Lookup 도구에서 직접 조회해 확인할 수 있다.


Cloudflare와 AWS Route 53 실전 설정 예시

Cloudflare에서 A레코드 추가하기

  1. 1Cloudflare 대시보드 → 도메인 선택 → DNS 탭 클릭.
  2. 2Add record 버튼 클릭.
  3. 3타입: A, 이름: @(루트) 또는 www, IPv4 주소: 서버 IP 입력.
  4. 4Proxy status: 오렌지 구름(프록시 활성화) 또는 회색 구름(DNS only) 선택.

- 프록시 활성화 시 Cloudflare CDN·DDoS 보호가 적용된다.

  1. 1TTL은 프록시 활성화 시 자동(Auto)으로 고정된다.
  2. 2Save 클릭.

CNAME Flattening 활용: Cloudflare는 루트 도메인(@)에도 CNAME처럼 동작하는 설정이 가능하다. 이름에 @, 타입에 CNAME을 선택하고 대상 도메인을 입력하면 내부적으로 A 레코드로 변환해준다.

AWS Route 53에서 레코드 추가하기

  1. 1AWS 콘솔 → Route 53Hosted zones → 도메인 선택.
  2. 2Create record 클릭.
  3. 3Record name: 서브도메인 입력(루트면 비워둠).
  4. 4Record type: A, CNAME, MX 등 선택.
  5. 5Value: IP 또는 대상 도메인 입력.
  6. 6TTL: 초 단위 입력(기본 300).
  7. 7Routing policy: Simple(기본), Weighted, Latency, Failover 등 선택 가능.
  8. 8Create records 클릭.

Route 53은 별칭(Alias) 레코드를 지원한다. AWS 리소스(ALB, CloudFront, S3 정적 웹사이트 등)를 루트 도메인에 연결할 때 유용하며, 추가 비용 없이 사용 가능하다.


DNS 설정 시 흔히 하는 실수와 해결법

실수 1: 루트 도메인에 CNAME 사용 시도

문제: example.com(루트)에 CNAME을 설정하면 RFC 표준 위반이며, 많은 DNS 공급자가 이를 거부하거나 MX·TXT 레코드와 충돌을 일으킨다.

해결: 루트 도메인엔 A 레코드를 사용하거나, Cloudflare의 CNAME Flattening 또는 Route 53의 Alias 레코드를 활용한다.

실수 2: 네임서버 변경 후 레코드를 옮기지 않음

문제: 네임서버를 Cloudflare로 바꾸면 이전 DNS 공급자의 레코드는 더 이상 적용되지 않아 사이트·이메일이 중단된다.

해결: 네임서버 변경 전에 새 공급자 패널에서 모든 레코드(A, MX, TXT 등)를 미리 복사해 입력해둔다.

실수 3: TTL을 높게 유지한 채 서버 이전

문제: TTL이 86400(24시간)인 상태로 서버 IP를 바꾸면 최대 24시간 동안 구 서버로 트래픽이 향한다.

해결: 이전 최소 24~48시간 전에 TTL을 300초로 낮춘 뒤 이전 작업을 진행한다.

실수 4: MX 레코드에 IP 주소 입력

문제: MX 레코드의 값에는 반드시 도메인명이 들어가야 한다. IP를 직접 입력하면 이메일 전송이 실패한다.

해결: MX 레코드 값에는 `aspm


참고: Cloudflare 개발자 문서

🔧 이 글과 관련된 무료 도구

이 글과 관련된 상품 (DNS)[광고/제휴]

이 포스팅은 쿠팡 파트너스, 아마존 어소시에이트, 알리익스프레스 제휴 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다. 이는 상품 가격에 영향을 주지 않습니다.
As an Amazon Associate, Coupang Partner, and AliExpress affiliate, I earn from qualifying purchases at no extra cost to you.

관련 글