Route 53의 레코드 종류
- 별칭 A 레코드 (=AWS 리소스에 대한 레코드)
- AWS 내의 특정 리소스에 대한 A 레코드 (dns name --> IP)
- ELB, S3 버킷, API Gateway 등 리소스 name
- Route 53에 정의된 다른 도메인과 같은 대상에 대한 DNS도 처리
- 별칭 레코드는 대상 AWS 리소스의 IP 주소가 변경될 때 자동으로 업데이트
- 별칭 레코드에 대한 DNS 쿼리는 비용이 발생 X
- A 레코드 (dns name --> IP)
- AAAA 레코드 (dns name --> IPv6)
- CNAME 레코드 (dns name --> dns name)
- 예시) example.com ---> www.example.com
- PTR 레코드 (역방향 DNS, IP ---> dns name)
이외 다양한 종류의 레코드를 Route 53에서 제공 중
Route 53 라우팅 정책
1. 장애 조치 라우팅 정책
- 주(primary) 리소스가 응답하지 않으면 대기(secondary) 리소스로 트래픽을 전환하여 가용성을 유지
- 헬스 체크를 통해 주 리소스가 비정상일 때 자동으로 대기 리소스로 트래픽을 라우팅하는 방식
- 주 리소스와 대기 리소스를 사전에 정의 필요
2. 가중치 기반 라우팅
- 각 리소스에 대해 가중치를 설정하여 트래픽의 비율을 제어
3. 지연 시간 기반 라우팅
- 사용자의 요청을 최소 지연 시간으로 제공가능한 리전으로 트래픽을 라우팅
4. 지리적 위치 기반 라우팅 (=사용자 위치에 따른 컨텐츠 지역화 목적)
- 사용자의 지리적 위치(나라, 주, 대륙 등)에 따라 트래픽을 특정 리소스로 라우팅
- 일본에서 온 트래픽은 일본에 있는 서버로, 미국에서 온 트래픽은 미국에 있는 서버로 라우팅
- 주로 콘텐츠 지역화나 규정 준수 목적
5. 지리적 근접성 기반 라우팅 (=지연속도 단축을 통한 성능 최적화 목적)
- 리소스의 지리적 근접성을 기반으로 트래픽을 라우팅하는 정책
- 트래픽 흐름(traffic flow) 기능을 사용해 설정하며, 리소스가 사용자에게 얼마나 가까운지에 따라 트래픽을 라우팅
- 성능 최적화와 응답 시간 단축을 목표
6. 다중 값 응답 라우팅
- 여러 리소스에 대해 DNS 쿼리에 다중 IP 주소를 반환
- 각 리소스에 대해 헬스 체크를 설정할 수 있으며, 헬스 체크에 통과한 리소스의 IP 주소만 반환
- 간단한 로드 밸런싱 역할을 하면서, 비정상적인 리소스를 제외하는 기능을 제공
Route 53 호스팅 영역 (퍼블릭, 프라이빗)
| 항목 | 퍼블릭 호스팅 영역 | 프라이빗 호스팅 영역 |
|---|
| DNS 접근 가능 범위 | 인터넷 전역 | 특정 VPC 내 |
| 용도 | 퍼블릭 도메인 관리 (example.com, 외부 도메인) | VPC 내 프라이빗 도메인 관리 |
| 주의 | 누구나 접속 가능한 DNS | internal.example.com 같은 도메인이 프라이빗 호스팅 영역에 있을 경우, 이 도메인은 지정된 VPC 내의 리소스에서만 접근이 가능 |
Route 53 Resolver 인바운드 엔드포인트
외부 네트워크(예: 온프레미스 네트워크 또는 다른 VPC)에서 Amazon VPC 내의 DNS 쿼리를 처리할 수 있도록 만들어진 기능
외부에서 보낸 DNS 쿼리가 Route 53 Resolver 인바운드 엔트포인트로 들어왔다면, 특정 VPC의 프라이빗 호스팅 영역의 DNS 쿼리가 가능하다.
- 온프레미스에서 DNS 쿼리가 발생
- 그 쿼리는 AWS의 Route 53 Resolver 인바운드 엔드포인트로 전송됨
- 인바운드 엔드포인트가 VPC 내의 DNS를 리졸빙하여 결과를 응답
주로 하이브리드 클라우드 환경에서 (인바운드 엔드포인트 + 프라이빗 호스팅 영역 생성) 조합을 자주 사용하니 주의
Route 53 Resolver 아웃바운드 엔드포인트
VPC 내에서 발생한 DNS 쿼리를 외부 네트워크로 전달하는 역할
- 하이브리드 클라우드 환경의 VPC에서 On-Prem 에 대한 DNS 조회
- AWS 외부에 위치한 사설 DNS 서버와 통신 목적
Route 53 장애 조치 구성
웹 애플리케이션이나 서비스가 중단되었을 때 트래픽을 자동으로 대체 리소스로 전환하여 가용성을 보장하는 방법, 헬스 체크 기능을 활용해 장애를 감지
Route 53 장애 조치 구성의 주요 요소
- 헬스 체크(Health Check):
- Route 53은 정기적으로 대상 리소스(예: 웹 서버, 애플리케이션, 데이터베이스 등)의 상태를 확인
- 헬스 체크는 HTTP, HTTPS, TCP 등으로 리소스가 정상인지 감지하며, 리소스가 비정상일 경우 트래픽을 다른 리소스로 전환
- 장애 조치 레코드(failover records):
- Route 53은 Failover Routing Policy를 사용하여, 기본 리소스(primary resource)가 장애 상태가 되면 자동으로 대체 리소스(secondary resource)로 트래픽을 전환합니다.
- 기본(primary)와 보조(secondary) 리소스 각각에 대한 DNS 레코드를 설정합니다.
- 기본 리소스가 정상일 때는 트래픽이 기본 리소스로만 전달
- 헬스 체크에서 기본 리소스가 장애로 감지되면, 자동으로 보조 리소스에 트래픽을 전달
-
장애 조치 정책(failover policy): Primary 레코드 / Secondary 레코드 설정
-
다중 리전 장애 조치:
- Route 53을 이용하면 여러 AWS 리전에 걸쳐 장애 조치를 구성
- 헬스 체크 및 복구:
- 장애가 발생한 기본 리소스가 복구되면, Route 53은 다시 헬스 체크 결과를 확인하고 트래픽을 다시 기본 리소스로 복귀 가능
Route 53 장애 조치 구성 시 주의 사항
- 상태 확인이 없는 기록은 항상 건강한 것으로 간주
- 상태확인(=health check)가 없는 경우, Route 53은 리소스가 다운되었는지 알 수 없으므로, 그 레코드는 무조건 사용 가능한 것으로 취급
- 정상 레코드가 없으면 모든 레코드는 정상으로 간주
- 트래픽이 무조건 어느 한 리소스로 라우팅되어야 하기 때문에 발생
- 모든 레코드가 Unhealthy 상황이라면, Route 53은 마지막 수단으로 모든 레코드를 정상(healthy)으로 간주
- 따라서, 기본 리소스와 백업 리소스 모두가 비정상으로 감지되었을 경우에도, Route 53은 트래픽을 어디로든 보낼 수 있도록 모든 레코드를 정상으로 간주하고 트래픽을 라우팅
- 프라이빗 호스팅 영역에서 장애 조치 레코드를 생성하는 경우 VPC의 인스턴스에 퍼블릭 IP 주소를 할당하여 IP 주소로 VPC 내의 엔드포인트 상태를 확인
- Route 53의 헬스 체크는 퍼블릭 IP에 접근하여 리소스 상태를 확인하는 방식으로 작동
- 헬스체크는 기본적으로 퍼블릭 IP로 상태 확인: 프라이빗 IP만 가진 리소스에는 직접적으로 접근 X
- 프라이빗 호스팅 영역에서도 Route 53의 장애 조치 기능을 사용할 수 있지만, 헬스체크 방식은 사용 X
- 퍼블릭 IP를 할당하거나 다른 방식(예: CloudWatch, Lambda)을 사용하여 상태 확인을 설정 필요
참고 (DNS 공통)
- 조건부 전달자: 특정 DNS 도메인에 대한 요청을 특정 DNS 서버로 전달하는 방식
- 특정 DNS에 대한 DNS 서버를 고정하는 방식
- 전달 규칙: DNS 서버가 모든 도메인에 대해 DNS 쿼리를 특정 서버로 전달하도록 설정하는 방식
- 전달 규칙을 통해 DNS 서버는 자체적으로 쿼리를 처리하지 않고, 기본적으로 다른 DNS 서버에게 의존해 쿼리를 처리 가능
- 회사 네트워크가 인터넷에 대한 모든 쿼리를 외부 DNS 서버(예: ISP의 DNS 서버)로 전달하도록 설정