"왜 아무것도 안 했는데 요금이 많이 나오죠?"
클라우드 인프라를 운영하다 보면 매달 날아오는 청구서에서 의외의 항목이 큰 비중을 차지하는 것을 발견하게 됩니다. EC2나 RDS 같은 메인 리소스가 아닙니다. 바로 'NAT Gateway'입니다.
보안을 위해 프라이빗 서브넷(Private Subnet)을 구성했다면 외부 인터넷 통신을 위해 NAT Gateway는 필수적입니다. 하지만 트래픽이 늘어날수록 기하급수적으로 증가하는 '데이터 처리 비용'은 스타트업과 대기업 모두에게 골칫거리입니다. 오늘은 아키텍처를 조금만 손봐서 성능은 유지하고 비용은 극적으로 낮추는 구체적인 전략을 알아봅니다.
1. NAT Gateway 요금 구조의 함정
적을 알고 나를 알아야 비용을 줄일 수 있습니다. NAT Gateway의 요금은 크게 두 가지로 나뉩니다.
- 시간당 요금 (Hourly Charge): 게이트웨이가 켜져 있는 시간만큼 부과됩니다. (서울 리전 기준 약 월 $40~50 수준)
- 데이터 처리 요금 (Data Processing Charge): 게이트웨이를 통과하는 트래픽 1GB당 부과되는 요금입니다.
문제는 바로 두 번째, 데이터 처리 요금입니다. 많은 개발자가 "우리 서버는 외부랑 통신 별로 안 하는데?"라고 생각합니다. 하지만 서버 내부에서 일어나는 S3 파일 업로드/다운로드, 도커(Docker) 이미지 풀(Pull), 로그 전송 등이 모두 NAT Gateway를 통과한다면? 1TB만 전송해도 수십만 원의 추가 비용이 발생합니다. 이것이 요금 폭탄의 주범입니다.
2. 해결책 1: S3와 DynamoDB는 '무료 도로'를 이용하라
가장 효과적이고 즉각적인 비용 절감 방법은 VPC 엔드포인트(Gateway Type)를 사용하는 것입니다.
AWS 내부 서비스인 S3(스토리지)나 DynamoDB에 접근할 때, 굳이 인터넷망으로 나가는 NAT Gateway를 거칠 필요가 없습니다. VPC 엔드포인트(게이트웨이 타입)를 설정하면, 트래픽이 AWS 내부 네트워크를 통해 직접 연결됩니다.
- 비용: 무료입니다. 설치 비용도, 데이터 처리 비용도 0원입니다.
- 성능: 인터넷을 거치지 않으므로 전송 속도가 더 빠르고 안정적입니다.
- 보안: 트래픽이 외부로 노출되지 않아 보안성이 강화됩니다.
S3에 로그를 백업하거나 대용량 이미지를 자주 불러오는 서비스라면, 이 설정 하나만으로 NAT Gateway 트래픽의 50% 이상을 줄일 수 있습니다.
3. 해결책 2: 인터페이스 엔드포인트(Interface Endpoint) 선별 적용
S3 외에도 CloudWatch(로그), ECR(컨테이너 이미지), SNS(메시지) 등 다양한 AWS 서비스와 통신해야 할 때가 있습니다. 이때는 인터페이스 엔드포인트(PrivateLink)를 사용할 수 있습니다.
- 주의점: 인터페이스 엔드포인트는 무료가 아닙니다. 시간당 요금과 데이터 처리 요금이 발생합니다.
- 전략: NAT Gateway의 데이터 처리 비용과 인터페이스 엔드포인트 비용을 비교해야 합니다. 대용량 데이터를 주고받는 특정 서비스(예: ECR에서 매일 수십 번씩 무거운 이미지를 당겨오는 경우)에 한해 선별적으로 적용하는 것이 유리합니다.
4. 해결책 3: 개발 환경에는 NAT 인스턴스(NAT Instance) 고려
운영 환경(Production)이 아닌 개발(Dev)이나 테스트(Stage) 환경에서도 비싼 NAT Gateway를 써야 할까요?
이럴 때는 저렴한 EC2 인스턴스(예: t3.nano, t4g.micro)를 띄워서 직접 NAT 역할을 하게 만드는 NAT 인스턴스 방식이 대안이 될 수 있습니다.
- 장점: 비용이 매우 저렴합니다. (EC2 비용만 발생)
- 단점: 트래픽이 몰리면 성능이 저하될 수 있고, 인스턴스가 죽으면 인터넷 연결이 끊깁니다. (고가용성 보장 안 됨)
- 결론: 중단되어도 큰 문제가 없는 개발 환경이나, 트래픽이 거의 없는 내부 시스템에는 NAT 인스턴스가 가성비 최고의 선택입니다.
5. 트래픽의 범인을 찾아라: VPC Flow Logs
"도대체 어디서 이렇게 데이터가 많이 나가는 거야?" 심증은 있는데 물증이 없다면 VPC Flow Logs를 켜야 합니다.
이 로그를 분석하면 어떤 서버(Source IP)가 어떤 목적지(Destination IP)로 얼마나 많은 데이터를 보내는지 정확히 알 수 있습니다. 의외로 서드파티 모니터링 툴이나, 잘못 설정된 무한 재시도 로직이 범인인 경우가 많습니다. 불필요한 트래픽을 차단하는 것이야말로 가장 근본적인 비용 절감입니다.
비용 최적화는 '경로'의 재설계다
NAT Gateway 비용 절감의 핵심은 '불필요한 통행료를 내지 않는 것'입니다.
- S3/DynamoDB 트래픽: 무조건 VPC 엔드포인트(Gateway Type)를 사용하여 무료로 전환하세요.
- AWS 내부 서비스 트래픽: 인터페이스 엔드포인트를 선별적으로 도입하세요.
- 비중요 환경: NAT 인스턴스로 대체하여 고정비를 줄이세요.
지금 바로 AWS Cost Explorer(비용 탐색기)를 열어 'NAT Gateway' 항목을 찍어보세요. 그리고 아키텍처 다이어그램을 수정하세요.