AWS VPC 내부에서 DNS가 작동하는 방식

발행: (2026년 2월 21일 오후 10:09 GMT+9)
16 분 소요
원문: Dev.to

Source: Dev.to

AWS VPC 내부에서 DNS가 작동하는 방식

AWS VPC 안에서 DNS가 어떻게 동작하는지 이해하면 네트워크 설계와 트러블슈팅이 훨씬 쉬워집니다. 이 글에서는 기본적인 DNS 흐름, AmazonProvidedDNS, Route 53 Resolver, 그리고 프라이빗 호스티드 존을 포함한 주요 구성 요소들을 살펴보겠습니다.

1️⃣ VPC 기본 DNS 설정

  • AmazonProvidedDNS: VPC를 만들면 자동으로 169.254.169.253 (IPv4) 혹은 fd00:ec2::253 (IPv6) 주소가 DNS 리졸버로 할당됩니다. 이는 VPC 내 모든 인스턴스가 기본적으로 사용하게 되는 DNS 서버입니다.
  • DHCP 옵션 세트: 기본 DHCP 옵션 세트는 위의 AmazonProvidedDNS 주소를 domain-name-servers 항목에 포함합니다. 필요에 따라 사용자 정의 DHCP 옵션 세트를 만들어 다른 DNS 서버를 지정할 수 있습니다.

2️⃣ DNS 쿼리 흐름

  1. 인스턴스 → AmazonProvidedDNS
    인스턴스가 도메인 이름을 조회하면 먼저 VPC의 AmazonProvidedDNS에 쿼리를 보냅니다.

  2. AmazonProvidedDNS 내부 로직

    • AWS 서비스 도메인 (*.amazonaws.com 등) → AWS 내부 DNS 레코드 반환.
    • 프라이빗 호스티드 존 → 해당 VPC와 연결된 Route 53 프라이빗 호스티드 존에서 레코드 검색.
    • 퍼블릭 DNS → AmazonProvidedDNS가 퍼블릭 DNS (예: 8.8.8.8) 로 포워딩.
  3. 응답 반환
    AmazonProvidedDNS가 최종 IP 주소를 인스턴스로 반환합니다.

3️⃣ Route 53 Resolver

Route 53 Resolver는 VPC 내부와 외부 DNS 트래픽을 제어하는 서비스입니다.

3.1 Inbound Endpoint (인바운드 엔드포인트)

  • 용도: 온프레미스 네트워크에서 VPC 내부의 프라이빗 호스티드 존 레코드에 접근할 때 사용합니다.
  • 구성: 하나 이상의 ENI(Elastic Network Interface)를 지정하고, 보안 그룹을 통해 허용 트래픽을 제한합니다.
  • 예시: 온프레미스 DNS 서버가 example.internal 레코드를 조회하면, 이 쿼리가 Inbound Endpoint를 통해 VPC로 전달되고, Route 53 프라이빗 호스티드 존에서 응답을 반환합니다.

3.2 Outbound Endpoint (아웃바운드 엔드포인트)

  • 용도: VPC 내부 리소스가 온프레미스 DNS 서버에 질의해야 할 때 사용합니다. 예를 들어, 온프레미스 AD 도메인에 대한 SRV 레코드 조회 등.
  • 구성: Inbound와 마찬가지로 ENI와 보안 그룹을 지정합니다.
  • 예시: VPC 내 EC2 인스턴스가 corp.example.com을 조회하면, 쿼리가 Outbound Endpoint를 통해 온프레미스 DNS 서버로 전달됩니다.

4️⃣ 프라이빗 호스티드 존 (Private Hosted Zone)

  • 정의: 특정 VPC(또는 여러 VPC)와 연결된 Route 53 호스티드 존으로, 내부 도메인 이름을 관리합니다.
  • 주요 특징
    • VPC 내부에서만 접근 가능.
    • 동일한 호스티드 존을 여러 VPC에 연결해 VPC 피어링이나 Transit Gateway 없이도 이름을 공유할 수 있음.
    • 레코드 타입: A, AAAA, CNAME, SRV, TXT 등 표준 DNS 레코드 지원.

5️⃣ 실전 예시

예시 1: VPC 내부에서 RDS 엔드포인트 조회

$ nslookup mydb.cluster-abcdefghijkl.us-east-1.rds.amazonaws.com
Server:         169.254.169.253
Address:        169.254.169.253#53

Non-authoritative answer:
Name:   mydb.cluster-abcdefghijkl.us-east-1.rds.amazonaws.com
Address: 10.0.12.34
  • 위와 같이 AmazonProvidedDNS가 직접 RDS 엔드포인트의 프라이빗 IP를 반환합니다.

예시 2: 온프레미스 AD 도메인 조회 (Outbound Endpoint 사용)

