
이번 포스팅에서는 AWS의 DNS 서비스인 Route 53과 AWS 네트워크의 핵심 개념인 VPC(Vitual Private Cloud)에 대해 SAA수준에 맞추어 좀 더 심층적으로 살펴보려고 한다.
먼저 Route53에 대해 살펴보기전에 도메인 레벨과 DNS가 무엇인지 간단하게 이해하고 넘어가자
www . example . com .
이런 도메인이 있을 때, 도메인 레벨은 아래와 같이 나눌 수 있다.

위 도메인을 예시로 AWS의 DNS 시스템인 Route53 이 어떻게 작동하는지 자세히 살펴보자

DNS레코드 유형은 도메인 이름에 대한 정보를 DNS 서버에 저장하고, 해당 도메인에 대한 트래픽을 어떤 방식으로 처리할지 정의하는 역할을 한다.
| 유형 | 설명 |
|---|---|
| A | 도메인 이름을 해당하는 IPv4 주소로 매핑. 예: www.example.com → 192.0.2.1 |
| AAAA | 도메인 이름을 IPv6 주소로 매핑. |
| CNAME | 하나의 도메인 이름을 다른 도메인 이름에 연결할 때 사용함. |
| ALIAS | AWS에서 제공하는 특수 레코드로, 도메인을 ELB, S3, CloudFront 등 AWS 리소스에 직접 연결함. |
| MX(Mail eXchanger) | 이메일 서버연동시 메일의 소유를 확인하기 위한 레코드 |
| NS(Name Server) | DNS레코드를 가진 DNS 서버를 식별 하기 위한 레코드 |
| SOA(Start Of Authority) | 도메인에 대한 기본 정보, 권한 등을 포함한 레코드. |
Route53에는 들어온 요청에 따라 대상에게 어떻게 라우팅할지 정의하는 라우팅 정책이 있다. 이에 대해 자세히 알아보자.
- 단순 라우팅 (Simple)
- Route53에서 응답한 도메인에 대한 IP 주소가 여러개일 경우, 이 중 랜덤한 IP로 라우팅 됨
- 가중치 기반 (Weighted)
- 애플리케이션 관리자가 설정한 가중치를 기반으로 분산 라우팅
- IP 기반 (IP-based)
- 클라이언트의 IP를 기반으로 라우팅하는 방식
- 지연시간 (Latency)
- 클라이언트의 위치를 기반으로 지연시간이 가장 짧은 AWS 리전으로 라우팅
- 지리적 위치 (Geo Location)
- 클라이언트가 속한 대륙이나 국가를 기준으로 라우팅
- 상태 검사 (Health Ckeck)
- 전달할 서버의 상태를 모니터링 하고, 해당 서버에 이상이 있으면 다른 서버로 라우팅하여 장애 조치(Failover)
- 장애 조치 (Failover)
- 라우팅이 실패 하면 보조 서버로 라우팅
- 다중값 응답 (MultiValue)
- 클라이언트에게 IP주소 반환 시 여러 IP주소를 반환하는 방식
Hosted Zones은 도메인에 대한 모든 레코드 정보를 저장한 컨테이너이다.
Route 53은 해당 Hosted Zone의 authoritative name server로 동작하여, 도메인에 대한 최종 DNS 응답을 제공하는 서버
Public Hosted Zone
- 인터넷에서 접근 가능한 도메인용
- 주로 퍼블릭 DNS 레코드를 설정할 때 사용
Private Hosted Zone
- VPC 내부에서만 사용되는 도메인 용
VPC내에서 DNS 요청을 처리하는 서비스
주로 Direct Connect 나 Site-to-Site VPN으로 연결된 온프레미스와 DNS 질의를 주고받는데 사용됨
Route 53 Resolver 구성
- Inbound Endpoint
- 온프레미스에서 VPC 내부로 들어오는 DNS쿼리 수신
- Outbound Endpoint
- VPC에서 온프레미스로 DNS쿼리 송신
- Resolver Rules
- 규칙을 통해 DNS쿼리를 어떻게 처리하고 전달할지 정의
VPC는 AWS리소스가 존재하는 가상 네트워크 공간이다.
이 VPC도 일종의 네트워크이기 때문에, CIDR, 서브네팅 등의 네트워크 개념을 필수적으로 이해하고 있어야 한다.
VPC를 설명하기 전에, 이 개념들부터 알아보자
싸이더라고 불리는 CIDR은 IP주소를 표기하는 방법 중 가장 널리 쓰이는 방법이다.
CIDR표기법은 IP주소와 서브넷 마스크를 함께 표기하는 방법으로, IP주소를 효율적으로 할당하고 라우팅 하기 위해 사용된다.
예: 192.168.0.0/24
-> 앞의 24비트(prefix)는 네트워크 주소로 고정되고 뒤의 8비트는 호스트 주소로 사용함
서브네팅은 호스트 주소 부분을 더 많은 IP를 할당할 수 있게 더 작은 단위로 나누어 사용하는 것을 말한다.
192.168.0.0/24 의 주소를 서브네팅을 통해 /26 네트워크로 분할한 주소의 범위는 아래와 같다.
192.168.0.0/26 서브넷 범위
- 192.168.0.0 ~ 192.168.0.63
- 192.168.0.64 ~ 192.168.0.127
- 192.168.0.128 ~ 192.168.0.191
- 192.168.0.192 ~ 192.168.0.255
이 서브넷을 AWS의 VPC내에 생성할 수 있는데, 이 때 몇 가지 제한사항이 있다.
- 서브넷 마스크의 범위는 /16 ~ /28로 제한
- 서브넷 생성 시 하나의 서브넷은 하나의 가용영역만 지정 가능
- 서브넷 범위는 VPC의 CIDR블록 범위 내에서 지정 가능
- 서브넷 끼리 IP주소 중첩 불가

