본문 바로가기

Certificate/AWS SAA-C03

[AWS-SAA] 07. Route53 요약

1강. DNS란 무엇일까요?

  • DNS(Domain Name System)는 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 이해하는 IP 주소로 변환하는 시스템
  • DNS 시스템의 구조
    • 루트 도메인(Root)
    • 최상위 도메인(TLD, Top-Level Domain): .com, .org, .net, .gov 등
    • 2차 도메인(SLD, Second-Level Domain): google.com, amazon.com 등
    • 서브도메인(Subdomain): api.example.com, www.example.com 등
    • FQDN(Fully Qualified Domain Name): 전체 도메인 이름을 포함한 형식 (api.www.example.com.)
  • DNS 관련 용어
    • 도메인 등록기관(Domain Registrar): 도메인 이름을 등록 및 관리하는 서비스 (예: Amazon Route 53, GoDaddy)
    • DNS 레코드(DNS Records):
      • A 레코드: 도메인을 IPv4 주소와 매핑
      • AAAA 레코드: 도메인을 IPv6 주소와 매핑
      • CNAME 레코드: 별칭(Canonical Name) 설정
      • NS 레코드: 도메인을 관리하는 네임 서버 지정
    • 존 파일(Zone File): 특정 도메인에 대한 DNS 레코드 저장
    • 네임 서버(Name Server): DNS 쿼리를 해석하여 응답하는 서버 (권한 있는 서버(Authoritative)와 비권한 서버(Non-Authoritative)로 나뉨)
  • DNS의 작동 원리
    1. 사용자가 example.com에 접속 요청
    2. 로컬 DNS 서버(사용자 ISP 또는 기업 관리)가 캐시에 없는 경우 상위 DNS 서버에 질의
    3. 루트 DNS 서버가 .com TLD 서버의 위치 반환
    4. TLD DNS 서버가 example.com을 관리하는 권한 있는 네임 서버 위치 반환
    5. SLD DNS 서버가 example.com의 IP 주소 반환
    6. 클라이언트가 해당 IP 주소로 연결하여 웹사이트 로드

2강. Route53 개요 - 7강. CNAME vs Alias

  • Route53 : 고가용성, 확장성, 완전 관리형의 권한 있는(Authoritative) DNS 서비스이다.
    • 사용자가 직접 DNS 레코드를 업데이트할 수 있음
    • 도메인 등록기관 기능 제공
    • 리소스의 상태를 확인하는 헬스 체크 기능 지원
    • AWS에서 유일하게 100% 가용성을 보장하는 SLA 제공
  • Route 53의 DNS 레코드 구성 요소
    • 도메인/서브도메인 이름: 예) example.com
    • 레코드 타입: A, AAAA, CNAME, NS 등
    • 값(Value): 예) 12.34.56.78
    • 라우팅 정책(Routing Policy): 쿼리에 대한 응답 방식
    • TTL(Time to Live): DNS 리졸버에서 레코드를 캐시하는 시간
  • Route 53이 지원하는 주요 DNS 레코드 타입
    • A 레코드: 도메인을 IPv4 주소로 매핑
    • AAAA 레코드: 도메인을 IPv6 주소로 매핑
    • CNAME 레코드: 도메인을 다른 도메인 이름으로 매핑 (A 또는 AAAA 레코드가 필요함)
      • Zone Apex(최상위 도메인)에서는 사용 불가 (example.com 불가, www.example.com 가능)
    • NS 레코드: 네임 서버 지정 (Hosted Zone 내 트래픽 관리)
  • Route 53의 Hosted Zone : DNS 레코드를 저장하고 관리하는 컨테이너로, 특정 도메인과 서브도메인의 트래픽 라우팅을 정의하는 역할을 한다.
    • 퍼블릭 호스티드 존(Public Hosted Zone):
      • 인터넷에서 접근 가능한 도메인 (application1.mypublicdomain.com)
    • 프라이빗 호스티드 존(Private Hosted Zone):
      • 특정 VPC 내에서만 사용 가능한 내부 도메인 (application1.company.internal)
    • 비용: Hosted Zone당 월 $0.50
  • TTL(Time To Live) : DNS 레코드가 캐시에 유지되는 시간(초 단위)을 말함.
  • 클라이언트가 DNS 쿼리를 요청할 때, TTL 값에 따라 결과를 캐싱하고 일정 시간 동안 동일한 응답을 유지함.
  • EC2 DNS 이름은 CNAME 레코드의 대상이 될 수 없음.