# VPC 내 EC2에서 AD 도메인 SRV 레코드 조회
dig _ldap._tcp.corp.example.com SRV +short
  • 쿼리는 VPC의 Outbound Endpoint을 통해 온프레미스 AD DNS 서버로 전달되고, 결과가 반환됩니다.

6️⃣ 트러블슈팅 팁

증상원인확인 방법해결 방안
DNS 응답이 없거나 타임아웃보안 그룹/네트워크 ACL 차단VPC Flow Logs, telnet <DNS_IP> 53보안 그룹에 UDP/TCP 53 포트 허용
프라이빗 호스티드 존 레코드가 반환되지 않음호스티드 존이 해당 VPC에 연결되지 않음Route 53 콘솔 → 호스티드 존 → “Associated VPCs” 확인VPC를 호스티드 존에 연결
온프레미스 DNS에 접근 불가Outbound Endpoint 설정 오류Resolver 로그 확인 (aws logs describe-log-groups)ENI 서브넷, 보안 그룹, 라우팅 테이블 검토

7️⃣ 요약

  • AmazonProvidedDNS는 VPC 내 기본 DNS 리졸버이며, AWS 서비스, 프라이빗 호스티드 존, 퍼블릭 DNS를 모두 처리합니다.
  • Route 53 Resolver를 사용해 온프레미스와 VPC 간 DNS 트래픽을 안전하게 연결할 수 있습니다 (Inbound / Outbound Endpoint).
  • 프라이빗 호스티드 존은 내부 도메인 네임스페이스를 관리하고, 여러 VPC에 걸쳐 공유할 수 있는 강력한 도구입니다.
  • 올바른 보안 그룹, 라우팅, 그리고 DNS 옵션 설정이 정상적인 DNS 동작의 핵심입니다.

이제 AWS VPC 내부에서 DNS가 어떻게 흐르는지, 그리고 필요에 따라 어떻게 커스터마이징할 수 있는지에 대한 기본적인 이해를 갖추셨을 겁니다. 실제 환경에 적용하면서 위의 개념들을 하나씩 검증해 보세요!

개요

AWS 네트워킹에서는 리소스가 엔드포인트를 해석하고, 서비스가 통신하며, 애플리케이션이 정상적으로 실행됩니다. VPC 내부에서 DNS는 서비스 간 발견 및 트래픽 라우팅에 중요한 역할을 합니다. AWS 내부에서 DNS가 어떻게 작동하는지를 이해하면 트래픽이 흐르는 방식과 특정 연결이 성공하거나 실패하는 이유를 설명할 수 있습니다. 이 문서는 애플리케이션 로직보다 해석 흐름에 초점을 맞추어 네트워킹 관점에서 AWS VPC 내부의 DNS를 살펴봅니다.

VPC DNS 해결기

모든 VPC는 AWS에서 제공하는 내장 DNS 해결기를 가지고 있습니다. 이 해결기는 VPC 내의 예약된 IP 주소에서 사용할 수 있으며, 별도로 설정하지 않는 한 리소스가 자동으로 사용합니다.

EC2 인스턴스가 DNS 조회를 수행할 때, 요청은 인터넷으로 직접 전송되지 않습니다. 대신 VPC DNS 해결기가 내부적으로 처리하여 이름을 어떻게, 어디에서 해석할지 결정합니다. 이러한 설계 덕분에 AWS는 DNS를 네트워킹, 컴퓨팅 및 관리형 서비스와 긴밀히 통합할 수 있습니다.

DNS 설정

VPC에서 DNS 동작은 두 가지 주요 설정에 의해 제어됩니다:

  • DNS 해석 – VPC 내 리소스가 도메인 이름을 전혀 해석할 수 있는지를 결정합니다. 활성화되면 인스턴스는 내부 및 외부 도메인 모두에 대해 VPC 해석기에 쿼리할 수 있습니다.
  • DNS 호스트명 – AWS가 EC2 인스턴스 및 로드 밸런서와 같은 리소스에 DNS 이름을 할당할지 여부를 결정합니다.

대부분의 경우 두 설정 모두 기본적으로 활성화되어 있습니다. 이를 비활성화하는 경우는 드물며 일반적으로 특수한 네트워킹 구성에만 사용됩니다.

해석 흐름

VPC 내부의 인스턴스가 퍼블릭 도메인 이름을 해석할 때:

  1. 요청이 VPC DNS 해결자에게 전송됩니다.
  2. 해결자는 인스턴스를 대신하여 공용 DNS 인프라에 질의합니다.
  3. 결과가 인스턴스로 반환됩니다.

