5분만에 끝내는 CNAME과 A 레코드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- *초보 개발자 및 DevOps 엔지니어** (기초 DNS 개념 이해 및 실무 적용 중심)
핵심 요약
- A 레코드: 도메인 이름을 IP 주소에 바로 연결 (예:
example.com
→1.2.3.4
) - CNAME: 도메인 이름을 또 다른 도메인 이름에 연결 (예:
www.example.com
→example.com
) - CNAME 제약: 한 호스트명에 CNAME과 다른 레코드(A, MX 등)는 동시에 등록 불가 (Apex 도메인에서 CNAME 사용 금지)
섹션별 세부 요약
1. DNS 기본 개념
- 도메인은 IP 주소 대신 사용되는 이름 (예:
imweb.me
대신14.169.188.13
사용) - DNS 서버는 도메인 이름을 IP 주소로 변환하여 네트워크 통신 가능
- A 레코드와 CNAME은 DNS 레코드 유형 중 가장 흔하게 사용
2. A 레코드 vs CNAME
- A 레코드는 도메인 → IP 직접 연결 (예:
www.example.com
→1.2.3.4
) - CNAME은 도메인 → 다른 도메인 연결 (예:
www.example.com
→example.com
) - CNAME의 특징:
- IP 주소 변경 시 A 레코드만 수정하면 됨 (예: example.com
의 IP가 5.6.7.8
으로 변경 시 www.example.com
도 자동 반영)
- 여러 호스트명을 동일 서버에 연결하는 경우에 유리
3. CNAME의 주요 활용 사례
- 클라우드 서비스(LB, CDN) 연동 시 IP 주소 변경이 자주 발생하므로 CNAME 사용 권장
- 서버 IP 변경 시 A 레코드만 수정하면 됨 (예:
example.com
의 A 레코드 수정 시www.example.com
도 자동 반영) - 중복 레코드 관리 방지 (예:
example.com
과www.example.com
모두 동일 서버에 연결 시 CNAME 사용)
4. CNAME의 제약 조건
- 한 호스트명에 CNAME과 다른 레코드(A, MX 등) 동시 등록 불가
- 예: www.abc.com
에 CNAME 설정 시 A 레코드 등록 불가
- Apex 도메인(예:
example.com
)에 CNAME 설정 불가
- MX, TXT 등 다른 레코드와 충돌 가능성으로 대부분의 DNS 서버에서 막음
5. 기타 DNS 레코드
- TXT 레코드: 도메인 관련 부가 정보 제공 (SPF, DMARC 등)
- MX 레코드: 이메일 전송 시 메일 서버 주소 지정 (예:
example.com
→mail.example.com
) - Apex 도메인: 호스트명이 없는 루트 도메인 (예:
example.com
)
결론
- CNAME은 IP 변경 시 관리 효율성을 높이기 위해 사용 (예: 클라우드 서비스 연동 시)
- Apex 도메인에 CNAME 설정은 피해야 함 (MX, TXT 등 다른 레코드와 충돌 가능성)
- DNS 설정 시 A 레코드와 CNAME의 차이를 명확히 이해하여 서버 IP 변경 시 오류 방지