[AWS] route53.
[AWS] route53.
route53
route53은 아마존에서 제공하는 확장 가능한 고가용성의 DNS 웹 서비스이다. Route 53는 사용자 요청을 AWS 또는 온프레미스에서 실행되는 인터넷 애플리케이션에 연결한다고 한다.
route53으로 도메인을 구매하고 관리할 수 있다. 도메인에 대한 DNS 레코드를 생성하고 관리할 수 있다. 트래픽을 효율적으로 분산시켜준다. 헬스 체크 및 모니터링을 지원한다.
넷플릭스, 슬랙, 맥도날도 등 수많은 기업들이 route53을 사용하고있다. 그런 큰 기업들, 많은 기업들이 route53을 사용하는 이유는 무엇일까?
들어가기에 앞서 DNS에 대해 궁금한 사람은 아래 게시글을 확인하자.
위 게시글의 내용을 요약하자면..
사람들은 숫자로 된 ip 주소를 외우고 다닐 수 없다. 따라서 문자로된 도메인 주소가 존재한다. 이를 사용하는 인터넷 주소 체계를 DNS라고 한다. 우리의 컴퓨터에서 도메인 주소로 ip 주소를 요청할 때에는 캐시된 정보와 DNS 서버를 조회한다.
이런 일반적인 DNS와 route53은 어떤 것이 다를까?
먼저 다른 것은 네임서버 등록 시의 순서이다.
네임서버는 DNS의 핵심 요소로, 도메인 이름을 ip주소로 변경하는 역할을 한다.
일반적으로는 도메인 등록 시에 네임서버를 지정하는 반면, route53에서는 도메인 대행기관에 접속하여 네임서버 정보를 지정한다. 도메인 대행기관이라 함은 가비아나 아이네임즈와 같은 서비스를 말한다.
route53에서 네임서버 정보를 등록하기 위해서는 아래와 같은 절차가 있다.
1. AWS에서 route53에 접속하여 도메인 이름과 영역으로 호스팅 영역을 생성한다.
2. 호스팅 영역 생성에 따라 자동으로 NS 레코드가 생성된다. 이를 도메인 등록 기관에 업데이트한다.
route53은 사용자가 DNS에 완전한 권한을 갖는다. 따라서 사용자가 DNS를 업데이트 할 수 있다.
route53을 사용하면서 A Record나 CName이라는 용어를 듣게 될 것이다.
A Record와 CName은 route53의 주요 레코드 유형이다. 레코드는 특정 도메인을 관리하는 항목을 나타낸다.
A Record는 고정된 ip 주소에 도메인을 매핑한 것이다.
CName은 도메인 주소에 또 다른 도메인 주소를 매핑한 것이다.
A Record는 ip 주소가 고정되어있기 때문에 한 번에 주소를 찾아갈 수 있다. 하지만, ip 주소가 자주 변경되는 상황이라면 번거로울 수 있다.
example.com -> 192.0.2.1
CName은 ip주소가 자주 변경되는 상황에서 쉽게 대처할 수 있다. 하지만 실제 주소를 얻을 때까지 여러 번의 요청이 필요하기 때문에 성능 저하를 일으킬 수 있다.
www.example.com -> example.com
이 외에도 여러 레코드가 존재한다.
그런데 프론트엔드 개발자가 route53에 대해 왜 알아야할까?
프론트엔드 개발자가 온전히 프론트엔드 개발만 할 것이라고는 장담할 수 없다. 종종 어플리케이션을 특정 도메인과 연결시킬 필요가 있을 것이다. 그리고 최근 치명적으로 느꼈던 것이 있다. 서버 개발자나 데브옵스 직군과 소통할 때에 어려움을 느꼈다.
아래와 같은 질문을 받았는데 도저히 답변할 수가 없었다.
@Anon1
말씀주신대로 vercel 에서 제공하는 domain 을 route 53 에서 라우팅하는 cname 레코드로 등록한다면.
아시겠지만, 이 그림의 nameserver resolve flow 를 X2 타게 될것으로 예상됩니다. (custom 도메인 한번 vercel 기본 도메인 한번)
ip 대비해서 dns 를 등록하면 약간의 성능 로스가 있을 것 같은데요.
혹시 vercel 에서는 호스팅 웹사이트에 대한 고정 IP 를 제공하지는 않나요?
cc. @Anon2
route 53 라우팅 레코드로 > A 레코드(IPV4)를 라우팅하는게 좋을 것 같아서 질문드립니다.
또한 route53의 로드밸런싱 기능을 사용하면 웹 어플리케이션의 성능을 최적화할 수 있다.
로드밸런싱이란 어플리케이션을 지원하는 풀 전체에 트래픽을 균등하게 배분하는 것을 말한다. 서버와 방문자 간의 트래픽을 균등하게 지시하고 제어하기 때문에 어플리케이션의 가용성, 보안성, 성능 측면의 이점을 얻을 수 있다.
로드밸런싱에 대한 자세한 동작 원리는 다음에 알아보기로 하자.
vercel이라는 막강한 툴이 있기 때문에 "내가 이런걸 왜 공부해야해?" 라고 생각할지도 모른다. 하지만 결국 vercel도 AWS에 의존한다. 또한, vercel에서도 도메인을 등록하기 위해서는 외부 기관에 종속되는데 AWS의 route53을 사용한다면 폭발적인 이점들을 가져올 수 있으니 꼭 공부해보자.
정말 다른 분야의 사람들과 소통하는데에서 많은 니즈를 느낀다.