인스턴스 입장에서는 서브넷이 프라이빗이더라도 DNS 해석이 기대대로 작동합니다. 핵심은 DNS 해석 자체는 인터넷 접속을 필요로 하지 않으며; 이후의 네트워크 트래픽만이 필요하다는 점입니다. 따라서 아웃바운드 연결이 제한되었거나 NAT 게이트웨이를 통해 라우팅되더라도 프라이빗 인스턴스가 외부 도메인 이름을 해석할 수 있습니다.

내부 DNS 레코드

AWS는 VPC 내부의 많은 리소스에 대해 DNS 레코드를 자동으로 생성합니다. EC2 인스턴스, 로드 밸런서 및 일부 관리형 서비스에는 사설 IP 주소로 해석되는 내부 DNS 이름이 할당됩니다. 한 리소스가 이러한 이름을 사용해 다른 리소스와 통신할 때, 해석은 전적으로 VPC 내부에서 이루어져 트래픽이 내부에 머무르고 인터넷을 통하지 않게 됩니다.

이러한 내부 DNS 동작은 서비스 간 통신을 가능하게 하며, 시간이 지나면서 변경될 수 있는 IP 주소를 하드코딩할 필요가 없게 합니다.

프라이빗 호스티드 존

프라이빗 DNS가 포함되면 DNS가 더욱 강력해집니다. 프라이빗 호스티드 존을 사용하면 도메인 이름을 하나 이상의 VPC 내에서만 해석할 수 있습니다. 이를 통해 팀은 내부 서비스에 익숙한 도메인 명명 패턴을 사용하면서 외부에서는 접근할 수 없도록 할 수 있습니다. 인프라가 확장되거나 변경되더라도 애플리케이션은 안정적인 이름에 의존할 수 있습니다.

프라이빗 DNS는 일반적으로 다음에 사용됩니다:

  • 내부 API
  • 마이크로서비스
  • 여러 환경에 걸친 공유 서비스

서비스 통합

많은 AWS 서비스는 올바르게 작동하기 위해 DNS에 크게 의존합니다. 스토리지, 데이터베이스 및 메시징 서비스의 엔드포인트는 고정 IP 대신 DNS 이름으로 노출됩니다. VPC 내부에서 액세스할 경우, 특히 VPC 엔드포인트를 사용할 때 이러한 이름은 내부 주소로 해석되는 경우가 많습니다. 이는 트래픽을 AWS 네트워크 내부에 유지하고 불필요한 인터넷 노출을 방지합니다.

설계 고려 사항

네트워킹 관점에서 DNS는 라우팅, 엔드포인트, 서비스 접근을 연결하는 접착제 역할을 합니다. DNS 결정은 트래픽 흐름에 영향을 주지만 패킷 자체를 이동시키지는 않습니다. 해결된 IP 주소는 트래픽이 다음 중 어디로 향하는지를 결정합니다:

  • VPC 내부에 머무르는 경우
  • NAT 게이트웨이를 통과하는 경우
  • 인터넷 게이트웨이를 통해 외부로 나가는 경우

이 때문에 DNS는 사후 고려사항이 아니라 네트워크 설계의 일부로 간주되어야 합니다. 명확한 도메인 명명, 프라이빗 DNS의 일관된 사용, 그리고 해석 경로에 대한 이해는 아키텍처를 더 쉽게 파악하고 문제를 해결할 수 있게 합니다.

DNS 문제 해결

VPC 내부의 DNS 문제는 종종 잘못된 가정에서 비롯되며, 구성 오류보다는 가정이 원인인 경우가 많습니다. 흔히 발생하는 실수는 다음과 같습니다:

  • DNS 해석이 활성화되지 않은 상태에서 프라이빗 인스턴스가 이름을 해결할 수 있다고 기대함.
  • 퍼블릭 DNS 레코드와 프라이빗 DNS 레코드를 혼동함.
  • DNS 쿼리에 인터넷 접속이 필요하다고 가정함.

문제 해결 시 VPC DNS 설정을 확인하고 어떤 리졸버가 사용되고 있는지 이해하면, 보안 규칙이나 라우트 등을 검사하는 것보다 더 빠르게 답을 찾을 수 있습니다.

결론

VPC 내부의 DNS는 설계상 단순하지만 AWS 네트워킹과 깊이 통합되어 있습니다. VPC DNS 해결자는 내부와 외부 이름 해석을 모두 제어되고 예측 가능한 방식으로 처리합니다. DNS 쿼리가 어디로 가는지, 결과가 어떻게 반환되는지를 이해하면 AWS 환경 전반에 걸친 연결성, 서비스 접근 및 네트워크 동작을 더 쉽게 파악할 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

서브넷팅 설명

Subnetting이란 무엇인가? 큰 아파트 건물을 여러 층으로 나누는 것과 같다. 각 층 서브넷은 자체 번호가 매겨진 유닛(hosts)을 가지고, 그리고 건물…