2026年云数据出口(Egress)费用优化实战指南:AWS/Azure/GCP三大平台省钱全攻略

数据出口费用通常占云账单的 6%–12%,可大多数团队连"我的 Egress 花在哪里"都答不上来。本指南拆解 2026 年 AWS/Azure/GCP 出口真实价格、NAT Gateway 等隐藏成本,并给出 10 种可立即落地的优化策略。

云Egress费用优化指南2026(AWS/Azure/GCP)

说实话,云数据出口(Data Egress / 数据传出)这笔钱,是公有云账单里最容易被忽视、也最难追踪的成本之一。我之前帮一家做视频处理的客户做 FinOps 复盘,光是这一项就占了月账单的 9% 左右——而他们的工程团队,居然之前从来没有专门看过这个数字。

CloudZero 2025 年的分析也印证了这一点:数据传输费通常占云账单的 6%–12%,但绝大多数 FinOps 团队连"我的 Egress 花在哪里"都说不上来。Cloudflare 甚至直接公开喊话,说三大云厂商把带宽成本溢价到了真实成本的 80 倍。听着夸张,算完账单你就懂了。

那么,这份指南基于 2026 年最新的价格数据,系统性地拆解 AWS、Azure、GCP 三大公有云的出口收费机制、那些藏得很深的"隐性出口费"陷阱,并给出 10 种可以立刻落地的优化策略——包括 EU 数据法案下的迁移豁免、CloudFront/R2/Wasabi 零出口费替代方案、Direct Connect 私连优化等等。

一、什么是云数据出口费用?

简单说,数据出口(Egress)就是指数据从云提供商的网络流出所产生的带宽费用。与之相反的入口(Ingress)流量,在三大公有云上几乎都是完全免费的——这并不是巧合,而是经典的"免费进、付费出"商业模式:把客户的数据吸引进来很容易,搬出去就得让你掏一笔不算小的钱。

常见的计费场景大致有这么几类:

  • 面向公网的下载:终端用户访问 S3/Blob/Cloud Storage 中的图片、视频、API 响应
  • 跨区域(Cross-Region)传输:比如 us-east-1 → eu-west-1 的灾备复制
  • 跨可用区(Cross-AZ)传输:同一 Region 内不同 AZ 之间的微服务互相调用
  • 跨云迁移:把数据从 AWS 搬到 GCP,或者干脆回迁本地数据中心
  • VPC 出口:经由 NAT Gateway 访问外部 API、包管理仓库(这条特别容易被忽略)

二、2026 年三大云出口价格对比

2.1 公网出口阶梯价(US East 区域)

提供商首阶梯价大流量价(50TB+)免费额度/月
AWS$0.09/GB(前 10 TB)$0.05/GB(150TB+)100 GB
Azure$0.087/GB(前 5 TB)$0.04/GB(50TB+)100 GB
GCP$0.12/GB(前 1 TB)$0.08/GB(10TB+)100 GB
Cloudflare R2$0.00/GB$0.00/GB无限
Wasabi$0.00/GB$0.00/GB无限
Backblaze B2$0.01/GB$0.01/GB3× 存储量免费

关键结论:AWS 在 2025 年底把所有 Region 的免费传出额度从 1 GB 提升到 100 GB/月,跟 Azure、GCP 拉齐了。听起来挺友好,但对真实生产负载来说,这点额度通常几个小时就被吃干净——所以别拿它当优化手段。

2.2 一个 10 TB/月 SaaS 应用的真实成本

# 以 10 TB/月 公网出口为例(US East)
AWS:           $912 / 月  ($10,944 / 年)
Azure:         $868 / 月  ($10,416 / 年)
GCP:           $1,221 / 月($14,652 / 年)
Backblaze B2:  $102 / 月  ($1,224 / 年)
Cloudflare R2: $0 / 月    ($0 / 年)

同一份"把数据交付给自己的用户"的需求,跑在 GCP 上一年要多花 $13,000+;而切换到 R2,则能省下差不多 $11,000。一行架构决策的成本差距,比很多团队的年度团建预算还大。

2.3 跨区域复制(Cross-Region Replication)

跨区域流量是出口费用里的"定时炸弹"——AWS 与 Azure 跨 Region 传输的单价是 $0.02/GB,GCP 大陆内大约 $0.02/GB,洲际更贵。

# 灾备场景:500 TB/月 跨美国区域复制
AWS  (us-east-1 ↔ us-west-2):  500,000 × $0.02 = $10,000 / 月 = $120,000 / 年
GCP  (us-central1 ↔ us-east1): 500,000 × $0.01 = $5,000 / 月  = $60,000 / 年
差异:仅"选择哪家做灾备"一个架构决策,每年差距 $60,000+

