도메인과 네임서버 그리고 Route53이란?

noyo0123·2019년 10월 22일
2

Route53은 AWS 리소스(EC2, CloudFront, S3 등) 과 연동 가능한 DNS 서비스입니다!

프리티어에서 사용 불가합니다!

DNS (도메인 네임 시스템)은 도메인과 대응된 IP 주소를 알려줍니다.

도메인을 만들 수 있는 곳은? Route53, cafe24, 가비아, freenom 등이 있습니다.
도메인을 구매하면 네임서버까지 연동해서 주는 걸까요? 살펴볼게요.

도메인은 어려운 말로 호스트에 대한 책임과 권한의 영역이래요.
호스트라고 하는 것은 서버 프로그램이 돌아가는 머신을 뜻하는 것이겠죠.
물론 머신은 여러 호스트를 갖을 수 있을 것입니다.

도메인을 제가 경험한 말로 얘길해보면 웹 애플리케이션 서버의 IP주소의 별명이라고 생각 할 수 있을것 같아요.
네임서버에 도메인과 IP주소가 쌍으로 저장이되어있으니까요.

DNS 작동방식은 다음과 같아요.

출처 : DNS 구성 요소 – ② 도메인 네임 서버(Domain Name Server) - gabia. 라이브러리

어차피 들릴곳만 들린다면

요렇게 볼 수 있겠죠.

그리고 네임서버 DNS 질의 시! 캐시가 된다는 점!
대부분의 네임서버 제공 업체에서는 일명 ‘캐시 서버’라 하여 한 번 방문이 있었던 웹페이지의 정보를 일정 시간 저장하였다가 재요청이 있는 경우 즉시 응답합니다. 실제로 많은 경우 특정 웹사이트를 주로 방문하기 때문에 이러한 캐시 서버의 역할이 중요합니다.

이렇게 도메인과 뗄 수 없는게 네임서버죠. 네임서버에 도메인과 IP주소를 쌍으로 저장해두고,
이로인해 우리는 브라우저에 도메인을 입력해서 해당 클라이언트의 HTML파일을 엔드포인트로 지정해두어서 그 HTML을 브라우저에서 렌더링해주든지, 기존의 서버사이드 렌더링에서는 웹서버가 응답해준 HTML 문서를 응답받아서 화면에 렌더링 됩니다.

다시 돌아와서 서버나 호스팅을 하는 업체라면 네임서버를 구축하고 있대요. 위에 그림에 나온 가비아처럼요.
즉, 도메인에 관해서 각각의 네임서버가 존재한대요!

중간에 네임서버만 바꾸는 작업도 가능해요.
해외 느린 네임서버에 문제를 해결하기 위해서 중간에 네임서버만 바꾸는 작업도 가능합니다. 도메인을 구입해 놓고, 다른 도메인 관리 네임서버에 설정해 놓고 관리를 할 수 있습니다. 즉, 도메인 이름만 빌려주고 다른 네임서버에 연결시켜놓고 빠른 페이징을 기대해 볼 수 있습니다.

외부 도메인과 CloudFront를 연동해봅시다!

그러면 이제 궁금한게요. CloudFront의 엔드포인트를 통해 S3에 올려둔 React 앱을 호스팅 할 수 있거든요? 그 친구랑 freenom에서 생성한 도메인을 어떻게 연결하나요?

S3 정적 호스팅?
S3의 버킷을 생성한후에 속성에서 정적 웹 사이트 호스팅에서 다음과 같이 설정을 해주면 엔드포인트를 줍니다.

즉 aws에서 웹 호스팅(즉 머신에 웹 서버프로그램을 띄워서 AWS 네임서버에 도메인과 host(머신)의 IP주소를 매핑해서 엔드포인트를 제공)을 해줍니다.

그러면 이제 CloudFront에 S3를 연동하는건 간단하니, 연동되었다고 하고요.
그리고 CloudFront에 SSL을 연동했으면 CloudFront Domain만으로도 이미 HTTPS를 사용하실 수 있게 됩니다.

AWS console에서 Route53으로 가봅시다.
먼저 호스팅 영역 생성! 및 다음 순서대로 호스팅 영역을 생성하고 레코드 세트로 이동합니다.

이제 드디어 도메인과 CloudFront를 연동할 차례입니다.
처음 들어가시면 NS, SOA만 있을거에요.

저 네임서버를요 기존에 생성하신 도메인의 네임서버에 등록해주시면 됩니다. 저 같은 경우에 freenom에서 도메인을 생성했으니

다시 Route53으로 오셔서
유형을 A로 해주세요.
그리고 이름 : 도메인 , 별칭 \"예\" 누르시고 별칭대상에 CloudFront domain을 넣어주세요.

도메인 연결하는 방법!

  1. A Record

일반적으로 많이 사용하는 IPv4방식(예 - 123.123.456.456)의 IP주소로 연결해 줍니다. 현재 가장 많이 쓰이고 있는 방법입니다.

  1. AAAA Record

IPv6방식(예 - 1234:2345:3456:4567:5678)의 IP주소에 연결을 하여 줍니다. IPv6의 주소를 사용하고 있는 경우에만 관련됩니다.

  1. CNAME Record

별칭이라는 이야기를 하는데, 쉽게 말씀드리면 다른 도메인 주소를 지정한 주소로 연결할 수 있게끔 해줍니다.

  1. DDNS Record

개인 서버를 운영하거나 공인 IP가 유동적인 경우에는 변경된 아이피 주소를 주기적으로 갱신하여 줍니다. A Record방식과 연결방식에는 차이가 없지만 자동으로 변경된 아이피를 갱신하는냐, 아니면 직접 입력을 하느냐의 차이입니다.

  1. 웹 포워딩

아이피주소가 아닌 웹 주소로 직접 연결을 합니다. 웹 포워딩의 장점은 복잡한 주소를 한번에 연결할 때 편합니다. 하지만 원래 주소를 감춰서 보여주지 못합니다. (억지로 감추면 멀쩡한 웹페이지 해상도가 꼬이는 등 별별 현상이 다 일어나더군요.)

위의 방식들은 원래의 주소(IP주소)를 감춰서 보여주기 때문에 원래의 주소가 노출 될 일은 없지만 웹 포워딩은 원래 주소가 노출되는 불편한 점을 가지고 있습니다.

무료 도메인의 경우 이 방식으로 많이 사용합니다.

출처: https://studyforus.tistory.com/52 [Study For Us]

레퍼런스 : 네임서버와 DNS에 대해 알아기기 (도메인 연결방법) - clamp2x
레퍼런스 : DNS 구성요소 - gabia 라이브러리

profile
자바스크립트를 주언어로 개발을 배우고 있습니다. 서로 아는 것들을 공유해요~

2개의 댓글

comment-user-thumbnail
2019년 10월 22일

선 리플 후 감상 하겠습니다.

답글 달기
comment-user-thumbnail
2019년 10월 22일

선 하트 후 감상

답글 달기