Domain IP Lookup

거의 모든 존에서 만나게 되는 레코드

A호스트 이름을 IPv4 주소로 연결
AAAA호스트 이름을 IPv6 주소로 연결
CNAME호스트 이름을 다른 호스트 이름으로 연결
MX도메인을 메일 서버로 연결, 우선순위 기준
TXT도메인에 임의의 텍스트 연결: SPF, DKIM, 소유권 확인
NS도메인에 응답하는 네임서버 지정
DNS 기초

CNAME과 A 레코드: 무엇을 써야 할까요?

읽는 시간 3분

두 레코드 모두 호스트 이름을 어딘가로 연결합니다. 차이는 무엇을 가리키느냐이며, 이는 IP 주소가 바뀔 때 누가 설정을 올바르게 유지할 책임을 지는지를 결정합니다.

A 레코드CNAME 레코드
가리키는 대상IP 주소다른 호스트 이름
예시93.184.216.34myapp.herokudns.com
추가 조회 필요 여부아니요. 최종 응답입니다예. 대상도 확인해야 합니다
루트에서 사용 가능 여부예불가 (아래 참고)
다른 레코드와 공존 여부예아니요. 단독이어야 합니다
IP 변경 시 반영직접 수정해야 함자동

결정은 질문 하나로 끝납니다

핵심 요약

IP 주소를 직접 관리하고 앞으로도 바뀌지 않는다고 확신하나요? A 레코드를 사용하세요. 다른 곳에서 운영하는 서비스를 가리키나요? CNAME을 사용하면 상대방의 주소가 바뀌어도 영향을 받지 않습니다.

대부분의 경우 결정은 정말 이것이 전부입니다. 이 글의 나머지는 실제로 문제를 일으키기 쉬운 세부 사항입니다.

CNAME은 어떻게 확인되나요

CNAME은 Canonical Name(정식 이름)의 약자입니다. 이 이름은 별칭이니 대신 다른 이름을 조회하라는 뜻입니다.

CNAME과 이 CNAME이 최종적으로 도달하는 레코드
shop.example.com.    3600    IN    CNAME    stores.myshopify.com.
stores.myshopify.com. 300    IN    A        23.227.38.65

shop.example.com을 질의한 리졸버는 CNAME을 받은 뒤 stores.myshopify.com을 확인하고 23.227.38.65를 반환합니다. 조회가 한 번이 아니라 두 번이지만 몇 밀리초에 불과하며, 거의 항상 캐시됩니다.

장점은 Shopify가 새 주소로 옮길 때 자신들 쪽의 A 레코드 하나만 바꾸면 여러분의 도메인이 자동으로 따라간다는 것입니다. A 레코드를 쓰면 직접 알아채고 수정할 때까지 서비스가 중단됩니다.

루트 도메인 제한

DNS에서 가장 흔히 겪는 불만이며, 사용 중인 제공업체의 한계가 아니라 프로토콜 규칙입니다.

호스트 이름만 알려 주는 호스팅 서비스(myapp.herokuapp.com)가 루트에서 문제를 일으키는 이유가 바로 이것입니다. 해결 방법은 세 가지입니다.

  1. ALIAS / ANAME / CNAME 플래트닝

    많은 DNS 제공업체가 루트에서 CNAME처럼 동작하는 합성 레코드 유형을 제공합니다. 제공업체가 대상을 직접 확인한 뒤 그 결과 IP를 일반 A 레코드로 응답하므로 프로토콜 규칙을 어기지 않습니다. Cloudflare는 이를 CNAME flattening이라 부르고, Route 53은 alias 레코드라고 부릅니다.

  2. 루트를 www로 리디렉션

    루트를 작은 리디렉션 서비스로 연결하고 www에 CNAME을 둡니다. 단순하고 어디서나 지원되지만, 방문자는 한 번 더 이동해야 합니다.

  3. A 레코드를 쓰고 유지 관리를 감수

    제공업체가 안정적인 IP를 게시하고 고정 주소라고 문서화했다면 루트에 A 레코드를 쓰는 것도 괜찮습니다. 안정성을 보장하는지 반드시 확인하세요. 보장하지 않는다고 명시한 곳도 많습니다.