2. TTL 설정에 따른 차이점

TTL 유형 장점 단점

높은 TTL (예: 24시간) Route 53에 대한 트래픽 감소 오래된 DNS 정보가 유지될 가능성 증가
낮은 TTL (예: 60초) 빠른 변경 가능, 최신 DNS 정보 유지 Route 53에 대한 트래픽 증가(비용 상승)

3. TTL 적용 시 유의사항

  • Alias 레코드를 제외한 모든 DNS 레코드는 TTL이 필수임.
  • 높은 TTL은 네트워크 부하를 줄이지만, 변경 사항 반영이 느림.
  • 낮은 TTL은 변경 사항 반영이 빠르지만, 요청이 많아질수록 비용이 증가함.

8강. 라우팅 정책 (단순) - 17강. 라우팅 정책 (대기시간)

Route 53 – Routing Policies

  • Route 53의 라우팅 정책은 DNS 질의에 대한 응답 방식을 정의
  • "Routing"이라는 용어는 로드 밸런서의 트래픽 라우팅과는 다름
  • DNS는 트래픽을 직접 전달하는 것이 아니라 IP 주소로 응답하는 역할

Route 53이 지원하는 Routing Policy

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

Routing Policies – Simple

  • 일반적으로 하나의 리소스로 트래픽 라우팅
  • 하나의 레코드에 여러 값을 지정 가능
  • 여러 값이 반환되면 클라이언트가 무작위로 하나 선택
  • Alias 활성화 시 하나의 AWS 리소스만 지정 가능
  • Health Check와 연동 불가

Routing Policies – Weighted

  • 각 리소스에 트래픽이 가는 비율(%)을 제어
  • 각 레코드에 상대적 가중치 할당
  • 가중치 공식 : 트래픽(%) = 특정 레코드 가중치 / 모든 레코드 가중치 총합 (가중치 합이 100일 필요 없음)
  • 레코드는 같은 이름과 타입을 가져야 함
  • Health Check와 연동 가능
  • 사용 사례: 리전 간 부하 분산, 새로운 버전 테스트
  • 가중치 0 할당 시 해당 리소스로 트래픽 차단
  • 모든 레코드가 가중치 0이면 모두 동일하게 반환

Routing Policies – Latency-based

  • 사용자와 가장 가까운 리전의 리소스로 연결
  • 사용자 지연(latency)이 중요한 경우 유용
  • 사용자와 AWS 리전 간 트래픽의 지연 시간 기준
  • 예: 독일 사용자가 미국 리전으로 연결될 수 있음 (가장 짧은 지연 시)
  • Health Check와 연동 가능 (Failover 기능 포함)

요약 (Summary)

  • Routing Policies 역할: DNS 쿼리에 대한 다양한 방식의 응답 제공
  • Simple: 단순 응답, 무작위 선택 가능, 상태 점검 불가
  • Weighted: 가중치에 따라 트래픽 분산, 상태 점검 가능
  • Latency-based: 가장 짧은 지연 시간의 리소스로 연결, 상태 점검 가능

Route 53 라우팅 정책을 통해 트래픽 분산, 장애 대응, 지연 최소화 등 다양한 요구에 맞는 DNS 응답을 구성할 수 있다.

Route 53 – Health Checks

  • HTTP Health Checks는 공용(public) 리소스에만 적용 가능
  • Health Check는 자동 DNS 장애 조치(Failover) 기능 제공
  • Health Check 유형 : 엔드포인트 모니터링 (애플리케이션, 서버, AWS 리소스 등), 다른 Health Check 모니터링 (Calculated Health Checks), CloudWatch Alarms 모니터링 (예: DynamoDB, RDS 알람, 사용자 정의 메트릭 등, Private 리소스에 유용)
  • Health Checks는 CloudWatch 메트릭과 통합

