Hosted Zone은 특정 도메인에 대한 권한 있는(Authoritative) DNS 레코드 묶음. Public Hosted Zone은 인터넷 전체에, Private Hosted Zone은 VPC 내부에만 정답을 제공
| 구분 | Public Hosted Zone | Private Hosted Zone(PHZ) |
|---|---|---|
| 가시성 | 인터넷 전체 | VPC 내부에서만(재귀 리졸버 경유) |
| 용도 | 웹사이트/공개 API 등 | 마이크로서비스, 내부 도메인, 온프렘 연동 |
| 네임서버 | 레지스트라에 NS 위임 필요 | VPC와 연동(associate) 필요 |
| 레코드 | 표준 + ALIAS(CloudFront/ALB/S3 등) | 동일(사설 이름에 사용) |
| 우선순위 | — | 같은 이름이 공/사 모두 있으면, VPC 내부 질의는 PHZ가 우선 |
Split-horizon(스플릿 뷰): 같은 도메인(
example.com)에 Public/Private을 동시에 운영해, 외부와 내부에 서로 다른 레코드를 보여줄 수 있습니다.


example.comA/AAAA/CNAME/ALIAS/MX/TXT… 레코드 추가corp.example.internal 등api.corp.example.internal → NLB)온프렘/지사에서 PHZ 이름을 질의하려면 Route 53 Resolver Inbound Endpoint(또는 DNS 포워딩)로 연결해야 합니다.
Record Type은 데이터 형식(A/AAAA/CNAME/…)
Routing Policy는 같은 이름의 레코드 응답 방식을 결정
Health Check를 조합하면 비정상 엔드포인트 제거가 가능합니다(공/사 모두).
example.com)에는 CNAME 불가.상위 존에서 하위 존을 다른 팀/계정으로 위임 가능
example.com에 dev NS nsX.awsdns.… 추가 →dev.example.com Hosted Zone의 NS 레코드를 그대로 넣어주면 끝.# 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