본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
NAT Gateway; AWS NAT 게이트웨이
아마존 VPC의 프라이빗 서브넷에 있는 리소스가 밖으로 나가는 연결만 할 수 있게 주소를 변환해 주는 AWS 관리형 NAT 서비스

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

가용 영역마다 두는 영역 NAT 게이트웨이와 여러 가용 영역에 걸치는 리전 NAT 게이트웨이
항목 설명
연결 유형 퍼블릭(기본값)과 프라이빗 두 가지
가용성 모드 하나의 가용 영역에 만드는 영역 NAT 게이트웨이와, 여러 가용 영역으로 자동 확장되는 리전 NAT 게이트웨이
지원 프로토콜 TCP, UDP, ICMP
대역폭 기본 5Gbps에서 시작해 최대 100Gbps까지 자동 확장(영역 NAT 게이트웨이 기준)
패킷 처리 초당 100만 패킷에서 시작해 초당 1,000만 패킷까지 자동 확장. 초과분은 버려진다
동시 연결 IPv4 주소 하나당 고유 목적지(목적지 IP·포트·프로토콜 조합)마다 최대 55,000개. 주소를 추가 연결해 늘릴 수 있다
보안 보안 그룹을 연결할 수 없다. NAT 게이트웨이가 있는 서브넷의 네트워크 ACL로 통제한다
요금 사용 가능한 시간당 요금 + 처리한 데이터 GB당 요금

퍼블릭 NAT 게이트웨이와 프라이빗 NAT 게이트웨이

편집 원본 편집
구분 퍼블릭 NAT 게이트웨이 프라이빗 NAT 게이트웨이
용도 프라이빗 서브넷 → 인터넷 프라이빗 서브넷 → 다른 VPC, 온프레미스
배치 퍼블릭 서브넷(영역 모드 기준) 프라이빗 서브넷
탄력적 IP 생성할 때 반드시 연결 연결할 수 없음
다음 홉 인터넷 게이트웨이(또는 Transit Gateway, 가상 프라이빗 게이트웨이) Transit Gateway, 가상 프라이빗 게이트웨이
인터넷 게이트웨이로 보내면 인터넷으로 나감 인터넷 게이트웨이가 트래픽을 버림

프라이빗 NAT 게이트웨이는 주소 대역이 겹치는 네트워크끼리 통신해야 할 때처럼, 인터넷이 아닌 사설 연결에서 출발지 주소를 바꿔야 할 때 쓴다.

퍼블릭 NAT 게이트웨이를 쓰는 일반 구성은 다음과 같다.

  1. 퍼블릭 서브넷에 NAT 게이트웨이를 만들고 탄력적 IP를 연결한다.
  2. 프라이빗 서브넷 라우팅 테이블에 0.0.0.0/0 → NAT 게이트웨이 경로를 넣는다.
  3. 퍼블릭 서브넷 라우팅 테이블에는 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 게이트웨이

편집 원본 편집

리전 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과 뒤쪽 인스턴스의 보안 그룹으로 한다.