Health Checks – 엔드포인트 모니터링 (Monitor an Endpoint)

  • 약 15개의 글로벌 헬스체커가 엔드포인트 상태 확인
  • 기본 설정
    • 정상/비정상 임계치: 3 (기본값)
    • 인터벌: 30초 (최소 10초, 비용 증가)
    • 지원 프로토콜: HTTP, HTTPS, TCP
    • 18% 이상의 헬스체커가 정상 보고 시 Healthy 판단, 아니면 Unhealthy
    • 체크 위치 선택 가능
  • 2xx, 3xx 상태 코드만 통과 (Pass)
  • 응답 첫 5120 바이트 기준 Pass/Fail 설정 가능
  • 라우터/방화벽에 헬스체커 IP 허용 필요

Route 53 – Calculated Health Checks

  • 여러 Health Check 결과를 하나의 Health Check로 통합
  • OR, AND, NOT 논리 연산 사용 가능
  • 최대 256개의 하위(Child) Health Check 모니터링
  • 일정 개수 이상의 Health Check가 통과하면 부모도 통과로 간주
  • 유지보수 시 일부 실패 상태를 허용해 전체 장애 방지 가능

Health Checks – Private Hosted Zones

  • Route 53 Health Check는 VPC 외부에서 수행
  • Private VPC 또는 온프레미스 리소스 접근 불가
  • CloudWatch Metric과 Alarm 생성 후, 해당 알람을 모니터링하는 Health Check 설정 가능

요약 (Summary)

  • Health Check 역할: 엔드포인트 모니터링, 자동 장애 조치
  • 유형: 엔드포인트, 계산형, CloudWatch Alarm 기반
  • 적용 제한: Public 리소스 중심, Private은 CloudWatch 연계 필요

Route 53 Health Checks는 DNS 수준에서 가용성과 장애 복구를 자동화하기 위한 필수 기능이다.

Routing Policies – Failover (Active-Passive)

  • 장애 조치(Disaster Recovery) 목적으로 사용
  • Primary (Active) 인스턴스가 정상일 때 트래픽 전달
  • Secondary (Passive) 인스턴스는 대기 상태, Primary 장애 시 사용
  • Health Check 필수로 Primary 상태 감시

Routing Policies – Geolocation

  • 사용자 위치 기반 라우팅 (Latency 기반과 다름)
  • 대륙, 국가, 미국 주(State) 기준으로 설정 가능 (중복 시 가장 정확한 위치 우선)
  • Default 레코드 설정 필요 (위치 매칭 실패 시 사용)
  • 사용 사례: 웹사이트 지역화, 콘텐츠 제한, 로드 밸런싱
  • Health Check와 연동 가능

Routing Policies – Geoproximity

  • 사용자와 리소스의 지리적 거리 기반 라우팅
  • Bias 값을 통해 트래픽 비율 조정 가능
  • 확장 (1 ~ 99): 더 많은 트래픽 할당
  • 축소 (-1 ~ -99): 더 적은 트래픽 할당
  • 리소스 지정: AWS 리전, 비AWS 리소스 (위도, 경도)
  • Route 53 Traffic Flow 필수

Routing Policies – IP-based Routing

  • 클라이언트 IP 주소 기반 라우팅
  • 고객 CIDR 리스트와 엔드포인트 매핑 제공
  • 사용 사례: 성능 최적화, 네트워크 비용 절감
  • 예: 특정 ISP 사용자를 특정 엔드포인트로 연결

Routing Policies – Multi-Value

  • 여러 리소스 대상으로 트래픽 라우팅
  • Route 53이 다중 값/리소스 반환
  • Health Check와 연동 가능 (정상 리소스만 반환)
  • 최대 8개의 정상 레코드 반환
  • ELB 대체 아님, 단순 다중 값 제공 용도

요약 (Summary)

  • Failover: 장애 조치, Active-Passive 구조
  • Geolocation: 사용자 위치 기반
  • Geoproximity: 거리와 비율 기반, Traffic Flow 필요
  • IP-based: 클라이언트 IP 기반
  • Multi-Value: 다중 값 반환, 간이 부하 분산

Route 53의 다양한 라우팅 정책을 통해 지리, 성능, 장애 대응 등 다양한 상황에 맞는 DNS 응답을 설계할 수 있다.