DNS 설정을 하다 보면, CNAME, A레코드, TXT, MX 등등의 새로운 용어들을 만나죠.
IP주소를 셋팅하러 왔는데 뭔가 많은 타입들을 보고 멈칫 하게 됩니다.
그런데, DNS 의 타입들은 꼭 필요한 것만 있다고 해도 과언이 아닙니다.
그래서 더 신중해지는데요.
여러 타입 중에서도 사람들은 CNAME 을 특히 어려워 해요.
A랑 헷갈리거든요.
오늘 이 차이를 완벽히 알아봅시다.
우리가 막 14.169.188.13
이런 숫자 쓰지 않고, imweb.me
처럼 쓰는 거.
이게 바로 도메인이죠.
IP주소는 통신량을 줄이고 바이너리로 딱 4바이트로 만들기 위해 숫자로 되어 있습니다.
그런데 숫자는 사람들이 못외우니까… 어딘가 물어봐야 하니 DNS가 있죠.
그래서 개발자는 필연적으로 DNS 서버를 설정 해야 합니다.
근데 이때 말이에요.
A 는 IP 를 넣으면 되니 간단한데
CNAME 이란게 있네요? IP는 일단 안들어가네요?
그냥 제일 중요한거 딱 하나만 기억하면 돼요.
음? 아직 모호하죠?
더 쉽게 풀어볼께요.
전화번호부에서 김철수라는 사람 정보를 찾는데,
여러분이 www.example.com
주소를 DNS에 물어봤다고 칩시다.
1.2.3.4
라면, 브라우저는 고민 없이 바로 1.2.3.4
서버로 직진합니다.example.com
라면?www.example.com
은 example.com
이랑 같은 거구나" 라는걸 압니다.example.com
의 IP 주소를 물어봐요.example.com
에 대한 A 레코드 (예: 1.2.3.4
)를 받아서 그 IP 주소로 접속합니다.철수도, 영희도 둘다 전화번호 쓰면 안 되나요? → 됩니다. 근데…
CNAME이 빛을 발하는 순간들이 있죠.
가장 흔한 경우가, 여러 호스트명으로 똑같은 서버로 보내고 싶을 때에요.
example.com
, www.example.com
둘 다 같은 사이트로 가야 한다고 해봅시다.example.com
은 A 레코드로 실제 IP 주소를 연결하고,www.example.com
은 CNAME으로 example.com
에 연결하면 돼요.1.2.3.4
에서 5.6.7.8
로 바뀌었다면?5.6.7.8
로 일일이 바꿔줘야 해요.5.6.7.8
로 바꿔주면 끝납니다.www.example.com
은 CNAME으로 example.com
다른 도메인 자체를 가리키고 있으니까, example.com
의 IP 주소가 바뀌는 대로 자동으로 새 IP 주소로 연결 됩니다.결국 CNAME은 DNS 레코드를 관리하기 편하게 만들어 줍니다.
특히 요즘 클라우드에서 LB나 CDN처럼 IP 주소가 변할때 CNAME이 아주 유용해요.
클라우드가 아무리 IP를 바꿔도 우리는 아무것도 안해도 되니까요.
CNAME은 한가지 제약 사항이 있어요.
같은 호스트명으로 다른 레코드가 있을 수 없어요.
그 이유는 생각해보면 당연 합니다.
영희의 전화번호는 김미영 번호니까, 김미영을 알려줘야 하는데요.
찾아보니 영희가 별명이 하나, 전화번호가 하나 이렇게 두개 있다고 해봐요.
그럼 나는 뭘 선택해야돼요? 헷갈리죠.
그래서 이런 일을 방지해고자
CNAME 은 해당 호스트명으로 유일 해야 합니다.
여기까지 오신 김에 같이 알아봐요.
example.com
도메인으로 온 메일은 DNS에서 example.com
의 MX 레코드를 찾아서 메일 서버 주소를 알아내고 거기로 들어가서 보내는 거죠.알고보니 좀 복잡하지만 쉽죠?
우리가 매일 쓰는 인터넷 주소, 그 뒤에는 이렇게 복잡한 DNS 레코드 타입들이 있었습니다.
A 레코드는 IP로 직진, CNAME은 다른 이름으로 우회
오늘 글로, 위 질문들이 조금 해결 되셨기를 바랍니다.
다음에도 유익하고 재밌는 이야기로 찾아올게요.
아임웹 CTO 매튜 드림.