先纠正一个核心概念:亚马逊 AWS 并没有直接叫“亚马逊云服务器”的产品,它对应的服务是 EC2(Elastic Compute Service)。 另外,AWS 的公网 IP 流量计费逻辑和国内云厂商(如阿里云、腾讯云)有显著差异,很多从国内转战 AWS 的开发者容易在这里踩坑。
下面我把 AWS EC2 公网 IP 相关的费用拆解清楚,主要涉及三个部分:数据传出(Outbound Data Transfer)、弹性公网 IP(EIP)持有费、以及负载均衡/网关等附加组件。
1. 数据传出费用(Data Transfer Out)—— 大头支出
这是最容易被忽视的费用。AWS 对 入站流量(Inbound) 通常是免费的(除了少数特定场景),但对 出站流量(Outbound) 收费。
计费规则:
- 按 GB 阶梯计价:用量越大,单价越低。
- 按区域不同价格不同:美东、亚太、欧洲等区域单价略有差异。
- 默认绑定到 EIP 或公共 IP:只要你的 EC2 实例分配了公网 IP(无论是自动分配的公共 IP 还是手动绑定的弹性公网 IP EIP),产生的出站流量都算这笔钱。
大致价格参考(以美东 us-east-1 为例,具体以官网最新为准):
| 每月流出数据量 | 单价(USD/GB) |
|---|---|
| 前 10 TB | $0.09 |
| 10 – 50 TB | $0.085 |
| 50 – 100 TB | $0.07 |
| 100+ TB | $0.05 |
⚠️ 注意:如果你只是做小网站、API 测试,月流量几百 GB,费用可能只有几美元。但如果是视频流、大文件下载、CDN 回源等高流量场景,这个费用会迅速飙升。
如何省钱?
- 使用 CloudFront CDN:将静态资源放在 S3 + CloudFront,CloudFront 的流量单价远低于 EC2 直接出站(约 $0.085/GB 起,但有免费额度且全球节点分摊)。
- 使用 VPC Endpoints:如果 EC2 需要访问 AWS 内部服务(如 S3、DynamoDB),通过私有端点访问可免除跨 AZ 或公网的数据传输费。
- 内网传输免费:同一 Region 内不同可用区(AZ)之间的 EC2 互访,如果使用私有 IP,不产生公网流量费;但如果走公网 IP,则收费。
2. 弹性公网 IP(EIP, Elastic IP)持有费 —— “占坑费”
AWS 鼓励你使用 弹性公网 IP(EIP),因为它可以动态绑定和解绑,方便故障转移和高可用架构。但 AWS 有一个反直觉的规则:
如果你绑定了 EIP 的 EC2 实例正在运行,EIP 本身免费。
但如果你解绑了 EIP,或者绑定了 EIP 但 EC2 实例处于停止(Stopped)状态,AWS 会对未使用的 EIP 收取每小时 $0.005 的费用。
为什么这么设计?
防止用户滥用公网 IP 资源。AWS 的公网 IPv4 地址是稀缺资源,他们希望你只保留真正在用的 IP。
常见误区:
- 很多人以为“我不用了就删掉”,但如果操作不当(比如没解绑就直接终止实例),残留的 EIP 会继续扣费。
- 建议:用完即解绑,并确认控制台显示该 EIP 为“未关联”状态后,再删除或释放。
3. 其他相关网络组件费用
如果你的架构更复杂,还会涉及以下费用:
A. NAT Gateway / Internet Gateway
- Internet Gateway(IGW):免费。用于 VPC 整体出网。
- NAT Gateway:收费!
- 按小时计费:约 $0.045/小时(取决于区域)。
- 按数据处理量计费:$0.045/GB。
-
💡 如果你是单台 EC2 用公共 IP 直连互联网,不需要 NAT Gateway。只有当多个私有子网的 EC2 需要通过单一出口上网时,才需要 NAT Gateway。
B. Load Balancer(ELB/ALB/NLB)
- 如果你在前端加了 Application Load Balancer(ALB),它会收取:
- 按小时费:约 $0.0225/小时。
- LCU(Load Balancer Capacity Units):根据请求数、新建连接数、处理数据量计算,每 LCU 约 $0.008。
-
💡 ALB 也会产生出站流量费,但通常由后端 EC2 承担部分或全部,具体看配置。
C. Cross-AZ Traffic(跨可用区流量)
- 如果用户访问的是位于 us-east-1a 的 EC2,而 DNS 解析到了 us-east-1b 的 EC2,中间经过 ELB 或路由器的流量会产生跨 AZ 数据传输费,约 $0.01/GB。
✅ 实战建议:如何控制成本?
-
监控账单:
- 使用 AWS Cost Explorer 设置预算告警,特别是针对
DataTransfer-Out-Bytes指标。
- 使用 AWS Cost Explorer 设置预算告警,特别是针对
-
避免“裸奔”式公网 IP:
- 不要给每台 EC2 都分配公共 IP。优先使用私有 IP + 安全组限制 + NAT Gateway 或 ALB 反向XX。
-
利用免费套餐(Free Tier):
- AWS 新用户有 12 个月免费套餐:
- 750 小时 t2.micro/t3.micro 实例运行时间(刚好够一台小机器跑满一个月)。
- 每月 100 GB 的数据传出流量(仅限第一个月?不,是每月 100 GB 持续免费,但仅限特定区域和实例类型)。
-
⚠️ 注意:免费套餐中的 100 GB 出站流量是硬性的,超出的部分按标准价收费。
- AWS 新用户有 12 个月免费套餐:
-
使用 Spot Instances 节省算力,但不省流量:
- Spot 实例便宜,但流量费一样照收。别误以为用了 Spot 就能降低带宽成本。
-
考虑使用 AWS WAF + Shield:
- 如果担心 DDoS,Shield Advanced 是按小时收费的,而 Basic 防护是免费的,但带宽攻击可能导致巨额流量费。
📌 总结
| 项目 | 是否收费 | 说明 |
|---|---|---|
| 入站流量(Inbound) | ❌ 免费 | 绝大多数情况免费 |
| 出站流量(Outbound) | ✅ 收费 | 按 GB 阶梯计价,量大价低 |
| 弹性公网 IP(EIP)绑定中 | ❌ 免费 | 仅当实例运行时免费 |
| 弹性公网 IP(EIP)未使用 | ✅ 收费 | $0.005/小时,防止资源浪费 |
| NAT Gateway | ✅ 收费 | 按小时 + 按 GB 计费 |
| 负载均衡器(ALB/NLB) | ✅ 收费 | 按小时 + LCU 计费 |
一句话建议:对于个人开发者或小项目,尽量复用公网 IP,减少 EIP 数量,优化应用以减少不必要的数据传出,同时开启 AWS Budgets 告警,避免意外高额账单。
云技术博客