三、最容易踩坑的 7 类隐藏出口费

3.1 NAT Gateway 数据处理费

除了正常的 Egress 单价,NAT Gateway 还要再额外收 $0.045/GB 的数据处理费。一条 SQL 镜像下载、一个微服务通过 NAT 调第三方 API,都可能让你以接近双倍的价格付费(而你看账单的时候,可能压根没意识到)。

# 修复方案:为常用 AWS 服务启用 VPC Endpoint(Gateway 类型免费)
aws ec2 create-vpc-endpoint \
    --vpc-id vpc-0abc123 \
    --service-name com.amazonaws.us-east-1.s3 \
    --route-table-ids rtb-0xyz789

# 验证:流量应转为 VPC 内部,不再经过 NAT
aws ec2 describe-vpc-endpoints --filters Name=vpc-id,Values=vpc-0abc123

3.2 跨可用区调用(Cross-AZ)

同一 Region 内、不同 AZ 之间的流量,按 $0.01/GB 双向计费(出 + 入都算)。一个微服务架构如果没做 AZ 亲和(zone-aware routing),所有调用都可能"随机跨 AZ"——账单可以无声膨胀 30%。

3.3 公网 IP 与 IPv4 地址费

从 2024 年起,AWS 对所有 公网 IPv4 地址都开始按 $0.005/小时(约 $3.6/月/地址)收钱,不管你用没用它。一个有 200 个公网 IP 的环境每个月白白浪费 $720

3.4 跨账户 / 跨组织传输

把数据从主账户的 S3 传到子账户的 EC2,即使两个账户在同一 Region,也算出口。Organizations 模式下的中央日志收集,是经典的踩坑场景。

3.5 S3 跨区域复制(CRR)

开启 CRR 之后,每个对象的复制都按标准 Egress 计费。10 TB/月 us-east-1 → eu-west-1 的复制大概 $900/月——并且这种东西最容易"开了就忘"。

3.6 监控与日志的回传

把 CloudWatch Logs 通过 Subscription Filter 推到外部 SIEM(Splunk/Datadog)这类操作会产生大量出口流量;建议先在 Region 内聚合,再以压缩批次发出。

3.7 容器镜像拉取

从 Docker Hub / GitHub Container Registry 拉镜像走 NAT,每次 Pod 启动都在烧钱。改成 ECR/ACR/GAR 这类 Region 内私有镜像源,能直接把这条线消掉。

四、10 种实战出口费用优化策略

4.1 把面向公网的流量挪到 CDN 后面

S3 → 用户 直接出口大约 $0.09/GB;S3 → CloudFront → 用户 实测可降到 $0.02–$0.05/GB,而且 S3 → CloudFront 那一段流量是完全免费的。一般能省下 40%–60% 的对外流量费——属于"动几行 Terraform 就回本"的那种改造。

# Terraform:把 S3 桶套上 CloudFront
resource "aws_cloudfront_distribution" "site" {
  origin {
    domain_name = aws_s3_bucket.assets.bucket_regional_domain_name
    origin_id   = "s3-assets"
    s3_origin_config {
      origin_access_identity = aws_cloudfront_origin_access_identity.oai.cloudfront_access_identity_path
    }
  }

  enabled             = true
  default_root_object = "index.html"

  default_cache_behavior {
    target_origin_id       = "s3-assets"
    viewer_protocol_policy = "redirect-to-https"
    allowed_methods        = ["GET", "HEAD"]
    cached_methods         = ["GET", "HEAD"]
    compress               = true   # 自动 gzip/br,可再降 20%-40% 流量
    min_ttl                = 0
    default_ttl            = 86400
    max_ttl                = 31536000
    forwarded_values {
      query_string = false
      cookies { forward = "none" }
    }
  }

  price_class = "PriceClass_100"  # 仅北美/欧洲,进一步降单价
  restrictions { geo_restriction { restriction_type = "none" } }
  viewer_certificate { cloudfront_default_certificate = true }
}

4.2 启用 VPC Gateway Endpoint(S3 / DynamoDB)

Gateway 类型 Endpoint 完全免费,可以消除 S3 / DynamoDB 经由 NAT Gateway 的全部数据处理费。坦白说,这是几乎所有 AWS 用户都该立刻去做的一项改动,零成本零风险。

4.3 利用 Direct Connect / ExpressRoute / Cloud Interconnect

对于大于 10 GB/月的稳定专线流量,专线价格通常是 $0.02–$0.03/GB,比公网出口低 60% 以上,延迟还更低。混合云架构基本上必选。

