S4 NAT
Amazon VPC용 비용 최적화 NAT
S4 NAT는 Amazon VPC의 private subnet에 표준 EC2 인스턴스 기반의 비용 최적화 internet egress(source NAT)를 제공합니다: 고정 시간당 소프트웨어 요금과 선택한 EC2 인스턴스 비용만 지불하며, GB당 데이터 처리 요금은 없습니다. 따라서 비용을 예측 가능하게 유지하고 egress volume과 분리할 수 있습니다. Amazon Linux 2023 AMI로 제공되며 active/standby high availability(일반적으로 10초 미만), IPv6-only subnet용 내장 NAT64, 선택적 XDP fast path를 포함합니다. 포함된 CloudFormation template으로 몇 분 안에 배포할 수 있습니다.
S4 NAT는 표준 EC2 인스턴스 기반으로 Amazon VPC의 private subnet에 비용 최적화 internet egress를 제공합니다. source NAT(MASQUERADE)를 수행해 private subnet이 인터넷에 접근할 수 있게 하며, 고정 시간당 소프트웨어 요금과 선택한 인스턴스 비용만 지불합니다. GB당 데이터 처리 요금이 없으므로 비용은 예측 가능하고 egress volume과 분리됩니다. 대역폭은 인스턴스 유형에 따라 확장됩니다. HA가 내장되어 있습니다: active/standby template을 배포하면 standby가 active에 heartbeat를 보내고, 장애 시 ec2:ReplaceRoute로 route table을 다시 쓰고 shared Elastic IP를 이동하며, 일반적으로 10초 미만에 failover됩니다.
해결하고자 하는 과제
AWS NAT Gateway는 시간당 요금 외에도 프라이빗 서브넷을 통과하는 모든 바이트에 대해 $0.045/GB의 데이터 처리 요금을 추가로 부과합니다. 이 요금은 egress 전송량에 비례하여 증가하므로, 고처리량 워크로드의 경우 10 TB/month 수준에서 청구액의 대부분을 차지하며 50 TB/month 규모에서는 수천 달러에 달해 비용 예측이 어려워집니다. 비용이 NAT가 실제로 처리하는 작업이 아니라 전송량에 연동되는 구조이기 때문입니다.
작동 원리
- 1
CloudFormation으로 배포
하나의 CloudFormation 템플릿(single 또는 HA)이 NAT 인스턴스, source/dest 체크가 비활성화된 ENI, 최소 권한의 IAM 역할 및 VPC 범위의 보안 그룹을 생성합니다.
- 2
프라이빗 경로를 해당 인스턴스로 지정
스택이 프라이빗 서브넷의 0.0.0.0/0 경로를 NAT 인스턴스의 ENI로 재작성하며, natd가 nftables MASQUERADE를 사용해 트래픽을 source-NAT 처리합니다.
- 3
Standby가 하트비트 상태를 확인하고 제어권 인수
HA 구성에서 Standby는 UDP 하트비트로 Active의 상태를 감시하고, 장애 발생 시 라우팅 테이블을 자신의 ENI로 재작성(ec2:ReplaceRoute)하고 공유 Elastic IP를 이동하여 일반적으로 10초 미만 내에 작동을 인수합니다.
주요 특징
GB당 데이터 처리 요금 없음: 고정 시간당 소프트웨어 요금과 선택한 EC2 인스턴스 비용만 지불하므로 NAT 청구액이 예측 가능하고 egress volume과 분리됩니다.
High availability 내장: AZ 간 active/standby 쌍이 route table을 다시 쓰고 shared Elastic IP를 이동해 일반적으로 10초 미만에 failover합니다 — 60회 연속 drill에서 실패 0회로 검증되었습니다.
필수 기능 포함, lock-in 없음: IPv6-only subnet용 내장 NAT64(RFC 6146), 선택적 XDP fast path, CloudFormation template(single + HA) — 모두 자체 VPC 안의 표준 Amazon Linux 2023 AMI에서 실행됩니다.
포함 사항
- Amazon Linux 2023 AMI, 기본적으로 Graviton arm64 제공 (x86_64 버전 선택 가능)
- nftables MASQUERADE 데이터 플레인 (Linux IPv4 포워딩, ENI의 source/dest 체크 비활성화, $0/GB 데이터 처리 요금)
- 2개의 AZ에 걸친 Active/standby HA(ec2:ReplaceRoute를 통한 경로 재작성 및 정상 인스턴스로 공유 Elastic IP를 재연결하여 egress 퍼블릭 IP를 일정하게 유지)
- NAT64 (RFC 6146) — 내장된 tayga translator를 사용하여 IPv6 전용 서브넷이 IPv4 인터넷에 연결되도록 지원 (실제 EC2에서 검증 완료)
- 선택 사항인 XDP fast path (지원되는 v1 데이터 플레인은 커널 nftables이며, XDP는 선택적으로 활성화할 수 있는 가속화 경로임)
- CloudFormation 템片릿 — 클릭 한 번으로 구성 가능한 단일 인스턴스(cfn-single.yaml) 및 HA 페어(cfn-ha.yaml)
- S4/NAT namespace 아래의 CloudWatch 메트릭 (throughput, conntrack 사용률, failover, heartbeat) 및 기본 제공되는 알람과 대시보드
주요 활용 사례
GB당 NAT 요금이 청구 금액의 대부분을 차지하는 대용량 egress 프라이빗 서브넷
트래픽 전송량과 무관하게 예측 가능하고 고정된 NAT 비용을 원하는 팀
여전히 IPv4 인터넷에 연결되어야 하는 IPv6 전용 서브넷 (NAT64)
프라이빗 서브넷에서의 아웃바운드 인터넷 접속을 위해 managed NAT Gateway를 대체하려는 경우
자주 묻는 질문
실제로 managed NAT Gateway보다 저렴한가요?
$0.045/GB의 데이터 처리 요금을 완전히 제거하여 ($0/GB), 고정된 시간당 소프트웨어 요금과 선택한 EC2 인스턴스 요금만 청구됩니다. 어플라이언스 비용이 고정되어 있으므로 전송량이 많아질수록 절감 효과가 커집니다 — 예시 워크시트에 따르면 단독 인스턴스는 NAT 트래픽이 약 1 TB/month일 때 손익분기점에 도달하며, 10 TB/month에서는 약 84%의 비용을 절감할 수 있습니다. 사실 손익분기점은 트래픽 양, 인스턴스 크기, 가동 시간(uptime)에 따라 달라지며, cross-AZ 및 인터넷 egress 전송 요금은 기존과 동일하게 청구됩니다.
failover는 중단 없이 진행되나요?
failover는 빠르지만 무중단(hitless)은 아닙니다. Standby가 라우팅 테이블을 재작성하고 Elastic IP를 이동하여 일반적으로 10초 미만 내에 작동을 인수합니다(평균 약 4s, 100회 훈련 중 100회 모두 성공, 실패 0건). 전환 시 진행 중이던 연결은 초기화되지만, 클라이언트가 재연결하면 새로운 연결은 즉시 성공합니다. AWS 상의 인스턴스 NAT로는 무중단(hitless) egress failover를 제공할 수 없으므로, 당사는 이를 주장하지 않습니다.
대역폭은 얼마나 처리할 수 있나요?
대역폭은 관리형 서비스의 고정된 상한선이 아닌, 선택하는 EC2 인스턴스 유형에 따라 달라집니다. c6in.large 인스턴스에서 iperf3를 사용해 NAT를 통해 약 4.78 Gbps를 측정했으며, 더 큰 네트워크 최적화 인스턴스에서는 더 높은 성능으로 확장됩니다. 필요한 처리량에 맞춰 인스턴스 크기를 선택해 주세요.
IPv6 전용 서브넷을 지원하나요?
예, 지원합니다. 내장된 NAT64 (RFC 6146)가 함께 제공되는 tayga translator를 사용하여 IPv6 전용 클라이언트의 트้า픽을 IPv4 인터넷으로 변환해 줍니다. 실제 EC2에서 외부 IPv4 호스트에 연결하여 패킷 손실 0%로 검증되었습니다.
보안상 안전한가요? 그리고 어떻게 배포하나요?
S4 NAT는 고객의 VPC 내부에서만 실행되므로 트래픽이 계정 외부로 유출되지 않습니다. NAT ENI는 source/dest 체크가 비활성화되며, 최소 권한의 IAM 역할과 VPC 범위의 보안 그룹이 부여됩니다. 함께 제공되는 CloudFormation 템플릿을 사용하여 배포할 수 있으며, 단일 인스턴스의 경우 cfn-single.yaml을, Active/standby HA 페어의 경우 cfn-ha.yaml을 사용합니다.
요금제 모델
시간당 소프트웨어 요금 + EC2(t4g / c6g급, Arm 또는 x86). GB당 데이터 처리 요금 없음. 인스턴스 유형별 종량 과금, 연간 옵션 제공.