본문 바로가기

Infrastructure/Cloud Computing

[AWS] Route53

DNS란?

DNS(Domain Name System)은 사람이 읽을 수 있는 도메인을 다양한 하드웨어 디바이스에서 읽을 수 있는 IP주소로 변환하는 역할을 한다. 인터넷을 사용하여 통신하는 모든 디바이스들은 IP 주소를 가지고 서로를 찾아가며 통신한다. 만약 DNS가 없다면 우리는 네이버에 접속하기 위해서 아래의 이미지와 같이 "223.130.200.104"를 입력해서 네이버에 접속해야한다. 실제로 IP주소를 브라우저에 입력해도 네이버로 접속되는 것을 확인할 수 있다.

그림1

DNS가 있기 때문에 우리는 기억하기 힘들고 긴 IP주소 대신에 "naver.com"이라는 비교적 기억하기 쉬운 주소만 기억하면 되는 것이다.

DNS 구성

인터넷 도메인 체계의 최상위는 루트(Root)로 인터넷 도메인의 시작점이 된다. 루트 도메인 바로 아래 단계에 위치하는 도메인을 1단계 도메인이라고 하며 최상위 도메인 또는 TLD(Top Level Domains)라 한다. 최상위 도메인은 국가명을 나타내는 국가 최상위 도메인(예를들어 .kr, .jp)과 일반적으로 사용되는 일반 최상위 도메인으로 구분된다.

그림2

DNS 동작원리

아래의 그림과 글은 AWS 공식문서에 나와있는 글이며 대부분의 내용을 수정없이 가져왔다. 아래의 그림은 재귀적 DNS 서비스와 신뢰할 수 있는 DNS 서비스가 서로 연계하여 최종 사용자를 웹 사이트 또는 애플리케이션으로 라우팅하는 방법에 대한 개요를 보여준다.

그림3
  1. 사용자가 웹 브라우저를 열어 주소 표시줄에 "www.example.com"을 입력하고 Enter키를 누른다.

  2. "www.example.com"에 대한 요청은 일반적으로 케이블 인터넷 공급업체, DSL 광대역 공급업체 또는 기업 네트워크 같은 인터넷 서비스 제공업체(ISP)가 관리하는 DNS resolver(해석기)로 라우팅된다.

  3. ISP의 DNS resolver는 "www.example.com"에 대한 요청을 DNS root name server로 전달한다.

  4. ISP의 DNS resolver는 "www.example.com"의 대한 요청을 이번에는 ".com" 도메인의 TLD 이름 서버 중 하나에 다시 전달한다. ".com"도메인의 Name server는 "example.com"도메인과 연관된 4개의 Amazon Route 53 Name server의 이름을 사용하여 요청에 응답한다.

  5. ISP의 DNS resolver는 Amazon Route 53 이름 서버 하나를 선택해 "www.example.com"에 대한 요청을 해당 name server로 전달한다.

  6. Amazon Route 53 이름 서버는 "example.com" 호스팅 영역에서 "www.example.com" 레코드를 찾아 웹 서버의 IP 주소 192.0.2.44 등 연관된 값을받고 이 IP주소를 DNS resolver로 반환한다.

  7. ISP의 DNS resolver가 마침내 사용자에게 필요한 IP 주소를 확보하게 된다. resolver는 이 값을 웹 브라우저로 반환한다. 또한, DNS resolver는 다음에 누군가가 "example.com"을 탐색할 때 좀 더 빠르게 응답할 수 있도록 사용자가 지정하는 일정 기간 "example.com"의 IP 주소를 캐싱한다. 자세한 내용은 Time to Live(TTL)을 참고한다.

  8. 웹 브라우저는 DNS resolver로부터 얻은 IP 주소로 "www.example.com"에 대한 요청을 전송한다. 여기가 콘텐츠가 있는 곳으로, 예를 들어 웹 사이트 엔드포인트로 구성된 Amazon S3 버킷 또는 Amazon EC2 인스턴스에서 실행되는 웹 서버다.

  9. "192.0.2.44"에 있는 웹 서버 또는 그 밖의 리소스는 "www.example.com"의 웹 페이지를 웹 브라우저로 반환하고, 웹 브라우저는 이 페이지를 표시한다.

Route 53이란?

가용성과 확장성이 뛰어난 클라우드 기반의 Domain Name System이다. 이 서비스는 "www.example.com"과 같은 이름을 "192.0.2.1"과 같은 IP 주소로 변경해주는 역할을 한다. EC2 인스턴스, Elastic Load Balancing, S3 Bucket등 AWS에서 실행되는 다양한 인프라에 효과적으로 연결할 수 있다.

연결 체크 및 Failover(Health Checks and Failover): Health check 기능을 사용하면 상태 확인 에이전트가 Route53에 연결된 애플리케이션의 Endpoint를 모니터링한다. 주기적으로 서비스 가능 여부를 확인하여 "정상", "비정상"상태를 반환한다. 연결 상태가 좋지 않다면 CloudWatch 알림을 구성할 수 있다. 또한 장애 조치(DNS Failover)가 구성되어 있고 에이전트가 정상이 아닌 것으로 판단되면 외부 사용자를 아래의 그림과 같이 정상적으로 연결 가능한 다른 Endpoint로 연결한다.

그림4

지연 시간 기반 라우팅(Latency Based Routing): 동일한 기능을 수행하는 여러 인스턴스가 있을 때, 가장 지연시간이 적은 인스턴스로 Route53에서 DNS 쿼리에 응답처리하는 방식이다. 지연 시간 기반 라우팅은 최종 사용자에게 최저 지연 시간을 제공하는 엔드포인트로 라우팅한다. 일정 기간 동안 수행된 지연 시간을 측정하여 주기적으로 변경사항을 반영한다.

그림5

가중치 기반 라우팅(Weighted Round Robin Routing): 여러 리소스를 단일 도메인으로 연결하고 같은 기능을 수행하는 여러 리소스에 대해 사용자가 기정한 가중치 비율로 트래픽을 라우팅한다. 서버별로 가중치 비율을 지정하여 해당 리소스에 접속할 확률을 조정할 수 있다. 아래의 그림을 살펴보면 모든 트래픽의 99%는 좌측 인스턴스로 1%는 우측 인스턴스로 전달된다.

그림6

지역 기반 라우팅(Geolocation Routing): 요청이 시작된 지리적인 위치를 기반으로 특정 엔드포인트에 대한 라우팅을 수행한다. 국가별 또는 사용자의 지역적 위치에 따라 현지화된 콘텐츠를 사용자별로 제공할 때 사용된다. 또는 라이선스가 있는 시장에만 콘텐츠 배포를 한정하고 싶을 때 사용할 수 있다. 지역 기반 라우팅의 경우 지연 시간 기반 라우팅 또는 DNS Failover과 결합하여 사용할 수 있다.

그림7

이 글은 아마존 웹 서비스 AWS Discovery Book 도서와 AWS 공식문서를 참고하여 작성하였다.

이미지 출처:

'Infrastructure > Cloud Computing' 카테고리의 다른 글

[AWS] Auto Scaling  (0) 2022.02.17
[AWS] ELB  (0) 2022.02.17
[AWS] RDS  (0) 2022.02.16
[AWS] Network  (0) 2022.02.14
[AWS] S3  (0) 2022.02.14