NAT 게이트웨이
더 많은 작업
- NAT Gateway; AWS NAT 게이트웨이
- 아마존 VPC의 프라이빗 서브넷에 있는 리소스가 밖으로 나가는 연결만 할 수 있게 주소를 변환해 주는 AWS 관리형 NAT 서비스
NAT 게이트웨이는 프라이빗 서브넷의 인스턴스가 OS 패치 저장소, 외부 API, 다른 VPC나 온프레미스 네트워크에 연결할 수 있게 하면서도, 바깥에서 그 인스턴스로 먼저 연결을 시작하지는 못하게 한다. 연결은 항상 NAT 게이트웨이가 있는 VPC 안에서 시작되어야 한다. AWS가 운영하므로 패치나 장애 조치 스크립트가 필요 없고, 대역폭도 자동으로 늘어난다.

| 항목 | 설명 |
|---|---|
| 연결 유형 | 퍼블릭(기본값)과 프라이빗 두 가지 |
| 가용성 모드 | 하나의 가용 영역에 만드는 영역 NAT 게이트웨이와, 여러 가용 영역으로 자동 확장되는 리전 NAT 게이트웨이 |
| 지원 프로토콜 | TCP, UDP, ICMP |
| 대역폭 | 기본 5Gbps에서 시작해 최대 100Gbps까지 자동 확장(영역 NAT 게이트웨이 기준) |
| 패킷 처리 | 초당 100만 패킷에서 시작해 초당 1,000만 패킷까지 자동 확장. 초과분은 버려진다 |
| 동시 연결 | IPv4 주소 하나당 고유 목적지(목적지 IP·포트·프로토콜 조합)마다 최대 55,000개. 주소를 추가 연결해 늘릴 수 있다 |
| 보안 | 보안 그룹을 연결할 수 없다. NAT 게이트웨이가 있는 서브넷의 네트워크 ACL로 통제한다 |
| 요금 | 사용 가능한 시간당 요금 + 처리한 데이터 GB당 요금 |
| 구분 | 퍼블릭 NAT 게이트웨이 | 프라이빗 NAT 게이트웨이 |
|---|---|---|
| 용도 | 프라이빗 서브넷 → 인터넷 | 프라이빗 서브넷 → 다른 VPC, 온프레미스 |
| 배치 | 퍼블릭 서브넷(영역 모드 기준) | 프라이빗 서브넷 |
| 탄력적 IP | 생성할 때 반드시 연결 | 연결할 수 없음 |
| 다음 홉 | 인터넷 게이트웨이(또는 Transit Gateway, 가상 프라이빗 게이트웨이) | Transit Gateway, 가상 프라이빗 게이트웨이 |
| 인터넷 게이트웨이로 보내면 | 인터넷으로 나감 | 인터넷 게이트웨이가 트래픽을 버림 |
프라이빗 NAT 게이트웨이는 주소 대역이 겹치는 네트워크끼리 통신해야 할 때처럼, 인터넷이 아닌 사설 연결에서 출발지 주소를 바꿔야 할 때 쓴다.
퍼블릭 NAT 게이트웨이를 쓰는 일반 구성은 다음과 같다.
- 퍼블릭 서브넷에 NAT 게이트웨이를 만들고 탄력적 IP를 연결한다.
- 프라이빗 서브넷 라우팅 테이블에 0.0.0.0/0 → NAT 게이트웨이 경로를 넣는다.
- 퍼블릭 서브넷 라우팅 테이블에는 0.0.0.0/0 → 인터넷 게이트웨이 경로가 있어야 한다.
영역 NAT 게이트웨이는 특정 가용 영역 안에서 이중화되어 구현된다. 하지만 가용 영역 자체가 장애를 겪으면 그 NAT 게이트웨이도 쓸 수 없다. 이 때문에 배치 방식에 따라 가용성과 비용이 갈린다.
| 구성 | 가용성 | 비용 | 적합한 환경 |
|---|---|---|---|
| 가용 영역마다 NAT 게이트웨이 하나, 각 AZ의 프라이빗 서브넷은 같은 AZ의 NAT로 라우팅 | 한 AZ가 장애여도 다른 AZ는 인터넷 접근 유지 | 시간당 요금이 AZ 수만큼. 대신 AZ 간 데이터 전송 요금이 생기지 않음 | 운영(프로덕션) 환경 |
| NAT 게이트웨이 하나를 모든 AZ가 공유 | NAT가 있는 AZ가 장애면 나머지 AZ도 인터넷 접근 상실 | 시간당 요금 1개분. 다른 AZ에서 오는 트래픽에 AZ 간 전송 요금 발생 | 개발·테스트처럼 가용성 요구가 낮은 환경 |
| 리전 NAT 게이트웨이 하나 | 워크로드가 있는 AZ로 자동 확장되어 기본적으로 고가용성 | 요금 체계는 VPC 요금 페이지 확인 | AZ별 NAT와 라우팅 관리를 줄이고 싶은 환경 |
리전 NAT 게이트웨이(regional NAT gateway)는 하나의 NAT 게이트웨이 ID가 워크로드의 네트워크 인터페이스가 있는 가용 영역으로 자동 확장·축소되는 가용성 모드이다. 기존 방식은 영역 NAT 게이트웨이(zonal NAT gateway)라고 부른다.
- 퍼블릭 서브넷이 필요 없다. 생성하면 인터넷 게이트웨이 경로가 미리 들어간 전용 라우팅 테이블이 함께 만들어진다.
- 모든 AZ의 프라이빗 서브넷이 같은 NAT 게이트웨이 ID를 경로 대상으로 쓸 수 있다.
- 가용 영역당 IP 주소를 최대 32개까지 연결할 수 있다(영역 NAT 게이트웨이는 8개).
- 새 가용 영역에 리소스가 생기면 그 AZ로 확장되기까지 최대 60분이 걸릴 수 있고, 그동안 해당 트래픽은 기존 AZ에서 교차 처리된다.
- 자동 모드(AWS가 IP와 AZ 확장 관리, 권장)와 수동 모드가 있다.
- 프라이빗 NAT는 지원하지 않는다. 프라이빗 연결 유형이 필요하면 영역 NAT 게이트웨이를 쓴다.
SAA-C03 시험 안내서는 "단일 공유 NAT 게이트웨이와 각 가용 영역의 NAT 게이트웨이 비교"를 묻는다. 기출형 문제는 대부분 영역 NAT 게이트웨이를 전제로 하므로 위 표의 첫 두 줄을 먼저 확실히 이해해 둔다.
NAT 인스턴스는 NAT 기능을 하도록 구성한 일반 EC2 인스턴스이다. AWS는 NAT 게이트웨이를 권장하며, NAT 인스턴스를 쓰고 있다면 NAT 게이트웨이로 바꾸라고 안내한다. 그래도 시험에서는 둘의 차이를 묻는다.
| 항목 | NAT 게이트웨이 | NAT 인스턴스 |
|---|---|---|
| 가용성 | AZ 안에서 이중화된 관리형 서비스. AZ마다 두면 영역 독립 구성 | 인스턴스 간 장애 조치를 스크립트로 직접 구현 |
| 대역폭 | 최대 100Gbps까지 자동 확장 | 인스턴스 유형의 대역폭에 좌우 |
| 유지 관리 | AWS가 관리 | 사용자가 OS 패치, 소프트웨어 업데이트 |
| 비용 | NAT 게이트웨이 수, 사용 시간, 처리 데이터양 | 인스턴스 수, 사용 시간, 인스턴스 유형·크기 |
| 크기 선택 | 필요 없음 | 예상 부하에 맞게 직접 선택 |
| 보안 그룹 | 연결 불가 | 연결 가능 |
| 포트 포워딩 | 지원 안 함 | 직접 구성하면 가능 |
| 배스천 서버로 사용 | 불가 | 가능 |
| 소스/대상 확인 | 해당 없음 | 인스턴스의 소스/대상 확인을 꺼야 함 |
NAT 인스턴스의 소스/대상 확인(source/destination check) 비활성화는 자기 주소가 아닌 패킷을 중계하려면 필요한 설정으로, 오래된 문제에 자주 나온다.
NAT 게이트웨이는 처리한 데이터 GB마다 요금이 붙으므로 트래픽이 많으면 비용이 빠르게 커진다.
- 프라이빗 서브넷에서 아마존 S3나 DynamoDB로 대량 트래픽이 간다면 VPC 엔드포인트의 게이트웨이 엔드포인트를 만든다. 게이트웨이 엔드포인트는 추가 요금이 없고, 해당 트래픽은 NAT 게이트웨이를 거치지 않는다.
- 다른 AWS 서비스로 가는 트래픽이 많다면 인터페이스 엔드포인트(AWS PrivateLink)를 검토한다. 인터페이스 엔드포인트에도 요금이 있으므로 NAT 처리 요금과 비교해서 고른다.
- 리소스와 NAT 게이트웨이를 같은 가용 영역에 두거나 AZ마다 NAT 게이트웨이를 만들어 AZ 간 데이터 전송 요금을 피한다.
- IPv6 워크로드의 외부 통신은 NAT 대신 송신 전용 인터넷 게이트웨이를 쓸 수 있다.
- VPC 피어링 연결을 거쳐 다른 VPC의 NAT 게이트웨이를 빌려 쓸 수 없다. 피어링된 VPC의 리소스가 내 VPC의 NAT 게이트웨이로 인터넷에 나가는 구성은 지원되지 않는다.
- 가상 프라이빗 게이트웨이를 통해 들어온 Site-to-Site VPN이나 Direct Connect 트래픽은 NAT 게이트웨이로 보낼 수 없다. Transit Gateway를 쓰면 가능하다.
- NAT 게이트웨이는 1024–65535 포트를 쓰므로 해당 서브넷 네트워크 ACL에서 이 범위를 허용해야 한다.
- IPv6 워크로드가 IPv4 자원과 통신해야 하면 NAT 게이트웨이의 NAT64와 Route 53 Resolver의 DNS64를 함께 쓴다.
- 프라이빗 서브넷 인스턴스가 인터넷에서 업데이트를 받아야 하지만 외부에서 접근되면 안 된다는 요구에는 퍼블릭 서브넷의 NAT 게이트웨이가 정답이다.
- 고가용성이 요구되면 AZ마다 NAT 게이트웨이를 두고 같은 AZ로 라우팅한다. 비용 절감이 우선이고 가용성 요구가 낮으면 NAT 게이트웨이 하나를 공유한다.
- "운영 오버헤드가 가장 적은" 선택지는 NAT 인스턴스가 아니라 NAT 게이트웨이이다.
- NAT 게이트웨이 비용이 S3·DynamoDB 트래픽 때문에 크다면 게이트웨이 엔드포인트를 추가한다.
- NAT 게이트웨이에는 보안 그룹을 붙일 수 없다. 통제는 네트워크 ACL과 뒤쪽 인스턴스의 보안 그룹으로 한다.
- NAT 게이트웨이 – AWS
- NAT 게이트웨이 기본 사항 – AWS
- 자동 다중 AZ 확장을 위한 리전 NAT 게이트웨이 – AWS
- NAT 게이트웨이 및 NAT 인스턴스 비교 – AWS
- NAT 게이트웨이 요금 – AWS