Route 53 — Hosted Zones

도은호·2025년 10월 12일
0

AWS SAA

목록 보기
42/46

Hosted Zone은 특정 도메인에 대한 권한 있는(Authoritative) DNS 레코드 묶음. Public Hosted Zone은 인터넷 전체에, Private Hosted ZoneVPC 내부에만 정답을 제공


1) Hosted Zone이란?

  • 도메인 영역(zone) 에 대한 레코드 모음(A/AAAA/CNAME/MX/TXT/ALIAS…).
  • 생성 시 SOA/NS 레코드가 자동으로 들어가며, 이후 필요한 레코드를 추가/수정.
  • Route 53이 권한 있는 네임서버가 되어 해당 존에 대해 최종 정답을 응답

2) Public vs Private

구분Public Hosted ZonePrivate Hosted Zone(PHZ)
가시성인터넷 전체VPC 내부에서만(재귀 리졸버 경유)
용도웹사이트/공개 API 등마이크로서비스, 내부 도메인, 온프렘 연동
네임서버레지스트라에 NS 위임 필요VPC와 연동(associate) 필요
레코드표준 + ALIAS(CloudFront/ALB/S3 등)동일(사설 이름에 사용)
우선순위같은 이름이 공/사 모두 있으면, VPC 내부 질의는 PHZ가 우선

Split-horizon(스플릿 뷰): 같은 도메인(example.com)에 Public/Private을 동시에 운영해, 외부와 내부에 서로 다른 레코드를 보여줄 수 있습니다.


3) 만들고 연결하는 법

A) Public Hosted Zone (인터넷에 공개)

  1. Hosted Zone 생성: example.com
  2. 생성된 NS 4개레지스트라(Route 53 Registrar/GoDaddy 등)에 등록
  3. A/AAAA/CNAME/ALIAS/MX/TXT… 레코드 추가
  4. TTLRouting Policy(Weighted/Latency/Failover/Geo…)로 트래픽 제어

B) Private Hosted Zone (VPC 내부 전용)

  1. PHZ 생성: corp.example.internal
  2. 사용할 VPC와 Associate(여러 VPC 가능, 교차 계정은 RAM으로 공유)
  3. VPC 설정에서 enableDnsHostnames / enableDnsSupport = true 확인
  4. 내부 서비스용 레코드 추가(예: api.corp.example.internal → NLB)

온프렘/지사에서 PHZ 이름을 질의하려면 Route 53 Resolver Inbound Endpoint(또는 DNS 포워딩)로 연결해야 합니다.


4) Routing Policy와의 관계

  • Record Type은 데이터 형식(A/AAAA/CNAME/…)

  • Routing Policy같은 이름의 레코드 응답 방식을 결정

    • Simple: 고정 응답
    • Weighted: 트래픽 비율 분배(카나리/블루그린)
    • Latency-based: 지연 최소 Region으로
    • Failover: 헬스체크 기반 Active/Passive
    • Geolocation/Geoproximity(트래픽 플로우): 위치 기반 라우팅
    • Multi-Value Answer: 여러 정답 반환(+간단 헬스체크)

Health Check를 조합하면 비정상 엔드포인트 제거가 가능합니다(공/사 모두).


5) ALIAS가 중요한 이유

  • apex(example.com)에는 CNAME 불가.
  • Route 53 ALIAS(A/AAAA)CloudFront/ALB/NLB/API Gateway/S3 웹 엔드포인트/Global Accelerator 등을 정점에서 직접 가리킬 수 있어요.
  • 쿼리 시 A/AAAA처럼 동작하므로 클라이언트/브라우저 호환성 ↑

6) 서브도메인 위임(Delegation)

  • 상위 존에서 하위 존을 다른 팀/계정으로 위임 가능

    • 예: 상위 example.comdev NS nsX.awsdns.… 추가 →
      하위 dev.example.com Hosted Zone의 NS 레코드를 그대로 넣어주면 끝.

7) 운영 팁(체크리스트)

  • NS 일치: Public Zone의 NS를 레지스트라에 정확히 등록(오타/누락 주의)
  • TTL 전략: 변경 전 TTL↓(예: 60s) → 전환 후 복구(5~10m)
  • apex CNAME 금지: ALIAS 사용
  • PHZ 우선 규칙: 내부 질의는 PHZ가 우선(원치 않으면 내부 이름을 분리)
  • Split-horizon 설계: 외/내부 레코드 분리, 누출 방지
  • 헬스체크 + Failover: 단일 장애 포인트 제거
  • 접근 제어: PHZ는 VPC 연동/보안그룹/DNS 포워딩 경로만 열기
  • 감사·모니터링: 쿼리 통계, 헬스체크 상태, 변경 이력 추적

8) 비용

  • Hosted Zone 월 과금 + DNS 쿼리량(정책/헬스체크 별도).
  • PHZ는 연동 VPC 수와 상관없이 존 단위 과금(쿼리는 내부 리졸버 트래픽 기준).
  • TTL/정책 설계와 캐시 활용이 비용에 직결

9) CLI

# 1) Public Hosted Zone 생성
aws route53 create-hosted-zone \
  --name example.com \
  --caller-reference $(date +%s)

# 2) 레코드 세트 추가(A/ALIAS 예시: ALB 타기팅)
aws route53 change-resource-record-sets \
  --hosted-zone-id Z123456ABCDEFG \
  --change-batch '{
    "Changes": [{
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "example.com.",
        "Type": "A",
        "AliasTarget": {
          "HostedZoneId": "Z2P70J7EXAMPLE",
          "DNSName": "alb-123.region.elb.amazonaws.com.",
          "EvaluateTargetHealth": true
        }
      }
    }]
  }'

# 3) Private Hosted Zone 생성 + VPC 연결
aws route53 create-hosted-zone \
  --name corp.example.internal \
  --vpc VPCRegion=ap-northeast-2,VPCId=vpc-0abc123 \
  --hosted-zone-config Comment="PHZ for corp",PrivateZone=true

10) 자주 하는 실수와 대처

  • 레코드 바꿨는데 안 바뀜 → TTL/브라우저/OS/리졸버 캐시 플러시, 전파 대기
  • PHZ가 외부에 보임? → PHZ는 인터넷에 절대 응답하지 않음. 만약 보인다면 Public에 같은 레코드가 있는 것
  • 온프렘에서 PHZ 질의 실패Resolver Inbound Endpoint/포워딩 구성 필요
  • 메일 수신 문제 → MX는 호스트명으로, SPF/DKIM/DMARC(TXT) 세트 점검

요약

  • Hosted Zone = 도메인 레코드의 권위 있는 집합
  • Public은 인터넷 공개, Private(PHZ) 는 VPC 내부 전용
  • ALIAS로 apex도 AWS 리소스에 쉽게 연결
  • Split-horizon으로 외/내부 응답 분리, 헬스체크+정책으로 가용성/트래픽 제어
  • 키 포인트는 NS 위임·TTL 전략·PHZ 우선 규칙
profile
`•.¸¸.•´´¯`••._.• 🎀 𝒸𝓇𝒶𝓏𝓎 𝓅𝓈𝓎𝒸𝒽💞𝓅𝒶𝓉𝒽 🎀 •._.••`¯´´•.¸¸.•`

0개의 댓글