[Route 53] Route 53 개요

728x90

Amazon Route 53 개요

Route53 은 고가용성, 확장성을 갖추고 사용자들이 DNS 레코드를 업데이트할 수 있는 서비스이다.

즉, DNS 를 완전하게 제어할 수 있다는 뜻이다.

예시

예를 들어, 클라이언트가 있고 클라이언트가 EC2 인스턴스 example.com 에 접근하려고 한다.

그러나 지금은 EC2 인스턴스에는 public IP, 54.22.33.44 만 있는 상태이다.

 

클라이언트가 example.com 에 접근을 하면 DNS 레코드를 아마존 Route 53의 호스팅 존에 write 하려고 한다.

그러면 Route53 에서 IP 54.22.33.44 를 찾는 중이라고 응답한다.

 

클라이언트는 바로 EC2 인스턴스에 접근을 하고 Route 53 은 Domain Registrar 이기 때문에 해당 주소의 대응되는 도메인 이름을 example.com 으로 등록한다.

100% SLA 가용성을 제공하는 유일한 AWS 서비스이다.

왜 Route 53 이라고 불리지..?

  • 53은 DNS 서비스 즉, 이름에서 사용되는 전통적인 DNS 포트이다. Route 53 에서 여러 DNS 레코드를 정의하고 레코드를 통해 특정 도메인으로 라우팅하는 방법을 정의한다.
  • 각 레코드는 도메인이나 example.com 과 같은 서브 도메인 이름과 같은 정보를 포함한다.
    • A or AAAA 와 같은 레코드 종류가 존재
    • 레코드의 값은 123.456.789.123 과 같은 값을 같는다.
    • 라우팅 정책은 Route 53 이 쿼리에 응답하는 방식이다.
    • TTL 은 DNS 리졸버에서 레코드가 캐싱되는 시간이다. Time To Live 라고 부른다.
  • Route 53 에서 지원하는 DNS 레코드 종류는 많다.
    • 반드시 알아야 하는 것들로는 A, AAAA, CNAME, NS 가 있다.
    • 고급 레코드들도 있다. CAA, DS, MX, NAPTR, PTR, SOA, TXT, SPF, SRV 가 있다.

Route 53 의 레코드 종류

  • A 레코드 : 도메인 이름을 IPv4 IP 주소에 라우팅한다. 예를 들어, example.com 은 1.2.3.4 로 바로 연결된다.
  • AAAA 레코드 : 도메인 이름을 IPv6 IP 주소에 라우팅한다.
  • CNAME 레코드 : 도메인 이름을 다른 도메인 이름에 라우팅한다.
    • 대상이 되는 호스트 이름은 A 나 AAAA 레코드가 될 수 있다.
    • Route 53에서 DNS 이름 공간의 상위 노드에 대해 CNAMES 를 생성할 수 없다.
    • 예를 들어, example.com 에 CNAME 을 만들 수는 없지만 wwww.example.com 에 대한 CNAME 레코드는 만들 수 있다.
  • NS 레코드 : Name Servers for the Hosted Zone 으로 호스팅 존의 Name 서버이다.
    • 호스팅 존에 대한 DNS 쿼리에 응답할 수 있다.
    • 트래픽이 도메인으로 라우팅 되는 방식을 컨트롤 할 수 있다.

Hosted Zones

  • 호스팅 존이란 레코드의 컨테이너로 도메인과 서브도메인으로 가는 트래픽의 라우팅 방식을 정의한다.
  • 호스팅 존에는 두 가지 종류가 있다.
    • Public Hosted Zones
      • 특정 도메인(예: example.com)과 그 하위 도메인(acme.example.com, zenith.example.com)의 트래픽을 인터넷에서 라우팅하는 방식에 대한 정보를 담고 있는 컨테이너이다.
      • Route 53에 도메인을 등록하면 호스팅 영역이 자동으로 생성된다.
      • 기존 도메인에 대한 DNS 서비스를 Route 53로 전송하는 경우 도메인에 대한 호스팅 영역 생성부터 시작한다.
    • Private Hosted Zones
      • Amazon VPC 서비스로 생성한 하나 이상의 VPC 내에 있는 도메인과 그 하위 도메인에 대하여 Amazon Route 53의 DNS 쿼리 응답 정보가 담긴 컨테이너이다.
      • 회사 내부에서만 접근할 수 있는 비공개 URL 이 필요로 할 때 사용한다.
      • 비공개 URL 이기 때문에 private DNS 레코드가 존재한다.
  • AWS 에서 호스팅 존을 일단 만들면 월 500원을 내야 한다. 무료가 아니다!
  • 도메인 이름을 등록하면 일 년에 최소 1300원 정도를 지불해야 한다.

Public Hosted Zones vs Private Hosted Zones

퍼블릭 호스팅 존은 클라이언트로부터 온 쿼리에 응답을 할 수 있다.

웹 브라우저에서 example.com 을 요청하면 Route 53 이 해당하는 IP 주소를 리턴해준다.

프라이빗 호스팅 존의 경우 VPC 에서만 작동을 하고 비공개 도메인 명의 프라이빗 리소스를 식별할 수 있게 해준다.

 

예를 들어 EC2 인스턴스가 webapp.example.internal 이라는 도메인 명을 갖는다.

 

또 다른 EC2 인스턴스가 api.example.internal 도메인 명을 갖는다.

데이터베이스 인스턴스가 db.example.internal 도메인 명을 갖는다.

프라이빗 호스팅 존에는 현재 VPC 망 안에 존재하는 모든 private IP 들을 갖고 있는 상태이다.

 

그래서 webapp.example.internal 인스턴스가 api.example.internal 의 도메인 명을 쿼리하면 프라이빗 호스팅 존은 해당 도메인의 private IP 주소인 10.0.1.0 을 리턴해준다.

 

api.example.internal 인스턴스가 db.example.internal 의 도메인 명을 쿼리하면 프라이빗 호스팅 존은 해당 도메인의 private IP 주소인 10.0.0.35 를 리턴해준다.

그래서 각각의 인스턴스들에 보안 그룹 인바운드 규칙을 설정해놓으면 각각의 인스턴스에 서로 접근을 할 수 있다.

Public/private Hosted Zones 정리

퍼블릭 호스팅 존과 프라이빗 호스팅 존은 똑같이 동작하지만 퍼블릭 호스팅 존의 경우에는 누구나 내 레코드를 쿼리할 수 있다는 것이고, 프라이빗 호스팅 존은 VPC 내부에서 private IP 주소를 갖는 녀석들끼리 레코드를 쿼리할 때 사용한다는 점이다.

728x90