文章摘要
作者分享了一个昂贵的AWS使用教训:由于未配置VPC终端节点,导致S3数据传输通过NAT网关产生高额费用。尽管作者有近20年AWS使用经验,这次疏忽仍造成了1000美元损失。文章警示即使经验丰富的用户也需注意AWS数据传输成本问题。
文章总结
标题:价值1000美元的AWS教训:缺失的VPC终端如何让S3数据传输变成昂贵一课
一位资深AWS用户分享的惨痛经历:由于未配置VPC终端网关,导致通过NAT网关的S3数据传输产生了巨额费用。
背景: 作者所在公司Geocodio近期将大型地理数据集(包括地址点、边界数据和人口普查信息等)迁移至AWS S3存储。这些单文件从几GB到数百GB不等,需要定期从Hetzner托管的ETL平台同步至AWS处理基础设施。
成本误区: 作者事先确认了两个关键信息: 1. 同区域EC2与S3间传输免费 2. S3的入站传输免费
但忽略了关键配置: 当VPC使用NAT网关时(多数生产环境如此),S3请求默认仍会经过NAT网关,产生每GB 0.045美元的费用。
问题爆发: 部署新同步流程几天后,AWS成本异常检测发出警报: - 单日NAT网关数据传输20,167.32GB - 单日费用高达907.53美元 - 当月累计已超1000美元
根本原因: 未配置S3的VPC网关终端(Gateway Endpoint),导致所有S3流量都经过收费的NAT网关。
解决方案: 创建免费的S3网关终端,通过Terraform添加以下配置: 1. 网关终端资源 2. 路由表关联 这样S3流量将直接传输,完全绕过NAT网关。
经验教训: 1. 务必启用AWS成本异常检测 2. 使用VPC终端网关(完全免费且提升性能) 3. 用小规模数据测试验证假设 4. 即使有近20年经验,AWS网络配置仍可能暗藏陷阱
后续措施: 作者团队已全面审计AWS基础设施,确保所有与S3通信的VPC都配置了网关终端。
核心建议: NAT网关会对所有经过的数据收费(包括本应免费的AWS服务间传输)。使用VPC终端可避免此类问题。
(注:原文中的图片链接、扩展阅读链接等辅助内容已根据要求略去,保留了核心的技术细节和事件经过)
评论总结
以下是评论内容的总结:
1. 对AWS高额费用的不满
- 用户抱怨AWS的NAT网关和数据传输费用高昂,认为这是云服务商设置的"陷阱"。
- "NAT gateway probably cheap as fuck for Bezos & co to run but nice little earner." (评论3)
- "AWS charges $0.09 per GB for data transfer out to the internet... adds up fast when you're moving terabytes of data." (评论6)
2. 对AWS默认设置的批评
- 多个用户指出AWS默认不配置S3端点,导致用户产生意外高额费用。
- "I have never understood why the S3 endpoint isn't deployed by default, except to catch people making this exact mistake." (评论7)
- "This happens so often that the S3 VPC endpoint should be setup by default when your VPC is created." (评论21)
3. 对云服务模式的质疑
- 部分用户认为云计算是"骗局",实际成本高于传统IT管理。
- "the 'cloud' is a racket... Instead of paying x on sysadmin salaries, you pay 5x to mega corps" (评论16)
- "bad for the environment, bad for industry practices and bad for wealth accumulation & inequality" (评论16)
4. 个人遭遇的惨痛经历
- 多位用户分享了自己因AWS计费问题遭受重大经济损失的经历。
- "AWS was charging me over 1K/month... That was about 5K in weekend earnings gone." (评论17)
- "I made the same mistake and blew $60k." (评论7)
5. 对费用管控的呼吁
- 用户希望云服务商提供硬性消费上限功能。
- "Are there any cloud providers that allow a hard cap on dollars spent per day/week/month?" (评论18)
- "SHUT EVERYTHING DOWN IF COSTS EXCEED $50" (评论20)
6. 替代方案建议
- 用户提出多种降低AWS成本的解决方案。
- "Abolish NAT Gateways. Lean on gateway endpoints... All free." (评论22)
- "consider using fck-nat... you will save on per-Gb traffic charges." (评论21)
7. 对AWS的辩护
- 少数用户认为这些问题属于基础架构常识,不应完全归咎于AWS。
- "what is one of the most basic scenarios discussed in every Architecture class from AWS" (评论10)
- "The platform has come a long way since then." (评论19)