위 사진은 AWS의 네트워크 구조를 기본적인 구성요소만 포함하여 다이어그램 형태로 나타낸 것이다.
이 구성요소들을 본격적으로 하나씩 알아보자
Internet Gateway (IGW)
VPC내부에 있는 네트워크들은 기본적으로 외부 네트워크와 바로 통신이 불가능하다. 이 때 VPC와 외부 인터넷을 연결해주는 게이트웨이 역할을 해주는 것이 IGW(Internet Gateway)이다.
Elastic Network Interface (ENI)
ENI는 VPC내부의 AWS리소스가 네트워크 통신을 할 수 있게 해주는 가상 네트워크 인터페이스이다.
위 다이어그램의 경우, EC2 인스턴스는 ENI를 통해 내부 및 외부 네트워크와 통신이 가능하다
Network Address Translation (NAT)
프라이빗 서브넷에 속한 네트워크는 외부 인터넷과 통신이 불가능하지만, 라우팅 테이블에 NAT Gateway 혹은 NAT Instance로 향하는 경로를 설정해두면 퍼블릭 서브넷에 있는 NAT를 거쳐 외부로의 요청은 가능해진다.(통신은 불가능)
Network Access Control List (NACL)
NACL은 서브넷 단위로 적용되는 일종의 방화벽이다. NACL은 보안그룹과 다르게 거부 규칙도 지정 가능하며, 비상태성(stateless)성질을 지녀 인바운드 규칙과 아웃바운드 규칙이 따로 평가 된다.
또한 NACL은 규칙에 번호를 지정할 수 있는데 규칙의 번호가 낮은 것이 우선 적용되고, 하나의 NACL은 여러 서브넷과 연결이 가능하다.NACL의 임시포트 (Ephemeral port)
클라이언트가 외부 서버에 TCP 연결 요청(예: HTTP 요청)을 보낼 때, 응답을 받을 임시 포트(보통 1024~65535 사이)를 자동으로 할당받는데, 이게 바로 임시포트
NACL은 비상태성 이기 때문에 요청을 보낸 상태를 기억하지 않아, 응답을 받을 클라이언트의 임시포트를 규칙에 명시해두어야 함
| 항목 | 보안 그룹 (Security Group) | 네트워크 ACL (NACL) |
|---|---|---|
| 적용 범위 | 인스턴스 단위 | 서브넷 단위 |
| 상태 저장 여부 | ✅ 상태 저장 (Stateful) | ❌ 비상태성 (Stateless) |
| 응답 트래픽 허용 여부 | 요청이 허용되면 응답은 자동 허용 | 응답 트래픽도 별도 규칙 필요 |
| 기본 동작 | 기본은 모든 트래픽 거부 | 기본은 모든 트래픽 허용 |
| 허용/거부 규칙 지원 여부 | ✅ 허용만 가능 | ✅ 허용 & ❌ 거부 둘 다 가능 |
| 규칙 적용 우선순위 | 순서 없음 (모든 규칙 적용됨) | 숫자 기반 우선순위 (낮은 숫자 우선 적용) |
| 주 사용 목적 | EC2 인스턴스 단위 보안 설정 | 서브넷 단위로 트래픽 제어 |
주로 퍼블릭 서브넷에 배치하는 NAT는 크게 NAT Gateway와 NAT Instance로 구분되는데, NAT Gateway는 AWS관리형, NAT Instance는 사용자가 직접 EC2 인스턴스를 구성하여 NAT로 활용할 수 있게 관리하는 형태이다.
| 항목 | NAT Gateway | NAT 인스턴스 (NAT Instance) |
|---|---|---|
| 제공 방식 | AWS에서 제공하는 관리형 서비스 | 사용자가 직접 EC2로 설정 |
| 설정 복잡도 | 상대적으로 간단 | 인스턴스를 직접 구성하므로 복잡 |
| 성능 | 자동 확장 | 성능은 인스턴스 타입에 따라 제한됨 |
| 유지 관리 | 필요 없음 (AWS가 관리) | OS 패치, 보안 설정 등 사용자가 관리 |
| 보안 그룹 설정 가능 여부 | ❌ 보안 그룹 사용 불가 | ✅ EC2이므로 보안 그룹 설정 가능 |
VPC내에서 AWS서비스와 데이터를 주고받으려면 VPC에서 외부 인터넷을 거쳐 AWS리소스로 데이터를 전달하는게 기본적인 방식이다. 하지만 VPC endpoints를 거치면 외부 인터넷을 거치지 않고 내부 네트워크에서 AWS서비스에 바로 접근이 가능하다.
- 게이트웨이 엔드포인트 (Gateway Endpoint)
- 라우팅 테이블을 통해 S3 또는 DynamoDB에 연결(다른 서비스는 X)
- 하나의 VPC에 여러 엔드포인트를 만들 수 있으나 동일한 서비스로 향하는 라우팅엔 하나의 엔드포인트만 생성 가능
- 동일한 리전에서만 지원
- Direct Connect, VPN으로 연결된 VPC외부의 리소스는 Gateway Endpoint 리소스와 통신할 수 없음
- Peering으로 연결된 VPC는 Gateway Endpoint와 통신할 수 없음
- 인터페이스 엔드포인트 (Interface Endpoint)
- ENI를 엔드포인트로 활용하여 대부분의 AWS서비스에 접근 가능
- 네트워크 연결에 AWS PrivateLink를 사용
- AWS PrivateLink 연결이 지원되는 서비스에만 연결 가능
- Direct Connect, VPN으로 연결된 VPC 외부의 리소스와 통신 가능
- Peering으로 연결된 VPC로 외부의 리소스와 통신 가능
- Gateway Load Balancer 엔드포인트
- GWLB와 함께 사용되어 보안 검사 등을 위해 Gateway Load Balancer를 사용하여 구성한 보안 어플라이언스로 라우팅 됨
- 외부 리소스 연결할 때 AWS PrivateLink가 사용 됨