努力
加油

亚马逊云服务器公网IP的流量费用怎么算?

先纠正一个核心概念:亚马逊 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。

✅ 实战建议:如何控制成本?

  1. 监控账单:

    • 使用 AWS Cost Explorer 设置预算告警,特别是针对 DataTransfer-Out-Bytes 指标。
  2. 避免“裸奔”式公网 IP:

    • 不要给每台 EC2 都分配公共 IP。优先使用私有 IP + 安全组限制 + NAT Gateway 或 ALB 反向XX。
  3. 利用免费套餐(Free Tier):

    • AWS 新用户有 12 个月免费套餐:
      • 750 小时 t2.micro/t3.micro 实例运行时间(刚好够一台小机器跑满一个月)。
      • 每月 100 GB 的数据传出流量(仅限第一个月?不,是每月 100 GB 持续免费,但仅限特定区域和实例类型)。
      • ⚠️ 注意:免费套餐中的 100 GB 出站流量是硬性的,超出的部分按标准价收费。

  4. 使用 Spot Instances 节省算力,但不省流量:

    • Spot 实例便宜,但流量费一样照收。别误以为用了 Spot 就能降低带宽成本。
  5. 考虑使用 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 告警,避免意外高额账单。