1. AWS网络成本全景认知

在AWS上,计算和存储的成本通常比较直观——实例按小时计费、EBS按GB·月计费,账单条目与资源基本一一对应。但网络成本恰恰相反:它分散在数据传输、跨可用区、NAT网关、VPC对等连接、Direct Connect、CloudFront等多个计费维度中,很多费用在架构设计阶段就已经"注定",等到月末账单出来才发现,往往已经很难快速归因。因此,治理网络成本的第一步不是优化,而是建立一张完整的成本地图:知道钱从哪些维度流出、每个维度的计费触发条件是什么、哪些维度是架构决策决定的、哪些是运行期行为决定的。

一、六个核心计费维度及其触发条件

AWS网络计费可以按"流量发生在哪里"来划分。理解每个维度的关键,是抓住它的计费触发点,而不是记住具体单价(单价随区域、用量阶梯、协议类型变化,应以官方定价页为准)。

  • 数据传输费(Data Transfer):触发点是流量跨越AWS边界。入站流量通常免费,出站到互联网按GB计费,且存在阶梯递减;同区域内不同服务间的流量规则不同,例如S3到EC2在同区域内通常不计费,而EC2到互联网则计费。
  • 跨可用区流量费(Cross-AZ):触发点是流量跨越同一区域内两个可用区。无论方向,只要源和目的AZ不同,双向都计费。这是最容易被忽视的一项——多AZ高可用架构天然产生跨AZ流量。
  • NAT网关费:由两部分组成,一是按小时计的网关存在费,二是按GB计的数据处理费。触发点是私有子网实例通过NAT访问互联网或公网服务。NAT网关是"双重收费"的典型:数据先出NAT(计费),再出互联网(再计费)。
  • VPC对等连接费(Peering):同区域内对等连接按GB计费,跨区域对等连接则同时产生"跨区域数据传输费",单价显著更高。触发点是流量经过对等连接在两VPC之间传输。
  • Direct Connect费:由端口费(按端口速率和类型,小时计)和出站数据传输费组成。触发点是专线端口占用及经专线出站的流量。它的价值在于用固定端口成本换取更低的单位流量成本和更稳定的链路。
  • CloudFront费:由边缘节点出站流量费、请求数费、以及回源流量费组成。触发点是用户从边缘节点获取内容。CloudFront出站单价通常低于EC2直接出站,且回源到S3/EC2的流量在特定条件下可减免。
判断一个流量是否计费,可以问三个问题:是否跨出了某个边界(AZ、区域、AWS网络)?是否经过了某个中间设备(NAT、对等连接、专线端口)?方向是入站还是出站?这三个问题的答案基本能定位到具体计费维度。

二、成本地图:把维度映射到架构位置

把上述六个维度放回典型的三层架构中,就能形成一张"成本地图"。下图展示了流量从互联网用户进入、经过边缘与负载均衡、到达多AZ应用、再访问后端服务与外网的完整路径,并标注了各段路径对应的计费维度。

互联网用户 全球分布 CloudFront 边缘节点 出站+请求数 出站 AWS 区域(Region) ALB 负载均衡 跨AZ分发 回源 可用区 A EC2 应用实例 私有子网 可用区 B EC2 应用实例 私有子网 跨AZ流量费 NAT 网关 存在费+处理费 双重计费 出站互联网 VPC 对等连接 同区域/跨区域计费 Direct Connect 端口费+出站流量费 计费维度速查 CloudFront:边缘出站+请求数+回源 NAT/跨AZ:处理费+存在费,双向计费 对等/专线:按GB或端口+出站计费

这张地图的价值在于:它把抽象的账单条目还原成了具体的架构位置。当账单出现异常时,可以沿着流量路径逐段排查——是边缘出站涨了,还是跨AZ流量涨了,还是NAT处理量涨了。

三、治理优先级:按"可控性×影响面"排序

六个维度并非同等重要。建立优先级时,建议用两个轴来判断:该维度在总网络成本中的占比,以及通过架构或配置调整能压缩的空间。占比高且可压缩空间大的,优先治理。

维度典型成本占比可控手段治理优先级
NAT网关中高VPC端点替代、路由收敛、减少无效出网高
跨AZ流量中高拓扑感知路由、同AZ优先、减少跨AZ调用高
数据传输(出站)高CloudFront前置、压缩、缓存高
VPC对等连接中合并VPC、集中出口、减少跨区域对等中
CloudFront中缓存命中率优化、回源策略中
Direct Connect低到中端口利用率、链路聚合、流量工程中低
优先级不是固定不变的。一个以内部服务调用为主、几乎不面向公网的系统,跨AZ流量可能是最大项;而一个面向全球用户的媒体分发系统,CloudFront和出站流量才是重点。因此,先看自己的账单构成,再套用优先级,不要照搬通用排序。

四、一个可落地的成本地图梳理方法

把上述认知转化为可执行动作,可以按以下方式梳理自己环境的成本地图:

  1. 拉取最近一个完整计费周期的Cost Explorer数据,按"Usage Type"分组,筛选出所有与数据传输、NAT、CloudFront、Direct Connect相关的条目。
  2. 把每条Usage Type映射到架构位置。例如"NatGateway-Bytes"对应NAT网关处理量,"DataTransfer-Regional-Bytes"对应跨AZ流量,"DataTransfer-Out-Bytes"对应互联网出站。
  3. 计算各维度占比,识别出前三大成本项。
  4. 对前三大项分别问三个问题:这部分流量是否必须发生?是否必须走当前路径?是否有更便宜的替代路径(如VPC端点、CloudFront、同AZ路由)?
  5. 形成治理清单,按"改动成本低、预期收益高"排序,先做快速见效项。

举例来说,假设某环境月度网络成本中,NAT网关处理费占35%、跨AZ流量占25%、互联网出站占20%。那么第一优先是检查私有子网访问S3、DynamoDB的流量是否走了NAT——如果走了,改用Gateway VPC Endpoint可以几乎消除这部分NAT处理费;第二优先是检查应用层是否存在大量跨AZ的同步调用,能否通过同AZ优先路由或本地缓存减少;第三优先是评估静态资源是否已接入CloudFront并配置了合理缓存策略。

网络成本治理的本质,不是"少用网络",而是"让流量走对的路"。同样的业务流量,走NAT还是走VPC端点、走跨AZ还是走同AZ、走EC2直出还是走CloudFront,成本可能相差数倍。建立成本地图,就是为了在动手优化之前,先看清每条路的价格。