4.4 启用压缩与协议优化

对 JSON/HTML/JS 启用 Brotli / gzip 压缩,平均流量能下降 20%–40%。HTTP/2、HTTP/3(QUIC)的多路复用还能减少重复 header 的体积。

# Nginx:启用 Brotli + gzip 双压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_min_length 1024;

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml;

4.5 应用层缓存与边缘计算

用 Redis/Memcached 缓存热点查询,配合 Cloudflare Workers / Lambda@Edge 在边缘直接返回响应,尽量避免回源。这套组合能减少 30%–50% 的源站出口。

4.6 切换到零出口费对象存储

对外提供下载的存量数据(用户上传、备份、ML 数据集),可以考虑迁到 Cloudflare R2 或 Wasabi。R2 提供 S3 兼容 API,迁移的代码改动一般就是替换一下 endpoint:

# Python boto3 切换到 R2 仅需改 endpoint_url
import boto3

r2 = boto3.client(
    's3',
    endpoint_url='https://<account-id>.r2.cloudflarestorage.com',
    aws_access_key_id='YOUR_R2_KEY',
    aws_secret_access_key='YOUR_R2_SECRET',
    region_name='auto',
)

# 接下来的 API 与 S3 完全一致
r2.put_object(Bucket='assets', Key='hello.txt', Body=b'hi')

4.7 利用 EU 数据法案下的迁移免费政策

响应欧盟《数据法案》(Data Act),AWS、Azure、GCP 在 2024 年都宣布对"完整搬出云"的客户免除出口费。如果你正在评估跨云迁移、或者部分回迁本地,一定要先去申请这项豁免——单次能省下几千到几百万美元不等。

注意一点:这个豁免只适用于"完全终止使用某项服务"的迁移,常规业务出口不在范围内。要走 AWS Support 工单单独申请(其他云类似)。

4.8 区域亲和(Same-AZ Routing)

用 EKS Topology Aware Routing、Istio LocalityLBSetting、ALB 的 zonal shift 等机制,让微服务优先去调用同一 AZ 里的副本。一个标准三 AZ 集群跑下来,能减少 约 67% 的跨 AZ 流量。

# Kubernetes Service:启用 Topology Aware Routing
apiVersion: v1
kind: Service
metadata:
  name: payment-svc
  annotations:
    service.kubernetes.io/topology-mode: Auto   # 1.27+ 推荐
spec:
  selector:
    app: payment
  ports:
    - port: 80

4.9 用 GCP 的"同区域 GCS → GCE 免费"特性

GCP 有一个不太常被提及的优势:同 Region 内 Cloud Storage → Compute Engine 完全免费。对于 ML 训练、批量分析这类要从对象存储读大量数据到计算节点的场景,这一条等于直接抹掉了一笔常态化的开销。AWS 上同样路径(S3 → EC2 in same Region)虽然不收公网出口费,但 NAT/PrivateLink 的路径还是可能收数据处理费——所以 PoC 阶段值得拿 GCP 跟 AWS 对比一下。

4.10 持续监控:建立 Egress 可观测性

用 AWS Cost Explorer 按 UsageType 维度过滤包含 DataTransfer-Out-BytesNatGateway-Bytes 的项目,再按 Tag 拆分到团队/服务层级。我个人的习惯是每周让 Cron 自动出一份"Top 10 Egress 服务"报告丢到 Slack——人盯着不靠谱,但每周一封邮件你总会瞄两眼。

# AWS CLI:拉取过去 30 天的数据传出成本,按服务拆分
aws ce get-cost-and-usage \
  --time-period Start=2026-04-01,End=2026-05-01 \
  --granularity MONTHLY \
  --metrics "UnblendedCost" \
  --filter '{"Dimensions": {"Key": "USAGE_TYPE_GROUP", "Values": ["EC2: Data Transfer - Internet (Out)"]}}' \
  --group-by Type=DIMENSION,Key=SERVICE

五、决策树:什么时候用什么策略

  • 对外公开静态资源(图片/视频/JS/CSS)→ CDN(CloudFront/Cloud CDN/Azure CDN)
  • 面向终端用户的大文件下载(安装包、ML 模型)→ Cloudflare R2 / Wasabi
  • VPC 内访问 S3/DynamoDB → VPC Gateway Endpoint(必做,免费)
  • 本地数据中心 ↔ 云之间稳定 >10GB/月 → Direct Connect / ExpressRoute
  • 跨 AZ 微服务调用 → Topology Aware Routing + Service Mesh
  • 跨 Region 灾备 → 重新评估 RPO;选 GCP 的洲内复制通常更划算
  • 整体迁出某云 → 申请 EU Data Act 出口费豁免

