Route 53 와 DNS 이해하기

이수찬·2023년 5월 29일
0

1. Route 53 이란?

  • AWS에서 제공하는 도메인 웹 서비스(DNS) 이다.
  • AWS에서 서버의 성격을 가진 S3, EC2, Cloud Front같은 서비스들과 쉽게 연동할 수 있다.
  • 도메인을 이용해 여러개의 서비스로 부하를 분산할 수 있다.

Route 53을 이해하기 위해서는 DNS에 대해 자세히 이해해야 한다.
먼저 DNS란 무엇이며, 어떻게 작동하는지 알아보자.

2. DNS 란?

  • DNS는 도메인 웹 서비스의 약자로 사람이 읽을 수 있는 도메인 이름을 머신이 읽을 수 있는 IP주소로 변환한다.

  • DNS 서버 없이 다른 웹 브라우저로 다른 웹사이트로 이동하려면 IP주소를 기억해 통신해야 했지만, DNS를 사용하면 example.com과 같은 도메인 이름을 입력해 원하는 웹 사이트로 이동할 수 있다.

  • DNS 서버는 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력할 때 최종 사용자를 어떤 서버에 연결할 것인지를 제어하는데, 이 요청을 쿼리라고 부릅니다.

2- 1. DNS를 활용해 도메인 이름을 IP주소와 매핑하기

  1. 원하는 도메인 이름 정하기

  2. 도메인을 등록하려면 사용자는 도메인 이름을 등록대행자에게 도메인 매핑을 요청하면 등록대행자는 Authoritative name server와 도메인 이름을 매핑하여 등록소에 요청해 top-level domain에 매핑 정보를 저장한다.
    (top level domain에는 도메인 주소와 Authoritative name server의 주소에 대한 매핑 정보를 저장한다.)
    (Authoritative name server에는 도메인 이름과 ip주소를 매핑해 저장한다.)

(+ root name server에는 이미 top-level domain과 어떤 top-level server가 매핑되어있는지가 저장되어 있기 때문에 이 작업은 하지 않아도 된다.)

2 - 2. 클라이언트가 DNS를 사용해 웹 사이트에 접속하는 과정

  1. 클라이언트가 랜선이나 wifi에 연결하면 그 컴퓨터에 자동으로 DNS Resolver와 연결된다.

  2. 클라이언트가 어떤 도메인에 접속하기 위해 웹 브라우저에 해당 도메인을 입력하면, DNS Resolver가 해당 요청을 받아 Root name server에게 요청을 보낸다.

  3. root name server는 도메인 이름으로 top-level을 알아내서 해당 top-level들을 관리하는 top-level domain server로 요청을 보낸다.

  4. top-level domain은 도메인 주소와 어떤 name server가 연결되어 있는지 확인해 해당 authoritative name server에 요청한다.

  5. authoritative name server는 도메인 주소에 매핑되어 있는 ip주소를 찾아 DNS Resolver 에게 반환해 준다.
    DNS Resolver는 해당 도메인의 IP주소를 일정 기간동안 캐싱한다.

3. Route 53의 기능

  • 위의 그림을 보면 Authoritative Name Server위치에 Amazon Route 53 Server가 존재하는 것을 볼 수 있다.

  • Route 53의 핵심기능은 등록 대행자의 역할을 하며, Authoritative name server를 4개 생성해주고, 도메인 주소와 name server를 매핑한 정보를 등록소에 전해 top-level domain server가 해당 정보를 저장하도록 하는 역할을 수행한다.

  • Route 53은 도메인 구입부터 name server등록까지 dns에 필요한 모든 기능을 제공하고, EC2, ELB, S3등과 같이 AWS에서 실행되는 인프라를 효과적으로 연결한다.

4. DNS Record

  • DNS Record란 DNS서버가 패킷을 받았을 때 어떻게 처리해야 하는지에 대한 지침을 말한다.
    (DNS 상에서 도메인에 관한 설정을 하기위해 사용되는 일련의 문자를 말한다.)

  • 도메인을 실제 구입해 등록 대행자를 통해 자신이 구입한 도메인 이름과 IP주소를 매핑하려면 DNS Record 정보가 필요하다.

4 - 1. A Record

  • IP주소와 도메인 주소를 매핑할 때 사용하는 레코드로 하나의 도메인에 여러개의 IP주소를 저장할 수 있다.
    (정책에 따라 일대일, 다대일 매칭 모두 가능하다.)

  • ex) example.com이라는 도메인 이름에 111.11.111.111이라는 IP주소와 1234.12.123.123이라는 IP주소들을 모두 연결할 수 있다.

4 - 2. C Name Record

  • 도메인 별명 레코드 또는 Alias라고도 부르는 레코드로 기존 도메인에 별명을 붙인 레코드이다.
    (도메인 주소를 다른 도메인 주소로 이중 매핑시키는 형태의 DNS Record이다.
    물론 다른 도메인 주소로 매핑해야 한다.)

  • 만약 example.com 이라는 도메인이 있다면, example2.com이나 example3.com을 C Name Record로 지정할 수 있다.

  • 이때, C Name Record를 통해서도 도메인에 매핑된 IP주소에 접속할 수 있다.

4 - 3. A Record vs C Name Record

A Record는 한번의 요청으로 찾아가야할 서버의 IP주소를 알 수 있어 속도가 빠르다.
그러나 IP주소가 자주 바뀌는 상황에서는 계속해서 A Record를 변경해야 하는 단점이 있다.

예를 들어 도메인 이름 example1.com과 example2.com을 A Record로 IP주소 12.12.1.11를 매핑했다고 가정하자.

이후 서버의 IP주소가 업데이트되어 IP주소가 12.12.1.11에서 12.12.1.12로 변경되었다면 매핑되어있는 도메인 이름들로는 변경된 IP에 접속할 수 없다.
도메인 이름과 매핑된 IP주소가 다르기 때문이다.

결국 기존 도메인 이름으로 업데이트된 IP주소로 접속하기 위해서는 이전 IP주소에 연결된 도메인 이름의 A Record를 모두 업데이트 된 IP주소로 변경해야 한다.

C Name Record는 위와 같이 IP주소가 자주 변경되는 상황일 때 사용하면 유리하다.
example.com이라는 메인 도메인에 C Name Record로 example1.com 과 example2.com이라는 2개의 서브 도메인을 추가하고, 메인 도메인을 A Record로 1.1.1.100이라는 IP주소와 매핑했다고 가정해보자.

위와 같이 도메인 이름과 매핑한 IP주소가 변경되었다면, C Name Record를 사용한 경우 메인 도메인과 IP주소를 연결할 때 사용한 A Record만 변경해주면 된다.
메인 도메인과 연결된 서브 도메인들은 어차피 메인 도메인과 연결되어 있기 때문이다.
이와 달리 A Record만을 사용해서 매핑한 경우 연결할 때 사용한 모든 A Record 정보를 변경해야 한다.

그러나 C Name Record는 매핑을 중복해서 실제 IP주소를 얻을 때까지 여러번의 DNS정보를 호출해야 하기 때문에 성능 저하가 발생한다.

0개의 댓글