DNS란?
DNS(Domain Name System)는 사람이 이해하기 쉬운 도메인 이름 (example.com)을 기계가 이해할 수 있는 IP 주소 (192.0.2.1)로 변환하는 시스템입니다.
브라우저 주소창에 www.google.com을 입력하면, 브라우저는 DNS를 통해 해당 도메인을 IP 주소로 변환한 후 그 IP로 요청을 보냅니다.
DNS 레코드란?
DNS 서버에 저장된 도메인에 대한 정보들(=레코드)입니다.
이 레코드를 기반으로 클라이언트가 올바른 위치로 연결될 수 있도록 도와줍니다.
주요 DNS 레코드 종류
| 타입 | 설명 | 예시 |
|---|
| A | 도메인을 IPv4 주소에 매핑 | example.com → 192.0.2.1 |
| AAAA | 도메인을 IPv6 주소에 매핑 | example.com → 2001:db8::1 |
| CNAME | 도메인을 다른 도메인에 연결 | www.example.com → example.com |
| MX | 메일 서버 정보 설정 | example.com → mail.example.com (우선순위 10) |
| TXT | 도메인에 대한 텍스트 정보 저장 | SPF, DKIM, Google 인증 등 |
| NS | Name Server 지정 | example.com → ns1.provider.com |
| SOA | 도메인의 권한 시작 정보 | 최초 등록자, TTL, 캐시 정보 등 |
| SRV | 특정 서비스용 정보 설정 | SIP, XMPP, LDAP 등 |
| PTR | 역방향 조회(IP → 도메인) | reverse DNS 설정 |
실제 예시: example.com
| 타입 | 이름 | 값 | 설명 |
|---|
| A | @ | 192.0.2.1 | example.com 자체를 해당 IP에 연결 |
| CNAME | www | example.com | www.example.com → example.com |
| MX | @ | mail.example.com (10) | 이메일 수신용 서버 설정 |
| TXT | @ | v=spf1 include:_spf.google.com ~all | 구글 메일 발송 허용 설정 |
| NS | @ | ns1.dnsprovider.com | 이 도메인의 DNS 서버 지정 |
DNS 레코드 구성 요소
| 구성 항목 | 의미 |
|---|
| Name | 대상 도메인 or 서브도메인 (@, www, mail 등) |
| Type | 레코드 타입 (A, MX, TXT, ...) |
| Value | IP 주소, 도메인명, 문자열 등 |
| TTL (Time To Live) | 레코드의 캐시 유효 시간 (초 단위) |
CNAME vs A 레코드 차이
| 비교 항목 | A 레코드 | CNAME |
|---|
| 매핑 대상 | IP 주소 | 다른 도메인 이름 |
| 루트 도메인에 사용 가능? | 가능 | 불가능 (example.com에는 사용 불가) |
| 예시 | blog.example.com → 192.0.2.1 | blog.example.com → blog.hosting.com |
실무 활용 예 – EC2 + 도메인 연결
| 목적 | 설정 |
|---|
| EC2 퍼블릭 IP 연결 | A 레코드: @ → 54.123.45.67 |
| Nginx 리버스 프록시 연결 | A 레코드: api → 54.123.45.67 |
| CloudFront, S3 버킷 연결 | CNAME: cdn → d123abc.cloudfront.net |
| Google Workspace 메일 설정 | MX + TXT 레코드 추가 필요 |