컴퓨터 공학 & 통신

서버에 도메인을 연결하는 방법(2) (feat. AWS Route53)

왈왈디 2025. 4. 13. 16:13
728x90

서버에 도메인을 연결하는 방법(1)에서 도메인을 구매했다면,
도메인이 어떻게 서버에 연결되는지 살펴보자.

 

레코드 유형

나는 AWS Route53을 통해 도메인을 구매하고, 레코드를 생성했으므로,

Route53을 예시로 들어 설명하겠다.

 

도메인을 구매하고 나면

구매한 도메인 이름으로 호스팅 영역이 생성되고,

해당 호스팅 영역으로 들어가면

아래와 같이 NS, SOA 유형의 레코드가 생성되어 있다.

NS (Name Server Record)

NS 레코드 유형은 도메인을 관리하는 네임서버의 주소를 지정하는 것이다.

값/트래픽 라우팅 대상에는 'ns-123.awsdns-45.net' 등의 값이 들어간다.

Route 53은 도메인을 위해 전 세계에 분산된 수천 개의 네임서버 인프라를 운영 중이고,

그 중에 내 도메인에 대해 담당 역할을 맡은 네임서버들이 내 도메인의 NS 레코드로 할당되는 것이다.

 

Route 53에서 호스팅 영역을 생성할 때 NS 유형의 레코드를 자동으로 생성한다.

서브 도메인 등을 다른 네임서버로 위임할 때 직접 생성하여 사용할 수 있다.

 

만약 도메인을 다른 곳에서 구입했고 NS 레코드를 Route53에서 생성했다면, 

구입한 곳의 설정 페이지로 가, Route53에서 발급한 NS 레코드 4개를 등록해야

도메인이 정상 작동한다.

 

NS 레코드의 네임 서버들은 실제 DNS 질의가 날아가는 대상이므로,

아래와 같은 명령어로 네임 서버에 직접 질의를 보낼 수 있다.

dig @ns-123.awsdns.net example.com A

 

네임서버는 전 세계에 분산되어 있으며,

내결함성과 글로벌 DNS 성능 최적화를 위해 .com, .net, .org, .co.uk 등 다양한 도메인을 섞어서 할당한다.

SOA (Start of Authority)

SOA는 도메인의 DNS 영역(Zone)에 대한 “권한 시작점”을 정의하는 레코드이다.

이 도메인의 주요 네임서버가 누구인지,

DNS 레코드의 버전 관리,

Secondary(보조) 네임서버와 동기화 주기,

캐시 수명(Time To Live, TTL) 정보를 정의한다.

 

호스팅 영역 생성 시 자동으로 생성되고, 수정할 수 없기에

일반적으로는 신경 쓸 일이 거의 없다.

Route 53이 자동으로 관리하며,

dig, nslookup, whois 등을 통해 확인 가능하다.

dig SOA example.com

 

아래는 SOA 레코드의 구성 예시이다.

example.com. IN SOA ns-123.awsdns-45.net. awsdns-hostmaster.amazon.com. (
        1          ; Serial
        7200       ; Refresh
        900        ; Retry
        1209600    ; Expire
        86400 )    ; Minimum TTL

 

각 값의 의미는 아래와 같다.

필드 의미
Primary NS 이 DNS Zone의 권한 있는 네임서버
Responsible party 관리자 이메일 주소 (ex: awsdns-hostmaster.amazon.com.awsdns-hostmaster@amazon.com)
Serial 레코드 변경 버전 번호. 보조 네임서버가 이 값을 기준으로 변경 여부 판단
Refresh 보조 네임서버가 Primary에 변경 사항을 체크하는 주기 (초 단위)
Retry Primary에 접근 실패 시 재시도 간격
Expire 일정 기간 Primary에 접근 못하면, 보조 네임서버가 레코드를 무효화
Minimum TTL Negative caching (존재하지 않는 레코드에 대한 캐시 유지 시간)

 

자동으로 생성되는 NS, SOA 외에도 다양한 레코드 유형이 있다.

 

서브 도메인과 같이 새로운 레코드를 생성하려고 하면

아래와 같이 다양한 레코드 유형을 선택할 수 있다.

 

레코드 유형은 도메인 이름 시스템(DNS)이 작동하는 방식에 따라 각각 고유한 목적과 용도가 있다.

각각의 레코드 유형의 의미에 대해 알아보자.

일반적으로 자주 사용하는 레코드

A (Address Record)

도메인 이름을 IPv4 주소로 매핑한다.

예시) example.com → 192.0.2.1

웹 서버나 API 서버를 도메인으로 접근할 때 가장 기본적으로 사용된다.

 

AAAA (IPv6 Address Record)

도메인 이름을 IPv6 주소로 매핑한다.

예시) example.com → 2001:0db8:85a3:0000:0000:8a2e:0370:7334

IPv6 환경에서 도메인 연결 시 사용된다.

 

