[6일차] Route 53

soyeon·2023년 3월 30일
0

SAA

목록 보기
6/6
post-thumbnail

What is DNS?

: Domain Name System

사람에게 친숙한 호스트 이름을 IP 주소로 번역해 준다. DNS는 계층적 이름 구조를 가진다.

DNS 관련 용어

  • Domain Registrar
    : 도메인 이름을 등록하는 곳
    ex) Amazon Route 53, GoDaddy, …
  • DNS Records
    ex) A, AAAA, CNAME, NS
  • Zone File
    : 모든 DNS Record를 포함한다.
    호스트 이름과 IP 또는 주소를 일치시키는 방법이다.
  • Name Server
    : DNS 쿼리를 실제로 해결하는 서버
  • Top Level Domain(TLD)
    ex) .com, .us, .in, .gov, .org
  • Second Level Domain(SLD)
    ex) amazon.com, google.com

DNS 동작 방법

Amazon Route 53

: 고가용성, 확장성을 갖춘, 완전히 관리되며 권한있는 DNS

권한이 있다는 것은 DNS 레코드를 업데이트할 수 있다는 것이다. DNS를 완전히 제어할 수 있다.
도메인 레지스트라이다.

Route 53 - Records

Route 53은 여러 DNS 레코드를 정의하고, 레코드를 통해 특정 도메인으로 라우팅한다.

  • 각 레코드가 가지는 정보
    • Domain/subdomain Name e.g. example.com
    • Record Type e.g. A or AAAA
    • Value e.g. 123.456.789.123
    • Routing Policy : Route 53이 쿼리에 응답하는 방식
    • TTL : DNS Resolver에서 레코드가 캐싱되는 시간

Route 53 - Record Types

  • A
    : 호스트이름과 IPv4를 매핑한다.
  • AAAA
    : 호스트 이름과 IPv6를 매핑한다.
  • CNAME
    : 호스트 이름을 다른 호스트 이름과 매핑한다.
    Route 53에서 DNS namespace나 Zone Apex의 상위 노드에 대한 CNAME을 생성할 수 없다.
    example.com에 CNAME을 만들 수는 없지만 www.example.com에 대한 CNAME 레코드는 만들 수 있다.
  • NS
    : Hosted Zone의 Name Server
    트래픽이 도메인으로 라우팅 되는 방식을 제어한다.

Route 53 - Hosted Zones

: 레코드의 컨테이너

도메인과 서브도메인으로 가는 트래픽의 라우팅 방식을 정의한다.

AWS에서 만드는 어떤 hosted zone이든 월 50센트를 지불해야 한다.

  • public hosted zone
  • private hosted zone
    VPC만이 url을 resolve 할 수 있다.

Record TTL(Time To Live)

클라이언트가 웹 서버에 접속한다. DNS 요청을 보내면 TTL이 함께 회신된다. 이 시간동안 클라이언트는 결과를 캐시한다.

  • TTL이 높은 경우
    Route 53 트래픽은 현저히 낮다.
    클라이언트는 오래된 레코드를 받을 수 있다.
  • TTL이 낮은 경우
    DNS에 트래픽이 많아져서 비용이 많이 든다.
    오래된 레코드의 보관 시간은 짧아진다.

CNAME vs Alias

로드 밸런서나 CloudFront 등의 AWS의 리소스를 사용하는 경우 호스트 이름이 노출된다. 그리고 보유한 도메인에 호스트 이름을 매핑하고 싶다.
ex) lbl-1234.us-east-2.elb.amazonaws.com → myapp.mydomain.com

두가지 방법

  • CNAME
    호스트 이름을 다른 호스트 이름으로 향하게 한다.
    루트 도메인 이름이 아닌 경우에만 가능하기 때문에 mydomain.com 앞에 무언가가 붙어야 한다.

  • Alias
    호스트 이름이 특정 AWS 리소스로 향하게 한다.
    루트 도메인, 비루트 도메인에 모두 가능하다.
    무료이다.
    TTL을 설정할 수 없다.
    - Target

❌ EC2의 DNS 이름에 대해서는 Alias record를 설정할 수 없다.

Routing Policy

Route 53이 DNS 쿼리에 응답하는 것을 돕는다.

  • 종류
    • Simple(단순)
    • Weighted(가중치 기반)
    • Failover(장애 조치)
    • Latency based(지연 시간 기반)
    • Geolocation(지리적)
    • Multi-Value Answer(다중 값 응답)
    • Geoproximity(지리 근접)

Routing Policy - Simple(단순)

: 트래픽을 단일 리소스로 보내는 방식

동일한 레코드에 여러 개의 값을 지정하는 것도 가능하다. DNS에 의해 다중 값의 받은 경우에는 클라이언트 쪽에서 그 중 하나를 무작위로 고르게 된다.

상태 확인(Health Check)은 할 수 없다.

Routing Policy - Weighted(가중치 기반)

: 가중치를 활용해 요청의 일부 비율을 특정 리소스로 보내는 식의 제어가 가능하다.

DNS 레코드들은 동일한 이름과 유형을 가져야 한다.
서로 다른 지역들에 걸쳐 로드 밸런싱을 할 때나 적은 양의 트래픽을 보내 새 애플리케이션을 테스트하는 경우에 사용한다.
가중치를 0으로 설정해서 트래픽 보내기를 중단해 가중치를 바꿀 수 있다.
모든 리소스 레코드 가중치의 값이 0인 경우에는 모든 레코드가 다시 동일한 가중치를 갖게 된다.

Routing Policy - Latency-based(지연 시간 기반)

: 지연 시간이 가장 짧은(가장 가까운) 리소스로 리다이렉팅을 하는 정책이다.

지연 시간에 민감한 웹사이트나 애플리케이션이 있는 경우에 유용하다.

Routing Policy - Failover(Active-Passive)(장애 조치)

기본 EC2 인스턴스와 보조 EC2 인스턴스(재해 복구 EC2 인스턴스)가 있다. 기본 인스턴스 상태 확인이 비정상이면 자동으로 Route 53은 2번째의 EC2 인스턴스로 장애 조치한다.

Routing Policy - Geolocation(지리적)

: 사용자의 실제 위치를 기반으로 한다.
일치하는 위치가 없는 경우를 위해 기본 레코드를 생성해야 한다.
사용 사례로는 콘텐츠 분산 제한, 로드 밸런싱, 웹사이트 현지화가 있다.

Routing Policy - Geoproximity(지리 근접)

: 사용자와 리소스의 지리적 위치를 기반으로 트래픽을 리소스로 라우팅하도록 한다.
편향값을 사용해 특정 위치의 리소스에 더 많은 트래픽을 이동하게 할 수 있다.

리소스에 더 많은 트래픽을 보내려면
: 편향값을 증가시켜서 확장하면 된다.

리소스에 트래픽을 줄이려면
: 편향값을 음수로 축소시키면 된다.

Routing Policy - Multi-Value Answer(다중 값 응답)

: 트래픽을 다중 리소스로 라우팅할 때 사용한다.
정상 상태 확인과 관련이 있다.
다중 값이 있는 단순 라우팅 정책상태 확인을 허용하지 않기 때문에 단순 라우팅 정책의 쿼리가 반환하는 리소스 중 하나는 비정상일 가능성이 있다.

0개의 댓글