六、可立即执行的检查清单

  1. 在 AWS Cost Explorer 按 USAGE_TYPE_GROUP = "Data Transfer" 过滤本月账单,识别 Top 5 来源
  2. 检查所有 VPC 是否启用了 S3 / DynamoDB Gateway Endpoint(无成本,立即生效)
  3. 对所有面向公网的 S3/Blob 桶接入 CDN,并启用 Brotli/gzip
  4. 审计 NAT Gateway 流量来源——容器镜像拉取、第三方 API 调用是不是可以走私有路径
  5. 检查 S3 Cross-Region Replication 是不是还有"开了就忘"的桶
  6. 清理未使用的 Elastic IP、公网 IPv4 地址
  7. 对超过 5 TB/月的对外流量,评估迁到 R2/Wasabi 的可行性
  8. 每个季度复查跨 AZ / 跨 Region 流量趋势;预算偏差超过 20% 直接触发告警

七、常见问题 FAQ

Q1:数据上传(Ingress)会收费吗?

AWS、Azure、GCP 三大公有云的入口流量全部免费。但要注意:上传到 S3 之后再"读出来"做处理(比如 Athena 查询、Glue ETL)是会按出口、或者服务自身的数据处理费收的。免费只针对"网络入口"这一阶段,别误解了。

Q2:CloudFront 的流量也算 S3 出口费吗?

不算。S3 → CloudFront 之间的传输是完全免费的。你只需要支付 CloudFront 出向终端用户的那一段流量费——价格通常比 S3 直接出公网便宜 40%–60%。这是降低 S3 出口费最划算的单步操作,没有之一。

Q3:什么是 EU 数据法案的"出口费豁免"?我能用吗?

欧盟 2024 年正式实施的《Data Act》要求云厂商不得用出口费来阻碍客户切换提供商。AWS、Azure、GCP 据此对完全终止使用其服务、把数据搬到另一家云或本地的客户提供出口费豁免。这个政策面向全球客户(不只是欧盟),但仅适用于"彻底搬走"的场景,常规业务出口不在范围内。需要通过云厂商工单或客户经理申请。

Q4:跨 AZ 流量到底是不是出口?

从计费视角看,同 Region 跨 AZ 的流量按 $0.01/GB 双向计费(一来一回,总共 $0.02/GB)。它在账单上一般归到 RegionalDataTransfer 而不是 Egress,但实际效果是一样的——所以高吞吐微服务一定要做 AZ 亲和。

Q5:Cloudflare R2 是不是真的"零出口费"?背后的代价是什么?

R2 对所有公网出口确实是 $0/GB。它通过收较高的 Class A 写操作($4.5/百万次)和存储费($0.015/GB·月)来补这个口子。对读多写少、对外分发为主的负载(媒体、SaaS 资源、ML 数据集分发)非常划算;但对写入极频繁的场景(比如日志聚合),反而可能比 S3 还贵。建议先拿真实月度访问模式做一次 TCO 测算再决定迁不迁。

结语

云出口费用是一项"看不见才致命"的成本——它没有醒目的预算告警、也没有显式的资源标签,但每个月都在持续蚕食你的云账单。

2026 年的好消息是:CDN 价格更低了、零出口费替代方案趋于成熟、监管层面的迁移豁免也终于落地。先拿本指南的检查清单做一次出口费体检,把那些"低垂的果实"(VPC Endpoint、CDN、压缩、AZ 亲和)摘完,往往就能把出口费砍掉一半以上。剩下那一半,就是真正考验架构功力的部分了。

文章更新记录 (1)
  • — SEO meta refreshed (title and description updated)
关于作者 Marcus Okafor

Marcus ran the cloud platform team at Monzo for three years, where he cut the bank's GCP spend by 38% after migrating BigQuery workloads from on-demand to slot reservations and rewriting a Dataflow job that was quietly burning $14k/month on idle workers. Before Monzo he was a site reliability engineer at Zalando in Berlin, working on Kubernetes capacity planning across 1,400+ namespaces. He is GCP Professional Cloud Architect certified, CKA certified, and has nine years of operational experience across GKE, EKS, and a brief, regrettable stint with AKS in 2019. He maintains a small open-source tool called `kube-waste` that flags overprovisioned requests/limits across a cluster. Marcus writes about Kubernetes cost attribution, BigQuery query optimization, and the specific kind of organizational pain that shows up when finance and engineering both think they own the cloud bill. Based in London.