Route 53
고가용성, 확장성을 갖춘, managed and authoritative (full control by you) DNS 시스템
리소스의 Health check가 가능하다.
100% SLA 가용성을 제공하는 유일한 AWS 서비스이다.
DNS
Domain Name System
사람에게 친숙한 호스트 이름을 대상 서버 IP 주소로 변역한다.
- Domain Registrar
- 도메인 이름을 등록하는 곳
- Amazon Route53
- GoDaddy 등
- 도메인 이름을 등록하는 곳
- Zone File
- DNS 레코드를 포함하는 파일
- Name Server
- DNS 쿼리를 실제로 해결하는 서버
- TLD (Top Level Domain)
- .com, .us, .in, .gov, .org 등
- SLD (Second Level Domain)
- amazon.com, google.com 등
- Root
- https://api.example.com. 에서 마지막 . (dot)
- FQDN
- Fully Qualified Domain Name
Records
레코드를 통해 특정 도메인으로 라우팅하는 방법을 정의한다.
각 레코드는 다음을 포함한다.
- 도메인 이름 / 서브도메인 이름
- example.com
- 레코드 타입
- A
- 호스트 이름과 IPv4 IP를 매핑한다.
- AAAA
- 호스트 이름과 IPv6 IP를 매핑한다.
- CNAME
- 호스트 이름을 다른 호스트 이름과 매핑한다.
- NS
- hosted zone 의 네임서버
- A
- 값
- 123.123.123.123
- 라우팅 정책
- TTL (time to live)
- 클라이언트나 로컬 네임 서버는 TTL에 따라서 쿼리된 결과를 캐시로 저장한다.
Hosted Zones
트래픽이 어떻게 도메인과 서브도메인으로 라우팅되는지를 정의하는 레코드의 컨테이너이다.
Public Hosted Zones
인터넷에서 도메인 이름에 따라 어떻게 트래픽이 라우팅되는지에 대한 레코드를 포함한다.
공개된 클라이언트에서 온 쿼리에 응답할 수 있다.
Private Hosted Zones
VPC 내부에서 트래픽이 어떻게 라우팅되는지에 대한 도메인 레코드를 포함한다.
VPC 내부의 리소스에 대한 쿼리에 응답한다.
CNAME vs Alias
로드밸런서나 CloudFront같은 AWS 리소스를 사용하면 AWS 호스트네임을 제공한다.
lbl-1234.us-east-2.elb.amazonaws.com 을 원하는 myapp.mydomain.com 으로 연결하고자 할 수 있다.
- CNAME
- 호스트 이름이 다른 호스트 이름으로 향하도록 할 수 있다.
- 이는 루트 도메인이 아닌 경우에만 작동한다. (something.mydomain.com)
- Alias
- Route53에 한정되지만, 호스트 이름이 특정 AWS 리소스로 향하도록 할 수 있다.
- 이는 루트 및 비루트 도메인 모두에 작동한다.
- 비용이 없다
- 자체적으로 Health Check가 가능하다.
- 다양한 AWS 리소스가 대상이 될 수 있지만, EC2 DNS 이름은 별칭 레코드의 대상이 될 수 없다.
Routing Policies : 라우팅 정책
Route53이 DNS 쿼리에 응답하는 것에 대한 규칙
Health Check
public 리소스에 대한 HTTP 응답 상태 확인이다.
DNS의 장애 조치를 자동화할 수 있다.
- endpoint 에 대한 모니터링
- endpoint로부터 2XX 나 3XX의 코드를 받아야 통과된다.
- 다른 health check를 모니터링
- 하위 health check를 OR, AND, NOT 으로 조합할 수 있다.
- CloudWatch Alarms를 모니터링
- Route53 health check는 VPC 외부에 있다.
- 따라서 VPC 내부의 인스턴스는 CloudWatch Metric 을 통해 확인할 수 있다.
Simple Routing
기존에 사용해왔던 라우팅 방식
트래픽을 단일 리소스로 라우팅하는 방식이다.
동일한 레코드에 여러 값을 넣을 수 있는데, 이 경우에는 클라이언트가 랜덤으로 선택하게 된다.
Health Check 기능은 없다.
Weighted Routing
가중치를 활용해 요청의 일부 비율을 특정 리소스로 보내는 식의 제어가 가능하다.
DNS 레코드는 같은 이름과 같은 타입을 가지고 있어야 한다.
Health Check 기능과 연계될 수 있다.
- 서로 다른 지역들에 걸쳐 로드 밸런싱을 하는 경우
- 새로운 버전을 일부 사용자들에게 테스트하려는 경우
Failover Routing (Active-Passive)
Health Check 상태에 따라서, Primary 라우트가 불가능하면 Secondary 라우트를 전송한다.
Latency based Routing
지연 시간 (대기 시간) 기반 라우팅 방식
클라이언트로부터 지연 시간이 가장 짧은 리소스로 라우팅해준다.
Health Check 기능과 연계될 수 있다.
- 지연 시간에 민감한 어플리케이션의 경우
Geolocation Routing
사용자의 실제 위치를 기반으로 한다.
대륙, 국가, 주 등을 기반으로 라우팅하게 된다.
해당하는 게 없는 경우 Default 레코드로 라우팅된다.
Multi-Value Answer Routing
트래픽을 다중 리소스로 라우팅할 때 사용한다.
각각의 다중 값 쿼리에 최대 8개의 health check 정상 레코드가 반환된다.
ELB와 유사해 보이지만 ELB를 대체할 수는 없다.
단순 라우팅 정책과는 달리 health check를 지원하는 것에 의미가 있다.
Geoproximity Routing
지리 근접 라우팅은 실제 사용자의 위경도 기반으로 가장 가까운 리소스로 라우팅한다.
bias (편향값) 을 기준으로 리소스에 트래픽이 더욱 할당되게 된다.
Traffic Flow
비주얼 에디터 UI로 복잡한 라우팅 의사 결정 트리를 생성할 수 있다.
이를 통해 복잡한 지리 근접 레코드를 설정할 수 있게 해준다.
'공부한 이야기 > 클라우드' 카테고리의 다른 글
AWS SAA - Identifications (0) | 2022.08.04 |
---|---|
AWS SAA - Storages (0) | 2022.08.02 |
AWS SAA - Decoupling (0) | 2022.08.02 |
AWS SAA - Containers (0) | 2022.08.02 |
AWS SAA - CloudFront & Global Accelerator (0) | 2022.08.02 |