CNAME (Canonical Name Record)

도메인 별칭(alias)을 설정한다. 즉, 하나의 도메인을 다른 도메인으로 연결한다.

예시) www.example.com → example.com

루트 도메인(example.com)에는 사용할 수 없다.

여러 서브도메인이 같은 서버를 가리킬 때 유용하다.

 

MX (Mail Exchange Record)

이메일을 수신할 서버를 지정한다.

예시) example.com → mail.example.com (우선순위 10)

이메일 서비스(Gmail, Outlook 등)를 연결할 때 필수이다.

 

TXT (Text Record)

텍스트 정보를 저장하는 레코드로, 보통 도메인 소유 인증이나 보안 관련 정보에 사용된다.

예시) example.com → "v=spf1 include:_spf.google.com ~all"

SPF 레코드, 도메인 소유 확인(Google Search Console, AWS 인증 등), DKIM, DMARC 등 이메일 보안에 사용된다.

 

 

보안 및 이메일 관련

SPF (Sender Policy Framework)(Deprecated)

어떤 메일 서버가 해당 도메인에서 메일을 보낼 수 있는지를 지정한다.

예시) example.com → "v=spf1 include:_spf.google.com ~all"

현재는 TXT 레코드로 SPF 정보를 설정하는 것이 표준이며, 이 SPF 레코드는 더 이상 사용 권장되지 않는다.

 

DKIM / DMARC (별도 레코드 타입은 아니고 TXT로 등록)

TXT 레코드를 통해 이메일 위조 방지를 위해 사용된다.

 

통신 관련 및 특수 목적

SRV (Service Record)

특정 서비스를 제공하는 서버의 위치(포트, 프로토콜 등)를 지정한다.

예시) _sip._tcp.example.com → 0 5 5060 sipserver.example.com

SIP, XMPP, LDAP, Minecraft 서버 등에 사용한다.

 

PTR (Pointer Record)

IP 주소를 도메인으로 역방향 매핑다. (Reverse DNS)

예시) 1.2.0.192.in-addr.arpa → example.com

메일 서버 신뢰성 검증 등에서 사용된다.

 

특수 레코드들 

CAA (Certification Authority Authorization)

어떤 인증서 발급기관(CA)이 도메인의 SSL 인증서를 발급할 수 있는지를 지정한다.

예시) example.com → 0 issue "letsencrypt.org"

보안 강화 (SSL 오용 방지)를 위해 사용된다.

 

NS (Name Server Record)

도메인을 관리하는 네임서버의 주소를 지정한다.

예시) example.com → ns-123.awsdns-45.net

Route 53에서 호스팅 영역 생성 시 자동 생성, 도메인을 다른 네임서버로 위임할 때도 사용한다.

 

DS (Delegation Signer Record)

DNSSEC 보안 체인을 연결하기 위한 레코드로, 부모 도메인에 자식 도메인의 DNSSEC 정보를 연결한다.

DNSSEC 설정 시 사용한다.

 

NAPTR (Naming Authority Pointer)

전화번호 기반 주소 변환 등을 지원하며, 보통 SRV 레코드와 함께 사용된다.

VoIP, ENUM 서비스에서 사용된다.

 

TLSA (TLS Authentication Record)

TLS 연결 시 인증서를 검증하는 방식(DANE)을 사용하기 위한 레코드다.

이메일, HTTPS 연결 보안 강화에 사용된다.

 

SSHFP (SSH Fingerprint Record)

SSH 키의 fingerprint를 저장해서 SSH 연결 시 호스트 키 검증을 지원한다.

자동 SSH 인증 시 MITM 방지에 사용된다.

 

HTTPS / SVCB (Service Binding Record)

성능 최적화를 위한 차세대 DNS 레코드. ALPN, HTTP 버전, 도메인 바인딩 등을 정의한다.

예시) 브라우저가 HTTPS를 미리 예측하여 HTTP 요청 생략 가능

빠른 HTTPS 연결, DoH (DNS over HTTPS) 지원 등에 사용된다.

 

주요 유형을 표로 정리하면 아래와 같다.

레코드 유형 주요 목적 대표 예시
A / AAAA IP 연결 (IPv4 / IPv6) example.com → 192.0.2.1
CNAME 별칭 연결 www → example.com
MX 이메일 수신 서버 example.com → mail.google.com
TXT 인증 정보 / SPF v=spf1 include:_spf.google.com ~all
NS 네임서버 지정 example.com → ns-123.awsdns.net
SRV 서비스 위치 _sip._tcp.example.com
PTR IP → 도메인 192.0.2.1 → example.com
CAA SSL 인증서 발급 제한 0 issue "letsencrypt.org"
DS DNSSEC 연동 DNS 보안 체인 연결
HTTPS / SVCB 차세대 성능 향상용 HTTP/3, ALPN 설정 등

 

라우팅 정책

728x90