DNS와 도메인의 원리 — 내 도메인은 어떻게 IP로 연결될까?

워드프레스·도커·클라우드플레어·AWS EC2 등에서
“도메인을 연결한다”는 과정을 하다 보면A레코드, CNAME, 네임서버, TTL 같은 단어를 자주 마주칩니다.
목차
하지만 도메인이 어떻게 실제 서버와 연결되는지를 정확히 이해하면
DNS 오류, IP 변경, SSL 설정 같은 문제를 훨씬 빠르게 해결할 수 있습니다.
DNS란 무엇인가?
DNS(Domain Name System)는
‘사람이 기억하기 쉬운 도메인 이름을 IP 주소로 바꿔주는 시스템’ 입니다.
예를 들어,
https://modoomo.net
이라는 주소는 실제로는
152.67.33.101
같은 숫자 IP를 가리킵니다.
DNS는 사용자가 도메인을 입력하면,
→ IP 주소를 찾아주는 “전화번호부” 역할을 하는 구조입니다.
DNS 요청의 흐름
브라우저에서 modoomo.net을 입력했을 때 일어나는 실제 과정 👇
1️⃣ 사용자 입력
사용자가 modoomo.net을 주소창에 입력
2️⃣ 로컬 캐시 확인
컴퓨터가 이전에 이 주소를 방문한 적이 있다면
로컬 DNS 캐시(임시 저장)에 저장된 IP를 사용
3️⃣ ISP(인터넷 서비스 제공자)의 DNS 서버로 요청
캐시에 없을 경우, KT·SK·LG 같은 통신사의 DNS 서버로 요청 전송
4️⃣ 루트 DNS → TLD 서버 → 권한 있는 네임서버
루트(.), TLD(.net), 권한 서버(modoomo.net 관리 서버) 순서로 찾아감
5️⃣ 결과 반환
modoomo.net의 IP 주소가 응답으로 돌아옴
브라우저가 해당 IP에 접속
DNS 레코드 종류 정리
| 타입 | 역할 | 예시 |
|---|---|---|
| A | 도메인을 IPv4 주소로 연결 | modoomo.net → 152.67.33.101 |
| AAAA | IPv6 주소로 연결 | modoomo.net → 2400:cb00::1234 |
| CNAME | 다른 도메인으로 별칭 연결 | www.modoomo.net → modoomo.net |
| MX | 메일 서버 설정 | mail.modoomo.net |
| TXT | 도메인 인증/보안용 | Google Search Console, SPF, DKIM 등 |
| NS | 네임서버 지정 | ns1.cloudflare.com |
네임서버(Name Server)의 역할
DNS 요청의 최종 결정을 내리는 곳이 바로 네임서버입니다.
도메인을 구입할 때
“네임서버를 Cloudflare로 변경하세요”
“호스팅사 네임서버를 사용하세요”
라고 하는 이유가 바로 이것입니다.
즉,
네임서버 = 내 도메인의 DNS 정보를 보관하고 응답해주는 서버
도메인 연결 실무 예시
예를 들어 blog.modoomo.net을
AWS EC2 인스턴스(공인 IP 3.25.220.14)에 연결한다고 하면:
1️⃣ DNS 제공자(예: Cloudflare, 가비아 등)에서
A record
이름: blog
값: 3.25.220.14
TTL: Auto
2️⃣ 브라우저에서 blog.modoomo.net 입력 시
→ DNS 서버가 3.25.220.14 IP를 반환
→ EC2의 Nginx 또는 Apache로 접속
→ 워드프레스 사이트 표시
이렇게 연결됩니다.
CNAME과 A레코드의 차이
| 비교 항목 | A Record | CNAME Record |
|---|---|---|
| 연결 대상 | IP 주소 | 다른 도메인 |
| 예시 | blog.modoomo.net → 3.25.220.14 | www.modoomo.net → modoomo.net |
| 용도 | 서버 직접 연결 | 서브도메인 리디렉션, 로드밸런싱 |
| 주의사항 | IP 변경 시 수동 수정 필요 | 연결된 도메인이 자동 업데이트됨 |
실무에서는 기본 도메인(A레코드) + 서브도메인(CNAME) 조합을 많이 사용합니다.
TTL(Time To Live)이란?
TTL은 DNS 캐시가 유효한 시간(초 단위)입니다.
예를 들어 TTL = 3600이면
→ 1시간 동안은 DNS 서버가 IP를 캐싱해두고
→ 그 이후에 다시 새 IP를 조회합니다.
만약 서버 IP가 자주 바뀌는 환경이라면
TTL을 300(5분) 정도로 짧게 두는 것이 유리합니다.
Cloudflare로 DNS 관리하기
Cloudflare 같은 글로벌 DNS 서비스는
단순한 IP 연결 외에도 아래 기능을 제공합니다.
- DNS + SSL 통합 관리
- 보안 방화벽 (WAF)
- Proxy 모드 (IP 숨기기)
- 무료 CDN 캐시
즉, 단순히 “DNS 관리 도구”가 아니라
보안 + 성능 + 트래픽 최적화까지 포함된 프록시형 DNS 플랫폼입니다.
DNS 오류가 발생할 때 확인해야 할 것
| 현상 | 원인 | 해결 방법 |
|---|---|---|
| 도메인이 열리지 않음 | A레코드 누락 | DNS 레코드 추가 확인 |
| IP 변경 후 접속 안 됨 | TTL 캐시 미갱신 | DNS TTL 낮추기 / DNS 플러시 |
| 특정 지역에서만 안 열림 | DNS 전파 지연 | dnschecker.org에서 전파 확인 |
| HTTPS만 안 됨 | SSL 인증서 누락 | Let’s Encrypt / Cloudflare SSL 설정 |
마무리 — DNS는 모든 서버 연결의 출발점
정리하자면 👇
- DNS는 ‘도메인 → IP 매핑 시스템’
- A레코드가 실질적 연결의 핵심
- CNAME은 별칭용, MX/TXT는 인증 및 메일용
- 네임서버는 DNS 설정이 저장되는 최종 장소
- Cloudflare나 AWS Route53으로 중앙 관리 추천