CNAME은 단독이어야 합니다

이름에 CNAME이 있으면 A, MX, TXT를 비롯해 다른 어떤 레코드도 둘 수 없습니다.

잘못된 설정이므로 따라 하지 마세요
mail.example.com.    IN    CNAME    ghs.googlehosted.com.
mail.example.com.    IN    TXT      "v=spf1 include:_spf.google.com ~all"

일부 제공업체는 이를 아예 거부하고, 더 나쁜 경우에는 받아들인 뒤 예측할 수 없게 동작합니다. 이름에 TXT 레코드가 필요하다면 그 이름은 CNAME이 될 수 없습니다.

각각이 알맞은 경우

A 레코드를 사용하는 경우

  • 거의 모든 경우의 루트 도메인.
  • VPS, 전용 서버, 예약된 클라우드 주소처럼 고정 IP로 직접 운영하는 서버.
  • 같은 이름에 다른 레코드가 필요한 모든 곳.
  • 주소로 확인되어야 하는 MX 대상.

CNAME을 사용하는 경우

  • 관리형 플랫폼(Shopify, Heroku, Netlify, Vercel)을 가리키는 서브도메인.
  • 루트 도메인 또는 호스팅 업체의 호스트 이름을 가리키는 www.
  • 제공업체가 만들도록 요청하는 도메인 인증용 서브도메인.
  • 기반이 되는 IP를 직접 제어할 수 없는 모든 대상.

현재 설정 확인하기

이름이 CNAME인지, 어디로 이어지는지 확인
dig +short www.example.com CNAME
dig +short www.example.com A

조회 도구는 모든 도메인의 A, AAAA, CNAME 레코드를 함께 보여 주므로, 둘 다 가져서는 안 되는데 둘 다 가진 이름을 쉽게 찾을 수 있습니다.

도메인의 공개 DNS 주소를 확인해야 하나요? Domain IP Lookup 도구를 사용해 보세요.

이 주제의 무료 도구

자주 묻는 질문

관련 글

거의 모든 존에서 만나게 되는 레코드

A호스트 이름을 IPv4 주소로 연결
AAAA호스트 이름을 IPv6 주소로 연결
CNAME호스트 이름을 다른 호스트 이름으로 연결
MX도메인을 메일 서버로 연결, 우선순위 기준
TXT도메인에 임의의 텍스트 연결: SPF, DKIM, 소유권 확인
NS도메인에 응답하는 네임서버 지정
DNS 기초

DNS A 레코드란? (그리고 AAAA가 필요한 경우)

도메인을 실제로 서버에 연결하는 레코드입니다. 구조, 짝이 되는 AAAA, 사이트를 가장 자주 망가뜨리는 네 가지 실수를 다룹니다.

읽는 시간 3분

거의 모든 존에서 만나게 되는 레코드

A호스트 이름을 IPv4 주소로 연결
AAAA호스트 이름을 IPv6 주소로 연결
CNAME호스트 이름을 다른 호스트 이름으로 연결
MX도메인을 메일 서버로 연결, 우선순위 기준
TXT도메인에 임의의 텍스트 연결: SPF, DKIM, 소유권 확인
NS도메인에 응답하는 네임서버 지정
DNS 기초

DNS 레코드 유형 총정리: 완전한 레퍼런스

알아 둘 가치가 있는 모든 레코드 유형의 역할, 모양, 그리고 흔히 저지르는 실수를 한 페이지에 정리했습니다.

읽는 시간 4분

재귀 DNS 조회, 단계별로 살펴보기

브라우저

example.com 요청

리졸버

내 ISP / 1.1.1.1

루트 + TLD

.com 운영 주체는?

권한 네임서버

실제 응답

체인의 각 단계도 DNS 조회이며 이후 캐시됩니다

DNS 기초

네임서버란? 도메인 위임의 원리

어느 제공업체가 내 DNS를 제어할지 결정하는 단 하나의 설정이며, 레코드를 수정해도 아무 효과가 없는 이유이기도 합니다.

읽는 시간 3분