[SAA] 섹션 10: Route 53

천호영·2022년 6월 5일
0

aws

목록 보기
9/10
post-thumbnail

DNS는 Domain name System의 약자이다.

  • 사용자 친화적인 hostname인 www.google.com을 172.217.18.36과 같이 반환해주는 역할을 한다.
  • DNS는 hierarchical 이름 구조를 가진다.

용어 정리

  • Domain Registrar(도메인 등록대행업체): AWS Route53, GoDaddy 등
  • DNS Records: A, AAAA, CNAME, NS, ...
  • Zone File: contains DNS records
  • Name Server: resolves DNS queries
  • Top Level Domain(TLD): .com
  • Second Level Domain(SLD): google.com

cf. resolver(리졸버)는 DNS의 클라이언트이며 호스트의 정보를 구하는 프로그램의 요청을 네임 서버에 대한 질의 형태로 번역하고, 그 질의에 대한 응답을 프로그램에 적절한 형태로 변한다.

DNS 동작구조

Amazon Route 53

  • Route53은 Authoritative DNS여서 DNS records를 직접 업데이트 가능하다.
  • Route53은 Domain Registrar(도메인 등록대행업체)이기도 하다.
  • AWS Service중에 유일하게 100% availability SLA(Service-Level Agreement, 서비스수준계약)를 제공한다.
  • 53인 이유는 traditional DNS port이기 때문이다.

Record에는 다음 정보들을 포함하고 있다.

  • Domain/subdomain Name: example.com
  • Record Type: A or AAAA
  • Value: 12.34.56.78
  • Routing Policy: how Route52 responds to quries
  • TTL(Time-To-Live): DNS resolver에 record를 캐싱할 시간

DNS record type들 중에 A/AAAA/CNAME/NS는 반드시 알아야 한다.

  • A: hostname을 IPv4에 매핑
  • AAAA: hostname을 IPv6에 매핑
  • CNAME: hostname을 다른 hostname에 매핑
    • target은 A나 AAAA record를 가진 domain name이어야 한다.
  • NS: Hosted Zone에 쓰이는 Name Server

Hosted Zone

Hosted Zone은 records를 담고있는 컨테이너이다.
Public Hosted Zones와 Private Hosted Zones가 있고, Private은 VPC내에서만 접근가능하다.

  • 어떤 Hosted Zone이든 한달이 0.5$를 지급해야 한다.

Records TTL(Time To Live)

TTL: 캐싱하는 시간

  • High TTL(ex.24시간): 적은 traffic이지만 outdated인 record일 확률 높음
  • Low TTL(ex. 1분): 많은 traffic이지만 outdated인 record일 확률 적고, record 쉽게 바로 변경 가능

Alias Record를 제외하고 모든 DNS record에 TTL은 필수적이다.

CNAME vs Alias

Alias는 DNS 기능에 대한 extention이다.

CNAME은 hostname을 다른 hostname에 매핑하고,
Alias는 hostname을 AWS Resource에 매핑한다.

이때, CNAME은 NON ROOT DOMAIN에 대해서만 가능하고 Alias는 ROOT DOMAIN에 대해서도 가능하다.

  • Alias Record에 대한 요금청구 없다.
  • Alias Record를 사용하면 AWS resource의 IP 주소 변화를 자동으로 인지한다.
  • Alias Record는 AWS resource에 대해 항상 type A 혹은 AAAA이다.
  • Alias Record에는 TTL을 설정할 수 없다.(Route53에 의해 자동세팅됨)

EC2 DNS name에 대해 ALIAS record를 세팅할 수는 없다.

Routing Policy

Routing Policy는 Route 53이 DNS query에 대해 어떻게 응답할지 정의한다.
DNS는 traffic을 routing하는 역할은 수행하지 않고, 그저 DNS query에 응답하는 역할만 수행한다.

Route53에서 지원하는 Routing Policy들은 다음과 같다

  • Simple
  • Weighted
  • Failover
  • Latency based
  • Geolocation
  • Multi-Value Answer
  • Geoproximity (using Route 53 Traffic Flow feature)

Routing Policy - Simple

주로 single resource에 대한 트래픽

  • 한 record에 여러 value를 명시할 수 있는데, 여러 value가 반환되면 client는 그 중에 하나를 랜덤으로 선택한다
  • Alias를 쓰면 한 AWS resoucre만 명시가능
  • Health Check 연동 불가능

Routing Policy - Weighted

각 resource에 대해 request의 몇 %가 갈지 컨트롤한다.

  • 같은 이름과 같은 type의 여러 DNS records를 만들어야 한다.
  • Health Check 가능
  • weight가 0이면 해당 resource에 대한 트래픽 중단이나, 모두 weight가 0이면 동등하게 분배된다.

Routing Policy - Latency-based

latency가 가장 적은 resource로 안내한다.

  • latency가 유저에게 가장 중요한 요소일 때 매우 유용하다
  • resource를 매핑할 특정 Region을 선택해야 한다.
  • Latency는 user와 AWS Region 사이의 traffic에 기반한다.
  • Health Check 가능(failover capability를 가짐)

Route 53 Health Check

HTTP Health Check는 public resource에 대해서만 가능하다.
Health Check를 하는 목적은 자동 DNS failover를 위함이다.

다음 3가지의 Health Check가 가능하다.

  • Health checks that monitor an endpoint
  • Health checks that monitor other health checks (Calculated Health Checks)
    • AND, OR, NOT으로 조건 생성 가능
  • Health checks that monitor CloudWatch Alarms (full control)
    • Route 53 health checkers는 VPC밖에 있어서 VPC내에서는 이 방법 사용

Health Check는 CW metric들과 연동될 수 있다.

Routing Policy - Failover

하나의 Primary Record와 함께 Secondary Record를 둬서 Primary의 Health Check가 실패하면 Secondary로 자동 failover되도록 한다.

Routing Policy - Geolocation(지리적 위치)

Latency-based와 다른 점은 user location에 기반한다는 것이다.

  • 등록되지 않은 location의 경우 Default record에 route한다.
  • Health Check 연동 가능

Routing Policy - Geoproximity(지리적 근접성)

user와 resource의 위치에 기반해 traffic을 route한다.

  • bias를 통해 특정 resource에 많은 traffic이 가도록 할 수 있다.
  • 항상 Route 53 Traffic Flow와 함께 사용되어야 한다.]

Route 53 –Traffic flow

Traffic Flow는 복잡한 routing decision tree를 관리할 수 있는 Visual Editor다.
설정은 Traffic Flow Policy로 저장된다.

  • 다른 Route 53 Hosted Zones에서 사용 가능하고, versioning도 지원된다.

Routing Policy - Multi Value

traffic을 다양한 resource에 route할 때 사용한다.

  • 최대 8개의 records가 반환될 수 있다.
  • Health Check 연동 가능
  • ELB의 대체제가 아니다

Domain Registar vs DNS Service

Domain Registar에서 domain name을 구매해서 주로 매년 금액을 지불한다.
Domain Registar에서 DNS record들을 관리하는 DNS Service도 보통 함께 제공한다.

하지만, 꼭 해당 Domain Registar의 DNS Service를 이용할 필요는 없다.
(GoDaddy에서 domain name을 구매하고, Amazon Route53에서 DNS records를 관리해도 됨)

3rd party website에서 구매한 domain을 Route53에서 사용하려면 새로운 Public Hosted Zone을 만들고, 3rd party website에서 NS Records를 업데이트해주면 된다.

profile
성장!

0개의 댓글