Route53 도메인 설정 가이드
date: 2026-03-11
배경 지식
도메인과 DNS란?
IP 주소 = 192.168.1.1 (컴퓨터가 이해하는 주소) 도메인 = leopark.me (사람이 이해하는 주소)
DNS의 역할 -> leopark.me를 192.168.1.1로 변환해주는 전화번호부? 같은 느낌
DNS 계층 구조
도메인은 오른쪽에서 왼쪽으로 읽는 계층 구조다:
. -> Root (최상위, 생략됨)
└── me. -> TLD (Top Level Domain)
└── leopark.me. -> 구입한 도메인
└── testing.leopark.me. -> 서브도메인
DNS 조회 과정(예시)
사용자가 브라우저에 app.testing.leopark.me 입력 시:
1. 브라우저
-> Local DNS 캐시 확인
2. Root DNS 서버
-> ".me 담당은 저쪽이에요"
3. .me TLD DNS 서버
-> "leopark.me 담당은 Route53이에요"
4. Route53 (leopark.me Hosted Zone)
-> "testing.leopark.me 담당 NS는 이쪽이에요"
5. Route53 (testing.leopark.me Hosted Zone)
-> "app.testing.leopark.me는 이 IP예요"
6. 브라우저
-> 해당 IP로 접속
Hosted Zone이란?
DNS 설정을 저장하는 공간이다. 도메인 하나당 Hosted Zone 하나가 생성되며, 그 안에 DNS 레코드들을 관리한다.
주요 DNS 레코드 종류
| 레코드 | 역할 | 예시 |
|---|---|---|
| NS | 이 도메인의 DNS를 누가 관리하는지 | leopark.me -> Route53 네임서버 |
| SOA | Hosted Zone의 기본 정보 (자동 생성) | - |
| A | 도메인을 IP 주소로 연결 | app.leopark.me -> 1.2.3.4 |
| CNAME | 도메인을 다른 도메인으로 연결 | www.leopark.me -> leopark.me |
| MX | 이메일 서버 지정 | - |
| TXT | 도메인 소유권 인증 등 | SSL 인증서 발급 시 사용 |
TTL (Time To Live)이란?
DNS 조회 결과를 얼마나 오래 캐시(저장)할지 설정하는 시간이다.
TTL 높음 (172800 = 48시간): DNS 조회 트래픽 감소, 빠른 응답, 레코드 변경 시 반영이 느림
TTL 낮음 (300 = 5분): DNS 조회 트래픽 증가, 레코드 변경 시 빠르게 반영,
나의 경우 기본값으로 300(5분)으로 두고 생성하였다.
도메인 구입
계정: production
설정 경로: Route53 -> Domains -> Register domains
구입 정보
| 항목 | 내용 |
|---|---|
| 도메인 | leopark.me |
| TLD | .me |
| 연간 비용 | $31/년 |
| Registrar | Amazon Registrar (자동) |
| Privacy Protection | ON (개인정보 보호) |
Privacy Protection이란?
도메인 소유자 정보는 WHOIS를 통해 공개적으로 조회될 수 있다. Privacy Protection을 활성화하면 본인 정보 대신 AWS 정보로 대체되어 개인정보를 보호할 수 있다. Route53에서 무료로 제공한다.
도메인 구입 시 자동으로 생성되는 것들
leopark.me Hosted Zone (production 계정)
├── leopark.me NS -> Route53 네임서버 4개 (자동 설정)
└── leopark.me SOA -> 존 권한 시작 레코드 (자동 설정)
결제 방식
도메인 비용은 즉시 결제되지 않고, 월말에 다른 AWS 사용 비용과 통합 청구된다.
testing 서브도메인 위임 설정
production 계정에서 구입한 도메인을 testing 계정에서도 독립적으로 DNS 관리할 수 있도록 서브도메인을 위임했다.
목표 구조
production 계정
└── leopark.me Hosted Zone
└── testing.leopark.me NS -> testing 계정으로 위임
testing 계정
└── testing.leopark.me Hosted Zone
├── app.testing.leopark.me(언젠가 필요하면 다음과 같이 계속 추가 예정)
└── 등등...
Step 1 - testing 계정에서 Hosted Zone 생성
계정: testing
설정 경로: Route53 -> Hosted Zones -> Create hosted zone
| 항목 | 값 |
|---|---|
| Domain name | testing.leopark.me |
| Type | Public hosted zone |
생성 후 자동으로 NS 레코드 4개가 생성된다:
ns-625.awsdns-14.net.
ns-1681.awsdns-18.co.uk.
ns-1460.awsdns-54.org.
ns-151.awsdns-18.com.
Step 2 - production 계정에서 NS 레코드 추가
계정: production
설정 경로: Route53 -> Hosted Zones -> leopark.me -> Create record
| 항목 | 값 |
|---|---|
| Record name | testing |
| Type | NS |
| TTL | 300 |
| Value | testing 계정의 NS 레코드 4개 |
간단하게 정리하자면
누군가 app.testing.leopark.me 조회 시
-> Route53이 leopark.me Hosted Zone 확인
-> testing.leopark.me는 NS 서버들한테 문의
-> testing 계정 Hosted Zone으로 위임
-> testing 계정에서 독립적으로 DNS 관리 가능
4. 최종 구조 및 사용 방법
계정별 DNS 관리 범위
| 계정 | Hosted Zone | 관리 범위 |
|---|---|---|
| production | leopark.me | 실제 서비스 도메인 (app.leopark.me, api.leopark.me 등) |
| testing | testing.leopark.me | 테스트/실습용 도메인 (k8s.testing.leopark.me 등) |