Route53을 쓰던 중에 A레코드와 CName을 사용해서 도메인과 ELB와 CloudFront와 같은 서비스를 연결할 때가 있었습니다.
이럴 때 그냥 무심코 구글링을 해서 도메인을 A레코드와 Cname으로 연동하여 쓰고 있었는데 정확하게 둘이 어떻게 다른지 잘 모르고 쓰고 있었던 것 같아서 간단하게 한번 정리해두어야겠다고 생각을 했습니다.
A 레코드란?
도메인 주소와 서버의 IP 주소를 직접 매핑 시키는 방법을 말합니다.
단순하게 도메인과 IP를 연결시키는 방식이기 때문에 어렵지 않게 이해됩니다.
즉 3.155.24.33 이라는 IP가 있는데 해당 IP를 json-test.com과 같은 도메인으로 연결시킬 수 있습니다.
이럴 때 사용하는 방식이 A 레코드입니다.
Cname
Cname은 Canonical name의 약자인데요, Canonical은 "기준의, 정식의, 정규의" 라는 뜻을 가지고 있습니다.
Cname 도메인 주소를 또 다른 도메인 주소로 매핑 시키는 형태의 DNS 레코드 타입입니다.
즉 기존에 있던 도메인을 이용하여 새로운 도메인에 별칭을 부여한다고 생각하시면 됩니다.
예를 들어 json-test.com이라는 사이트로 이동했을 때 json-test-2.com로 이동하게 하려면,
json-test.com 도메인에 cname으로 json-test-2.com의 도메인을 연결시켜놓으시면 됩니다.
A 레코드 Cname 비교 사진
위 사진을 보시면 A 레코드와 Cname에 대해서 더 쉽게 알 수 있습니다.
ip와 직접적으로 매핑하면 A 레코드, 간접적으로 다른 도메인이나 별칭을 연결하면 Cname입니다.
A 레코드의 장단점
한번의 요청으로 찾아갈 서버의 IP 주소를 알 수 있습니다.
다만 IP주소가 자주 바뀌는 환경에서는 계속 도메인에 연결된 IP를 바꿔줘야 하므로 번거로울 수 있습니다.
예를 들어, 172.17.0.2의 서브도메인들을 처리하고 있을 때 A레코드만 매핑시켰다면 172.17.0.2가 바뀌었을 때 모든 A 레코드를 찾아서 변경을 해야 합니다.
Cname의 장단점
Cname 레코드의 장점은 IP주소가 자주 변경되는 환경에서 유연하게 대처할 수 있다는 장점이 있습니다.
예를 들어 json-test1.com, json-test2.com 정보를 json-test-root.com이라는 주소로 매핑시키는 Cname을 저장하고 json-test-root.com을 172.17.0.2로 매핑시키는 A레코드로 저장해 놨다면 서버의 IP주소가 바뀌었을 때 json-test-root.com의 A레코드 정보만 변경시키면 나머지 Cname으로 저장한 레코드는 변경하지 않아도 됩니다.
Cname 레코드의 단점은 위와 같은 alias(별칭)를 통한 연결 방법이기 때문에 실제 주소를 얻을 때까지 여러번 DNS 정보를 요청해야 하는데, 이는 경우에 따라서 성능 저하를 유발할 수 있습니다.
참고
https://dev.plusblog.co.kr/30
'서버 인프라, 백엔드 > 아마존 (AWS)' 카테고리의 다른 글
AWS : 계정들간의 Route53 도메인 공유하기 (0) | 2022.08.10 |
---|---|
AWS : EC2 / S3 / CloudFront 트래픽 요금 분석 (2) | 2021.12.13 |
AWS : Auto-Scaling과 예약 인스턴스(RI) 사용시 비용 산정 (동시 사용) (2) | 2021.07.01 |
AWS : Route 53 요금 및 비용 산정 (10) | 2021.04.06 |
AWS : HTTP에서 HTTPS로 redirection 설정하기 (http_x_forwarded_proto + EC2 +ELB) (3) | 2021.03.19 |