# $1,000짜리 AWS 실수

> Clean Markdown view of GeekNews topic #24504. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24504](https://news.hada.io/topic?id=24504)
- GeekNews Markdown: [https://news.hada.io/topic/24504.md](https://news.hada.io/topic/24504.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-21T07:33:26+09:00
- Updated: 2025-11-21T07:33:26+09:00
- Original source: [geocod.io](https://www.geocod.io/code-and-coordinates/2025-11-18-the-1000-aws-mistake/)
- Points: 12
- Comments: 1

## Summary

AWS **VPC 네트워킹 구성 실수** 하나가 하루 만에 **$900 이상의 데이터 전송 요금**으로 이어진 사례입니다. EC2–S3 간 전송은 무료라는 일반적 인식과 달리, **NAT Gateway를 경유하면 GB당 요금이 부과**되며, 이를 피하려면 **S3용 VPC Gateway Endpoint**를 설정해야 합니다. 이 Endpoint는 무료이고 Terraform 등으로 쉽게 추가할 수 있어, **비용 최적화와 네트워크 설계 검증의 중요성**을 다시 일깨워줍니다. 댓글에 AWS가 새로 발표한 **"초과 요금 없는 정액 요금제"** 부분도 함께 참고하세요.

## Topic Body

- AWS **VPC 네트워킹과 NAT Gateway 구성 오류**로 인해 S3 데이터 전송 비용이 하루 만에 약 $900, 한 달 누적으로 $1,000을 초과한 사례  
- EC2에서 S3로의 전송은 무료라고 알려져 있으나, **VPC 내 NAT Gateway를 경유하면 유료 데이터 처리 요금**이 발생  
- 문제의 원인은 **S3용 VPC Gateway Endpoint 누락**으로, NAT Gateway를 거치지 않고 S3로 직접 연결하는 설정이 없었던 점  
- Gateway Endpoint는 **무료이며 데이터 전송 요금이 발생하지 않음**, Terraform 등으로 간단히 설정 가능  
- AWS 인프라 운영 시 **비용 감시와 VPC Endpoint 구성 점검의 중요성**을 보여주는 사례  

---

### 문제의 배경
- Geocodio는 내부 대용량 지리 데이터 파일을 S3로 미러링하기 위해 AWS를 사용  
  - 데이터는 주소 포인트, 경계 데이터, 인구조사 정보 등으로, 수 GB에서 수백 GB 규모  
  - Hetzner에 호스팅된 ETL 플랫폼에서 AWS 처리 인프라로 정기적으로 동기화 필요  
- AWS의 **데이터 전송 비용이 높음**은 업계 전반의 공통 불만으로, Cloudflare와 Corey Quinn 등이 관련 문제를 지적  
- 작성자는 프로젝트 시작 전 비용 구조를 검토해  
  1. 같은 리전 내 EC2–S3 전송은 무료  
  2. S3로의 업로드(입력)는 무료  
  라는 점을 확인하고 비용을 예측  

### 예기치 못한 비용 발생
- S3 동기화 프로세스 배포 후 **AWS Cost Anomaly Detection**에서 이상 경고 수신  
  - 하루 동안 NAT Gateway 데이터 전송량이 **20,167.32GB**, 비용 **$907.53** 발생  
  - 월 누적 비용이 이미 $1,000을 초과  
- EC2–S3 전송이 무료인 줄 알았던 상황에서 **NAT Gateway 요금이 청구된 이유를 조사**  

### 원인 분석: NAT Gateway 경유
- VPC에서 NAT Gateway를 사용하는 경우, **S3 트래픽도 기본적으로 NAT Gateway를 통해 라우팅**됨  
  - 동일 리전 내 AWS 서비스로의 요청이라도 NAT를 거치면 **GB당 $0.045의 데이터 처리 요금** 발생  
- 이로 인해 EC2–S3 간 전송이 무료임에도 불구하고 **NAT Gateway 비용이 청구**  
- 해결책은 **S3용 VPC Gateway Endpoint 생성**  
  - NAT Gateway나 Internet Gateway를 거치지 않고 **VPC에서 S3로 직접 연결**  
  - **완전 무료**이며 시간당 요금이나 전송 요금 없음  

### 해결 과정
- Terraform으로 인프라를 관리하고 있어, **Gateway Endpoint 리소스를 추가하고 라우트 테이블에 연결**  
  - AWS가 자동으로 라우팅을 업데이트하여 S3 트래픽을 NAT Gateway 대신 Endpoint로 전송  
- 이후 NAT Gateway 관련 과금이 중단  

### 교훈과 권장 사항
- 오랜 기간 AWS를 사용했음에도 **S3용 VPC Endpoint 설정 누락**으로 인한 비용 발생  
- AWS 네트워킹은 복잡하며, **비용 구조는 설정 방식에 따라 크게 달라질 수 있음**  
- 재발 방지를 위한 권장 사항  
  - **AWS Cost Anomaly Detection 활성화**: 이상 비용을 조기에 탐지 가능  
  - **VPC Endpoint 사용**: NAT Gateway를 사용하는 VPC에서 S3·DynamoDB 접근 시 필수  
  - **가정 검증**: “EC2–S3 전송은 무료”라는 전제만 믿지 말고, 소량 테스트 후 비용 모니터링 필요  
  - **클라우드는 복잡함**: 장기 사용자라도 지속적인 주의 필요  
- 유사 사례로 Recall.ai가 **WebSocket 데이터 처리 비용으로 연간 $100만**을 지불한 사례 언급  

### 후속 조치
- Geocodio는 모든 VPC의 S3 통신 경로를 점검하고 **Gateway Endpoint 구성 완료**  
- AWS 사용자에게 **VPC Endpoint 설정 확인**을 권장  
- 요약: NAT Gateway는 AWS 서비스로의 트래픽도 과금 대상이며, **VPC Endpoint 사용으로 비용 회피 가능**  

### 추가 자료
- [AWS VPC Endpoints for S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html)  
- [AWS Cost Anomaly Detection](https://aws.amazon.com/aws-cost-management/aws-cost-anomaly-detection/)  
- [Save Cash by Avoiding The AWS NAT Gateway with Gateway Endpoints](https://carmencincotti.com/2023-03-27/the-five-minute-hack-to-saving-money-with-gateway%20endpoints/)  
- [The AWS Managed NAT Gateway is Unpleasant and Not Recommended](https://www.lastweekinaws.com/blog/the-aws-managed-nat-gateway-is-unpleasant-and-not-recommended/)  
- [Cloudflare's take on AWS egress costs](https://blog.cloudflare.com/aws-egregious-egress/)

## Comments



### Comment 46624

- Author: neo
- Created: 2025-11-21T07:33:28+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=45977744) 
- 세 개의 주요 클라우드 관련 서브레딧에서 이런 **비용 폭탄 사례**가 하루에 한 번꼴로 올라오는 걸 자주 봄  
  클라우드 업체들은 항상 지연된 알림만 제공하고, 사용자는 그저 **기도와 구제 요청**밖에 할 수 없는 상황임  
  게다가 일부는 “기술적으로 하드캡 계정을 제공하는 건 불가능하다”고 주장하지만, 실제로 Azure에는 이미 그런 계정이 존재함  
  - 나는 이게 악의적인 의도라기보다는 **무능과 인센티브 부재**의 조합이라고 생각함  
    10년 넘게 AWS를 써왔는데, 서비스 간 설계 불연속성과 **조직 내 사일로화**가 심각했음  
    큰 조직에서는 KPI를 해칠 문제를 해결하려는 임원이 없고, 대신 AI나 블록체인 같은 유행 서비스 출시로 승진 점수를 쌓는 데 집중함  
  - AWS가 어제 **초과 요금 없는 정액제 요금제**를 발표했음  
    월 $0, $15, $200 플랜 중 선택하면, 예기치 못한 요청이나 데이터 전송 증가로 인한 요금 폭탄을 막을 수 있음  
    [AWS 공식 블로그 링크](https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-flat-rate-pricing-plans-with-no-overages/)  
  - 같은 소식인데, 이번엔 CDN용 정액제 요금제임. S3 스토리지와 대역폭도 포함된 $0 티어가 있음  
    [관련 HN 스레드](https://news.ycombinator.com/item?id=45975411)  
    비용 상한을 설정하면서 서비스 안정성을 유지하는 게 어렵긴 하지만, 이번 사례로 **기술적으로 가능함이 증명됨**  
  - AWS는 고객이 실수로 과금되면 나중에 환불해주는 쪽을 택함  
    서비스 중단이나 인프라 장애로 인한 평판 리스크를 피하기 위해서임  
  - 이런 글에서 가장 슬픈 건 “우리가 청구서를 더 잘 이해했어야 했다”는 결론으로 끝나는 것임  
    하지만 문제는 클라우드 자체일 수도 있음. **예측 가능한 비용 구조**가 필요한 소규모 사업자에게는 클라우드가 적합하지 않을 수도 있음  

- 이런 일이 너무 자주 일어나서, **S3 VPC 엔드포인트**는 VPC 생성 시 기본으로 설정돼야 한다고 생각함  
  그리고 NAT 게이트웨이 대신 [fck-nat](https://fck-nat.dev/v1.3.0/) 같은 대안을 쓰면 GB당 트래픽 요금을 절약할 수 있음  
  - 하지만 S3 Gateway 엔드포인트는 **리전 간 S3 작업을 깨뜨림**, 기본값 변경은 고객을 망가뜨릴 수 있음  
  - IPv6로 전환하고 [Egress Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html)를 쓰는 방법도 있음  
  - 콘솔에서 VPC를 만들 때는 체크박스 하나로 설정 가능함  
  - 콘솔이 아니라 **IAC(Infrastructure as Code)** 로 구축하는 경우엔 모든 구성을 명시적으로 작성하는 게 맞음  
  - 기본적으로 VPC는 **보안 우선 구조**로 설계되어야 함  
    기본 접근 거부 상태에서 명시적으로 인터넷 접근을 허용해야 하며, 그렇지 않으면 공격자가 데이터를 유출할 수 있음  

- 나도 비슷한 실수를 한 적 있음  
  AWS 추천 알고리즘에 테스트용 데이터를 업로드하고 잊어버렸는데, 몇 달 뒤 은행에서 잔고 부족 알림을 받았음  
  알고리즘이 계속 돌아가면서 매달 1천 달러 이상이 청구되어, 결국 **5천 달러**가 사라졌음  
  - 나는 청구 부서에서 일한 적이 있어서 이런 일에 **건전한 편집증**을 가지게 됨  
    매일 잔고를 확인하고, 모든 청구 메일을 중요 표시함  
    그리고 각 서비스마다 **가상 카드 한도**를 설정해두는 습관을 들였음  

- 나도 같은 실수를 해서 **6만 달러**를 날린 적 있음  
  왜 S3 엔드포인트가 기본으로 배포되지 않는지 이해할 수 없음  
  - 내부 회의에서 “이걸 기본으로 넣자” 하면 “수익이 줄어든다”는 이유로 미뤄질 것 같음  
  - “그게 1년치 연봉이지만, 직접 인프라를 셀프호스팅하는 복잡함을 생각해보라”는 식의 농담도 나옴  

- “왜 AWS 요금이 폭발했는가”라는 질문을 자주 받는데, 대부분 **NAT + S3 + 잘못된 가정** 조합임  
  EC2→S3 전송은 무료지만, NAT를 거치면 유료가 됨  
  그래서 나는 다음 체크리스트를 줌  
  1) S3나 DynamoDB와 자주 통신하는 프라이빗 서브넷은 Gateway Endpoint 사용 고려  
  2) NAT 비용을 별도 대시보드로 모니터링  
  3) 대용량 데이터 이동 전에는 **요금 흐름 다이어그램**을 그려볼 것  
  Cost Anomaly Detection이 제때 작동한 건 다행이었음. 1천 달러 손실도 아프지만, 2만 달러보다 낫음  

- AWS에서 데이터를 다운로드할 때 GB당 $0.09를 내야 한다는 걸 보고 놀람  
  데이터를 업로드할 땐 무료인데, 다시 꺼내려면 돈을 내야 함?  
  - 이건 **락인 전략**의 일환임. 들어오긴 쉽지만 나가긴 비쌈  
    이번 사례는 NAT 설정 오류로 인해 내부 전송이 외부 전송으로 계산된 특이 케이스임  
  - GB당 9센트는 거의 **휴대폰 요금제 수준의 바가지** 같음. 이런 이유로 Cloudflare가 인기를 얻는 듯함  
  - 업로드는 싸지만 다운로드는 비쌈. 고객이 데이터를 사용자에게 제공할 때마다 AWS가 그 일부를 가져가는 구조임  
  - 소비자용 서비스는 월정액에 포함되지만, AWS는 **직접 비용을 인식하게 만드는 구조**임  
  - “캘리포니아산, 나갈 수는 있지만 떠날 수는 없다”는 농담이 떠오름  

- Amazon이 이런 실수에 대해 환불해주는지 궁금함  
  - 금액과 상황에 따라 다름. 나도 예전에 큰 금액을 환불받았지만, **여러 차례 소명과 재발 방지 계획**을 제출해야 했음  
  - 작성자가 “AWS가 계정 크레딧을 줄지도 모르니 결과를 업데이트하겠다”고 함  
  - 실제로 AWS는 이런 경우 환불해주는 편임. 데이터가 실제로 외부로 나간 게 아닐 가능성이 높기 때문임  
  - 나도 몇 번 환불받은 적 있음. 다만 재발 방지 조건이 붙음  
  - 결국 **고객 규모와 지불 능력**에 따라 다름. 월 20달러 고객은 1천 달러를 못 내지만, 월 3천 달러 고객은 신경 안 씀  

- **VPC NAT Gateway**는 악명 높음  
  예전에 Amazon 재직 중 비슷한 문제를 겪었지만, 회사 계정이라 돈은 안 냈음  
  실제로 돈을 내야 하는 사람들은 정말 안타까움  
  - 개인적으로 NAT 게이트웨이가 왜 이렇게 흔한지 이해가 안 됨. 대부분의 경우 **Internet Gateway**면 충분함  

- 이번 사례에는 직접 도움이 안 되지만, AWS가 어제 **CDN용 정액제 요금제**를 출시함  
  S3 스토리지와 대역폭이 포함된 $0 티어도 있음  
  [관련 링크](https://news.ycombinator.com/item?id=45975411)  
  앞으로 다른 서비스에도 확대되길 기대함  

- 나도 22살 때 인프라를 처음 만지다 **이틀 만에 300달러 요금**을 맞은 적 있음  
  AWS는 훌륭하지만, 초보자에게 **비용 계산이 너무 불투명함**  
  - 왜 그걸 개선하지 않는지 궁금함
