企业出海多云统一出网架构实战:NAT 网关 + 私网访问 + 出口审计完整指南(2026最新版)

📅 · ChengziCloud - 一站式云端服务

Meta Description: 出海企业多云出网怎么设计?本文用三层模型(统一出口 / 私网访问 / 出口审计)讲清 NAT 网关选址与真实计费、CEN 传输路由器共享出口、VPC 端点与 PrivateLink 私网访问、出网白名单与会话日志落地,附 AWS / 阿里云 / 腾讯云三云单价对比与成本测算。

> 关键词: 多云出网架构、NAT 网关、私网访问、PrivateLink、VPC 端点、出口审计

出海企业的多云架构里,入站流量(DNS、GSLB、WAF、负载均衡)几乎人人都做了设计,出站流量却常常是"每建一个 VPC 就随手点一个 NAT 网关"的默认结果。结论先说:出网这一半的架构,正确的决策顺序是 先消除、再私网化、最后才用 NAT——① 能走云内网端点的流量(对象存储、日志、镜像、密钥)一律不走 NAT;② 必须访问第三方服务时优先用私网端点(PrivateLink / 终端节点服务)而不是公网;③ 剩下真正"无规则访问互联网"的流量才收敛到 NAT 网关,并且用统一出口 + 出口白名单 + 会话日志把它的成本与风险同时关进笼子。这三步做完,出网账单通常能降三到五成,而且审计口径一次到位。

本文只讲"向北"这一半:与站点既有文章的分工

site7 已经有 60+ 篇企业级文章,出网话题天然与其中若干篇相邻。为避免混读,先明确边界:

| 既有文章 | 它解决的问题 | 与本文的关系 | |---|---|---| | 2026-09-04 网络互通与 Transit 架构(Hub-Spoke + SD-WAN) | VPC 之间的东西向互通(TGW / CEN / CCN) | 本文讲南北向出网;东西向只引用不展开 | | 2026-08-20 多云 DNS 与全局流量调度(GSLB) | 入站流量的解析与调度 | 方向相反,不重复 | | 2026-08-27 多云 WAF + API 网关安全架构 | 入站三层防护(DDoS → WAF → API 网关) | 方向相反,不重复 | | 2026-08-12 GDPR 数据跨境传输技术落地 | 数据跨境的合规链路(SCC / 加密 / 脱敏) | 本文讲日常出网链路的治理与计费,跨境合规沿用其结论 | | 2026-08-25 多云零信任网络架构 | 身份与设备维度的访问控制 | 本文是网络出口维度,身份层只做衔接 | | 2026-09-17 多云安全运营中心(SIEM + SOAR) | 日志集中采集、检测与响应动作 | 本文只讲出口侧审计数据怎么产生并送出,检测响应不展开 |

本文只讲一件事:出网链路怎么设计、怎么省钱、怎么被审计。

一、为什么"出网"是多云架构里最容易失控的一半

三个真实症状,几乎每家出海企业都至少中过一个:

1. 账单上多出一堆不认识的小 NAT 网关。每个账号、每个 VPC、每个测试环境都有一套 NAT 网关,其中一大半挂在那里没人用——但闲置的 NAT 网关照样按小时计费。 2. 出网流量费用被"整点取整"吃掉。阿里云官方文档明确写着"使用不足一小时的按一小时计费",AWS 也是"每个部分 NAT 网关小时按整小时计费"。一个用于临时调试的网关开了 10 分钟,账上算 1 小时。 3. 审计时说不清"谁在什么时候访问了哪里的什么服务"。默认安全组出站全放行,出网没有白名单、没有域名级日志,一旦发生数据外泄,只能靠猜。

根因是同一个:出网被当成了"顺手做的事",而不是一条需要架构的链路。 入站链路因为对外可见、出错会立刻被用户发现,所以人人做设计;出网链路线性增长、出事往往滞后几周才被账单或合规检查翻出来,于是被默认放行。

还有一个容易被忽略的结构性事实:NAT 网关不是网络设备,它是一台按小时计费 + 按处理流量计费的托管服务。AWS 对 NAT 网关的计费由两段组成——每小时实例费 + 每 GB 数据处理费,且官方特别注明"通过 NAT 网关传输的所有数据还会产生标准 AWS 数据传输费用"。也就是说,同一 GB 流量在你眼里是"一次出网",在账单上可能要出现三次。想明白这一点,后面所有优化动作的优先级就自然清楚了。

二、出网架构的三层模型

把出网拆成三层之后,每个决策都能落到具体一层,不会再出现"既要省钱又要合规"这种无法执行的讨论:

| 层 | 回答的问题 | 主要组件 | 三云对应产品 | |---|---|---|---| | 出口层 | 谁可以出网、从哪个 IP 出网、多大带宽 | NAT 网关、SNAT 条目、EIP、公网带宽 | AWS NAT Gateway · 阿里云 NAT 网关 · 腾讯云 NAT 网关 | | 私网访问层 | 有什么流量根本不需要出网 | 网关型端点、接口型端点、终端节点服务 | AWS VPC Endpoint / PrivateLink · 阿里云私网连接 PrivateLink · 腾讯云私有网络内网访问 | | 审计层 | 出网留下了什么痕迹、发给谁了 | 流日志、NAT 会话日志、代理访问日志、出向策略 | AWS VPC Flow Logs · 阿里云 NAT 网关日志与流日志 · 腾讯云流日志 |

三层的关系是漏斗而不是并列:每一层都在尝试把流量从上一层"捞掉"。审计层则是唯一一层必须与出口层对齐的——你要能不能答出"过去 90 天这个 VPC 访问过哪些公网域名",取决于出口层有没有做收敛。

一次出网请求的完整决策路径

`mermaid graph TD A[业务进程发起连接] --> B{目的地是云内服务吗} B -->|是 对象存储/日志/镜像/密钥| C[走网关型端点 Gateway Endpoint] B -->|否| D{目的地是第三方服务且支持私网互通吗} D -->|是| E[走接口型端点 Interface Endpoint / PrivateLink] D -->|否| F[走统一出口 NAT 网关 + EIP] C --> G[不出网: 零数据处理费 零公网流量] E --> G F --> H[公网出口: 实例费 + 数据处理费 + 传输费] F --> I[出口审计: 流日志 + 会话日志 + 域名白名单] `

多云统一出口的物理拓扑

` ┌───────────────── 新加坡区域 (ap-southeast-1) ─────────────────┐ │ │ │ ┌── VPC-A 业务 ──┐ ┌── VPC-B 业务 ──┐ │ │ │ 私网子网 │ │ 私网子网 │ │ │ │ 无公网 IP │ │ 无公网 IP │ │ │ └────────┬───────┘ └────────┬───────┘ │ │ │ 默认路由 0.0.0.0/0 │ │ │ └───────────┬───────────────┘ │ │ ▼ │ │ ┌──────── 共享出口 VPC / 传输路由器 ────────┐ │ │ │ ┌── NAT 网关 AZ-a ──┐ ┌── NAT 网关 AZ-b ──┐│ │ │ │ └─────────┬─────────┘ └─────────┬─────────┘│ │ │ └────────────┼─────────────────────┼──────────┘ │ │ └──────────┬──────────┘ │ │ ▼ │ │ ┌── EIP + 公网带宽 ──┐ │ │ └─────────┬──────────┘ │ └──────────────────────────────┼────────────────────────────────────┘ ▼ Internet / 第三方 SaaS `

这张图里有两个反直觉的要点:业务 VPC 里不应该有任何公网 IP(连 EIP 都不需要),出网是"借道"共享出口;而共享出口这一层必须是多可用区的,否则它就成了整个云上架构的单点。

三、统一出口的两条实现路径

路径 A:每个 VPC 各自建 NAT 网关(默认形态)

这是控制台引导出来的默认结果。优点是故障域天然隔离(一个 VPC 的出口挂了不影响别人)、架构简单、责任清晰;缺点是网关数量随 VPC 数量线性增长,小时费叠加,而且安全与审计团队要面对 N 套出口策略

路径 B:共享出口(Transit Router / 对等连接 + 单组 NAT 网关)

三大云厂商都把它写成了官方推荐用法:

- 阿里云的做法最直白,文档就叫《统一公网出口》(Unified Internet egress):用一个 CEN 实例里的企业版转发路由器(transit router)把多个 VPC 的流量汇聚到一个 Internet NAT 网关上,官方原话是"centralizes internet egress and removes the need to create a separate NAT gateway for each VPC"。前置条件是先建 VPC/vSwitch、建 CEN 实例、在目标地域建企业版转发路由器。 - AWS 的等价形态是"中心 VPC + Transit Gateway + 集中式 NAT Gateway",出网 VPC 的路由表把 0.0.0.0/0 指向 TGW。 - 腾讯云的官方文档里也有对应做法:《Enabling Cross-VPC Access to Public Network via Standard NAT Gateway》(文档 1015/61768),即通过标准型 NAT 网关为跨 VPC 的场景提供公网出口。

两种路径的选择表

| 维度 | 每 VPC 一个 NAT 网关 | 共享统一出口 | |---|---|---| | 网关小时费 | 按 VPC 数量线性增长 | 一个(或一组)即可 | | 故障爆炸半径 | 小,单 VPC 级 | 大,全公司级 | | 可用区冗余 | 各自控制 | 必须由出口层统一承担 | | 出网审计聚合度 | 低,N 套日志 | 高,一处即可全量留痕 | | 分账难度 | 低(网关即归属) | 中,需依赖标签与流日志归属 | | 流量上限风险 | 分散 | 集中,需盯 CU / 连接数上限 | | 适用规模 | 3~5 个 VPC、团队边界清晰 | 5 个以上 VPC、需统一合规口径 |

结论:VPC 数量少于 5 个、且各业务线独立核算时,路径 A 的简单就是优势,不要为了"统一"硬造共享出口。反之,一旦超过 5 个 VPC,或者合规要求"全公司出网流量可审计",路径 B 几乎是唯一可行解——但必须同时补上三件事:多可用区 NAT、CU/连接数上限与突增告警、按标签的分账归因。少了任何一件,共享出口都会从"省钱"变成"最大的单点故障"。

四、NAT 网关怎么选、怎么算钱

计费永远是三段式

不管在哪家云,出网成本都由三段构成,只是第二、三段被计费的位置不同

出网总价 = 网关实例小时费 + 数据处理费(CU / GB) + 公网传输费(EIP 带宽或数据传出)

AWS 的公开单价(真实取自官方定价页)

| 计费项 | 单价 | 说明 | |---|---|---| | NAT 网关实例费 | $0.045 / 小时 | 置备即计费,部分小时按整小时计 | | NAT 网关数据处理费 | $0.045 / GB | 不区分流量方向与源/目的 | | 区域型 NAT 网关 | $0.045 / 小时 / 可用区 | 跨 3 个 AZ 即 3 个"网关小时";AZ 支持被移除后自动停止该 AZ 计费 | | 标准数据传输费 | 另计 | 官方原文:经由 NAT 网关传输的所有数据仍产生标准 AWS 数据传输费用 | | 公网 IPv4 地址 | $0.005 / 小时 | 在用与闲置同价,闲置也照收 | | 网关型端点(S3 / DynamoDB) | $0 | 官方原文:无小时费、无数据处理费 | | 接口型端点(PrivateLink) | $0.01 / 小时 / 端点 / 可用区 | 数据处理费分档:前 1 PB $0.01/GB,其后 4 PB $0.006/GB,超 5 PB $0.004/GB |

阿里云国际版的公开单价

阿里云的 NAT 网关同样是"实例费 + CU 费",两者都按小时结算,不足一小时按一小时计。CU 单价按地域与部署形态分档:

| 部署形态 | 地域 | CU 单价(USD / CU·小时) | |---|---|---| | 跨可用区容灾 | 中国大陆各地域 | 0.034 | | 跨可用区容灾 | 香港 / 东京 / 首尔 / 新加坡 / 吉隆坡 / 雅加达 / 马尼拉 / 曼谷 / 法兰克福 / 伦敦 / 硅谷 / 弗吉尼亚 / 迪拜 | 0.043 | | 跨可用区容灾 | 利雅得(合作地域) | 0.052 | | 单可用区容灾 | 海外各地域 | ≤100 万 CU:0.034;>100 万 CU:0.021 | | 单可用区容灾 | 中国大陆各地域 | ≤100 万 CU:0.027;>100 万 CU:0.016 |

官方文档给出的计费示例可以直接当尺子用:在法兰克福建一个跨可用区 Internet NAT 网关,运行 1 小时、处理 3.5 GB 流量,实例费 0.043,CU 费 0.043 × 3.5 = 0.1505,合计 0.1935 USD。同一示例里,一个完全没有流量的 VPC NAT 网关(用于私网内地址转换、不绑定 EIP)只收实例费 0.043——这一点很关键:只要网关存在,哪怕零流量也在扣钱

官方还明确了一件常被误解的事:单可用区模式约省 50% 的实例费、约 20% 的 CU 费,但它只能按量付费、不能用资源包,且需要在购买页选择"单可用区容灾"(未显示该选项时需联系客户经理开通)。正确用法不是"为了省钱全上单可用区",而是官方建议的那样:在应用层按可用区部署多个单可用区网关,让每个可用区独立转发——用多个便宜的单点,拼出一个不比跨可用区方案差的高可用出口。

腾讯云国际版的公开单价

腾讯云标准型 NAT 网关也是"实例费 + CU 费"两段,均按小时后付。它的 CU 定义值得单独记一下,因为它是取最大值而不是累加:

CU 数 = MAX(每小时活跃连接数 ÷ 10000, 每小时新建连接数/秒 ÷ 1000, 每小时处理流量 GB ÷ 1)

| 计费项 | 地域 | 列表价(USD/小时 或 USD/CU·小时) | 官网折扣价 | |---|---|---|---| | 实例费 | 广州 / 北京 / 上海 / 南京 / 成都 / 重庆 / 中国香港 | 0.034 | 0.0289 | | 实例费 | 新加坡 / 曼谷 / 雅加达 / 弗吉尼亚 / 首尔 / 东京 / 法兰克福 / 硅谷 / 圣保罗 | 0.043 | 0.03655 | | CU 费 | 同上两个地域分组 | 0.034 / 0.043 | 0.0289 / 0.03655 |

官网折扣价是"较列表价低 15%"的长期折扣价,不是长期调价——官方特别注明"若还有其它折扣,请联系商务获取具体成交价"。另一个容易踩的坑:创建 NAT 网关实例时会预扣 1 小时的实例费,账户余额不足会直接创建失败;而公网网络费统一计在 NAT 网关绑定的 EIP 上,所以看 NAT 网关的账单永远看不到带宽成本。

三云横向对比

| 维度 | AWS | 阿里云国际版 | 腾讯云国际版 | |---|---|---|---| | 计费结构 | 实例小时费 + GB 处理费 + 标准数据传输费 | 实例小时费 + CU 费(+ EIP 带宽/流量费) | 实例小时费 + CU 费(+ EIP 网络费) | | 海外数据处理单价 | $0.045 / GB | 跨 AZ $0.043 / CU;单 AZ 阶梯 $0.034→$0.021 | $0.043 / CU(官网价 $0.03655) | | 不足一小时 | 按整小时计 | 按一小时计 | 按整小时计 | | 多可用区形态 | 区域型 NAT 按 AZ 分别计费 | 跨可用区 / 单可用区两种模式 | 标准型 / 私有型 NAT 网关 | | 零流量时 | 仍收实例费 | 仍收实例费(官方示例 VPC NAT 网关只收 0.043) | 仍收实例费 | | 资源包 | 无 | 有(且单可用区模式不能使用) | 无 | | 免费的内网替代 | 网关型端点 $0 | 对象存储/日志等内网访问 | 对象存储/日志等内网访问 |

读表结论:三家海外地区的数据处理单价几乎一模一样($0.043~$0.045 / GB),所以"比价选云"在这一项上几乎没有空间。真正的差距在两点:AWS 会在 NAT 之外再收一笔标准数据传输费(结构化地多一层),而阿里云提供了单可用区 + 资源包这一套明确的降本工具组合。换句话说,出网省钱的杠杆不在"换哪家云",而在"能不能把流量从 NAT 上拿掉"——这正是下一节的主题,也是本文最值钱的一节。

五、私网访问:把"必须出网"的流量变成"不出网"

这一节是全文的省钱主体。核心是一句 AWS 官方定价页上的原话(它被埋在 NAT 网关的计费示例注释里,却是整份定价页最值钱的一句):

> "To avoid the NAT Gateway Data Processing charge in this example, you could set up a gateway Type VPC endpoint and route the traffic to/from S3 through the VPC endpoint instead of going through the NAT Gateway. There are no data processing or hourly charges for using Gateway Type VPC endpoints."

翻译过来就是:网关型端点没有小时费、也没有数据处理费。 也就是说,同样是 1 TB 对象存储读写流量,走 NAT 网关要付 $0.045 × 1024 ≈ $46 的处理费(外加标准数据传输费),走网关型端点是 0

私网访问的四种形态

| 形态 | 典型用途 | 计费 | 三云对应 | |---|---|---|---| | 网关型端点 | 对象存储、托管 KV/NoSQL | 全免费 | AWS Gateway Endpoint(S3 / DynamoDB) | | 接口型端点 | 日志、镜像仓库、KMS、Secrets、跨账号服务 | 每端点每可用区小时费 + 数据处理费(按量分档) | AWS Interface Endpoint / PrivateLink | | 终端节点服务(反向) | 把自己的服务以私网方式开放给其它 VPC / 账号 / 客户 | 服务侧承担部分小时费 + 跨地域流量 | AWS PrivateLink 服务端、阿里云「终端节点服务」 | | 内网域名直连 | 云产品的内网接入点(不额外计费) | 通常不额外收费,只算云内流量 | 阿里云对象存储/日志服务内网 Endpoint、腾讯云对象存储/日志服务内网域名 |

操作顺序上有一条纪律:先做第一类(免费、一次性、零风险),再做第二类(有小时费但可预测),最后才考虑把剩余流量收敛到 NAT。反过来做(先建 NAT 再把流量捞回来)几乎不会发生。

一个必须纠正的误解:用了 PrivateLink 不等于"不出网"

接口型端点(PrivateLink)解决的是链路不经过公网,不解决跨地域计费。AWS 官方文档写得很明确:跨地域访问可以走接口端点,没有溢价,但仍会按跨地域数据传输费率计费,并且由接口端点的拥有者承担跨地域的每一 GB 流量,无论方向。同时,"每小时计费在端点存续期间持续发生,与它是否已关联到服务无关",只有删除端点(或服务端拒绝附带并随后删除服务)才会停止。所以:

- 私网访问省的是公网暴露面与 NAT 处理费,不是全部网络费; - 接口端点一旦建了不删,它在不在用都在计费——这一点和 NAT 网关的闲置逻辑完全一样。

关于腾讯云国际站的实测结论(对照法)

本文实测 intl.cloud.tencent.com/products/privatelinkintl.cloud.tencent.com/products/private-link 两个路径均返回 404,也未检索到独立的私有连接公开计费页。因此上表中腾讯云一栏标注为"内网域名直连",即用云产品的内网接入点替代 NAT 出网这条路径;如需跨 VPC 的私网服务互通,以控制台实际提供的能力与商务报价为准,不要照搬本文的 AWS / 阿里云 单价做预算。这正是多云架构里最容易出错的地方——把 A 云的计费模型想当然地套到 B 云上。

六、实操:三云的出口与私网访问配置

AWS:创建 NAT 网关 + 网关型端点 + 接口型端点

创建 NAT 网关需要一个 Elastic IP 和一台位于私网子网的网关:

`bash // 1. 申请 EIP(NAT 网关的出口地址) aws ec2 allocate-address --domain vpc

// 2. 创建公有 NAT 网关(--connectivity-type 支持 public / private) // --availability-mode 用于区域型 NAT;不传则为传统可用区型 aws ec2 create-nat-gateway \ --subnet-id subnet-0aa11bb22cc33dd44 \ --allocation-id eipalloc-0ff55ee66dd77cc88 \ --connectivity-type public \ --tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=shared-egress-az1}]'

// 3. 网关型端点:S3 走内网,免 NAT 数据处理费(全免费) aws ec2 create-vpc-endpoint \ --vpc-id vpc-0a1b2c3d4e5f60718 \ --service-name com.amazonaws.ap-southeast-1.s3 \ --vpc-endpoint-type Gateway \ --route-table-ids rtb-0f1e2d3c4b5a69780

// 4. 接口型端点:日志 / 镜像 / 密钥等走 PrivateLink,按端点×可用区小时计费 aws ec2 create-vpc-endpoint \ --vpc-id vpc-0a1b2c3d4e5f60718 \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.ap-southeast-1.logs \ --subnet-ids subnet-0aa11bb22cc33dd44 subnet-0bb22cc33dd44ee55 \ --security-group-ids sg-0c1d2e3f4a5b6c7d8 `

流日志是出口审计的最小前提——必须先指定落点,落点侧的存储与查询才是真正的成本项:

`bash // 5. 打开 VPC 流日志(目标侧 CloudWatch Logs / S3 计费) aws ec2 create-flow-logs \ --resource-ids vpc-0a1b2c3d4e5f60718 \ --resource-type VPC \ --traffic-type ALL \ --log-destination-type cloud-watch-logs \ --log-group-name /vpc/egress-audit `

Terraform 骨架(AWS 侧)

HCL 支持 // 注释,所以这段可以整块贴进仓库:

`hcl resource "aws_eip" "egress" { domain = "vpc" // 出口地址,弹掉网关后记得释放,否则公网 IPv4 仍按 $0.005/小时计费 }

resource "aws_nat_gateway" "shared" { allocation_id = aws_eip.egress.id subnet_id = var.egress_subnet_id connectivity_type = "public" tags = { Name = "shared-egress-az1" } }

resource "aws_vpc_endpoint" "s3" { vpc_id = var.vpc_id service_name = "com.amazonaws.ap-southeast-1.s3" vpc_endpoint_type = "Gateway" route_table_ids = var.private_route_table_ids } `

三条 IaC 纪律:一是端点与 NAT 网关都属于"建了就计费"的资源,必须同时写进清理流程;二是端点策略(endpoint policy)默认放行全部,生产环境要显式收窄到需要的桶或日志组;三是流日志的落点不要和业务桶共用账号,否则出事故时日志与业务一起丢。

阿里云:控制台路径 + API 入口

阿里云的官方统一公网出口路径是这样的:先建好 VPC 与 vSwitch,创建 CEN 实例,在地域内创建企业版转发路由器,然后在 NAT 网关控制台执行:

1. 进入 Internet NAT Gateway 页面,点击 Create Internet NAT Gateway; 2. 依次选择 RegionNetwork and Zone(官方提示:网关创建后 VPC 与 vSwitch 不可更改,这一步必须一次选对)→ Network Type(Internet NAT Gateway 可绑 EIP 出公网;VPC NAT Gateway 不能绑 EIP,只做私网地址转换,适合隐藏内部地址与规避地址冲突); 3. EIP 一栏选"Purchase EIP"或"Select EIP",按需设置 Maximum Bandwidth,也可以先"Configure Later",此时网关没有公网出口直到绑定 EIP; 4. 在网关的 SNAT 条目页配置出网规则(官方文档原文即 "configuring SNAT entries for the gateway"),把业务 VPC 的网段映射到网关出口; 5. 若要通过转发路由器把多个 VPC 的流量汇聚到这一个网关,按《Unified Internet egress》的步骤把网络实例连接到企业版转发路由器,并把它们的默认路由指向该网关。

对应的 OpenAPI 入口是 CreateNatGateway(另有 CreateSpecialSpecNatGateway 用于特殊规格),文档同时给出 CreateNatGateway 的完整参数说明可直接对照。

成本上必看的两条官方提醒:其一,删掉网关才会停止计费——"如果你停掉后端服务但不删除 NAT 网关,实例费会继续累积";其二,解绑 EIP 既不停止 EIP 的计费、也不停止 NAT 网关的计费,要分别释放 EIP 并删除网关。这两条几乎就是"测试环境忘删网关,一年白花几千美元"的全部原因。

腾讯云:控制台路径 + 官方文档依据

腾讯云标准型 NAT 网关的落地流程与计费规则可在 1015 系列文档中逐条对照,两条与出网架构直接相关的官方文档是:

- 《Enabling Cross-VPC Access to Public Network via Standard NAT Gateway》(文档 1015/61768)——跨 VPC 共享公网出口,即本文路径 B 在腾讯云上的官方做法; - 《Enabling Mutual Access between a Specified VPC Subnet and Public Network Resources via Private NAT Gateway》(文档 1015/61769)——私有型 NAT 网关,对应阿里云 VPC NAT 网关的定位(不做公网出口,只做私网地址转换); - SNAT 条目与 DNAT 条目的配置分别见文档 1015 下的《Managing SNAT Rules》与《Managing DNAT Rules》。

落地时按"VPC → NAT 网关 → 绑定 EIP → 配置 SNAT 规则 → 子网路由指向网关"这个顺序执行;由于公网网络费统一计到 EIP 上,网关侧只看得到实例费与 CU 费,做成本看板时必须把 EIP 的费用一起归集,否则会出现"网关账单很便宜、总出网成本却很高"的错觉。

七、出口审计:出网到底留不留下痕迹

出网审计有一个绕不过去的技术事实:NAT 网关只能告诉你"访问了哪个 IP",告诉不了你"访问了哪个域名"。 流日志与 NAT 会话日志记录的是五元组(源 IP、源端口、目的 IP、目的端口、协议)与字节数,域名信息在 DNS 解析那一刻就已经消失了。所以想要域名级的白名单与审计,必须在出口前放一个正向代理

出网管控的四级阶梯

| 级别 | 手段 | 能不能按域名管 | 代价 | |---|---|---|---| | L1 | 安全组出站规则 | 不能,只能按 IP/CIDR/端口 | 对 SaaS 几乎无用(对方 IP 会变) | | L2 | 云防火墙出向策略 | (域名与应用识别) | 按量计费,需先梳理流量 | | L3 | 正向代理集群 + 白名单 | 能,且可完全自定义 | 要自己运维,是单点,需容量规划 | | L4 | 默认全放行 | 不能 | 零成本,但出事时无法回溯 |

推荐路线是 L1 → L2 →(必要时)L3:先用安全组把明显不该出的端口封掉;再上云防火墙做域名与应用级出向策略,拿到"过去 30 天访问过哪些域名"的清单;只有当合规方要求逐次会话的完整 URL 级记录、或需要和合作方做出口 IP 白名单交换时,才自建正向代理集群。

自建正向代理时的三条工程纪律:一是代理必须多可用区部署 + 会话粘性,否则它自己就成了单点;二是白名单要按"域名后缀 + 用途 + 责任人"登记,而不是一个裸域名列表;三是代理的 access.log 是这套体系里唯一含完整 URL 的日志,它的留存周期通常就是审计方认账的那份证据,落点必须独立。

出口日志的成本与留存

流日志和会话日志本身不要钱,钱在落点:日志进入 CloudWatch Logs / 日志服务 / CLS 之后的写入与存储都在计费。三条务实做法:

1. 分层留存:全量流日志留 14~30 天(排查用),聚合后的出网域名与字节数报表留 180 天以上(合规用)。 2. 别把日志写回业务账号,否则日志与业务一起丢——这与本站 SOC 文章里"原始日志不跨境、只汇聚归一化事件"是同一条纪律。 3. 出口日志是 SIEM 的高价值输入源。在 SIEM 里,"某个从不出网的数据库主机突然向境外 IP 传出 5 GB"这类规则,依赖的正是出口侧日志;检测规则与响应动作本身属于 SOC 话题,本文只负责把数据产生出来。

八、成本测算:一个出海 SaaS 的真实账单拆解

场景设定(示意算例,非报价):某出海 SaaS,亚太(新加坡)区域 3 个 VPC,月出网 5 TB,其中 3 TB 是对对象存储与日志服务的读写,业务实例全部无公网 IP,出网统一经网关。

第一步:全部走 NAT 网关(AWS 口径)

| 项目 | 计算 | 月成本 | |---|---|---| | NAT 网关实例费 | 1 台 × 720 小时 × $0.045 | $32.40 | | 数据处理费 | 5,120 GB × $0.045 | $230.40 | | 标准数据传输费 | 按 EC2 定价页实时价另计 | 另计 | | 网关侧合计 | | ≈ $262.80 / 月 |

第二步:把 3 TB 对象存储流量改走网关型端点

| 项目 | 计算 | 月成本 | |---|---|---| | NAT 网关实例费 | 不变 | $32.40 | | 数据处理费 | (5,120 − 3,072) GB × $0.045 | $92.16 | | 网关型端点 | 官方定价页:无小时费、无数据处理费 | $0 | | 网关侧合计 | | ≈ $124.56 / 月 |

一次改动,网关侧账单下降 52.6%,一年省约 $1,659。 这个改动的工作量是"建一个端点 + 改一条路由 + 回归测试一条上传链路",通常不到三个人天。

第三步:日志与密钥也改走接口型端点

若把 3 TB 的内存改走接口端点(假设 2 个可用区):

| 项目 | 走 NAT 网关 | 走接口端点 | |---|---|---| | 小时费 | 已含在实例费中 | 2 AZ × 720 小时 × $0.01 = $14.40 | | 数据处理费 | 3,072 GB × $0.045 = $138.24 | 3,072 GB × $0.01 = $30.72 | | 合计 | $138.24 | $45.12 |

即便按最贵的第一档数据处理价 $0.01/GB 计算,接口端点仍比 NAT 便宜约 67%;流量越大,分档价($0.006 / $0.004)带来的差距还会进一步拉大。

第四步:如果只换云、不换架构

同样 5 TB / 月的网关侧成本,三家海外地域的对比:

| 方案 | 实例费 / 月 | 数据处理 / 月 | 合计 | 备注 | |---|---|---|---|---| | AWS(1 台 NAT 网关) | $32.40 | $230.40 | $262.80 | 标准数据传输费另计 | | 阿里云(跨可用区,新加坡) | $30.96 | $220.16 | $251.12 | EIP 带宽/流量另计 | | 阿里云(单可用区) | ≈ $15.48 | $174.08 | ≈ $189.56 | 仅按量付费,不能用资源包 | | 腾讯云(官网折扣价) | $26.32 | $187.14 | ≈ $213.46 | EIP 网络费另计 |

这张表最重要的读法不是"哪家便宜",而是"换云最多省 28%,换架构能省 53%。" 出网的杠杆在架构,不在采购。

别忘了这两笔"隐形账单"

- 闲置网关:AWS 与阿里云的闲置网关都是约 $31~33 / 月 / 台(720 小时 × $0.04 量级)。清掉 5 个测试环境遗留的网关,一年就是接近 $2,000。 - 未释放的 EIP / 公网 IPv4:AWS 对在用与闲置的公网 IPv4 同价 $0.005/小时,即约 $3.6 / 月 / 个。NAT 网关删了但 EIP 忘了释放,账单会安静地继续。

以上金额均为按公开官网单价自行折算的示意算例,不含各家的商务折扣与 EIP 流量费,实际请以控制台结算页为准。

> 声明:本文价格数据采集于 2026 年 9 月,均取自各厂商公开官网定价页与官方文档,为公开单价与示意算例,不构成报价。各厂商价格、CU 系数、免费额度与折扣政策会随时调整,请以官网实时价格与控制台结算页为准。除特别标注外,金额单位均为美元(USD),地域示例统一取亚太(新加坡)。

九、常见问题 FAQ

Q1: 每个 VPC 都建 NAT 网关,还是所有 VPC 共享一个?

看 VPC 数量:3~5 个以内各自建,故障域隔离、责任清晰,不要为了"统一"造单点;超过 5 个、或合规要求全公司出网可审计时用共享出口(阿里云的统一公网出口、AWS 的中心 VPC + TGW、腾讯云的跨 VPC 标准型 NAT 网关都是官方支持的做法)。用共享出口就必须同时补上多可用区 NAT、CU/连接数上限告警、按标签分账这三件事。

Q2: 为什么我的 NAT 网关一点流量都没有,账单还在涨?

因为三家都按"网关存在"收实例费。阿里云官方原文是"如果停掉后端服务但不删除 NAT 网关,实例费会继续累积";AWS 也是"每个部分 NAT 网关小时按整小时计费"。停止业务不等于停止计费,只有删除网关才停。 另外解绑 EIP 既不停止 EIP 计费、也不停止网关计费——两件事要分别做。

Q3: 网关型端点真的完全免费吗?哪些流量能走?

AWS 官方定价页原文:网关型端点"没有数据处理费或小时费"。但它的覆盖面有限,主要支持对象存储与托管 KV/NoSQL 这类服务。判据很简单:在控制台创建端点时,如果服务名出现在网关型端点列表里,就走它;只出现在接口型端点列表里,就走接口型(有小时费)。

Q4: 用了 PrivateLink / 接口端点,是不是就不产生公网费用了?

链路确实不经公网,但不等于不产生网络费:接口端点本身按"每端点每可用区小时费"计费,且有按量分档的数据处理费;跨地域访问虽无溢价,但会按跨地域数据传输费率计费,且官方规定由端点拥有者承担每一 GB 的跨地域流量,无论方向。另外,接口端点的计费"在存续期间持续发生,与是否已关联服务无关",建了不用也在扣钱

Q5: 阿里云单可用区 NAT 网关能省一半,为什么不全用单可用区?

官方数据是约省 50% 实例费、20% CU 费,但代价是"高可用只局限于该可用区"。官方的建议做法很务实:在应用层按可用区部署多个单可用区网关,让每个可用区独立转发,单区故障不会拖垮整个环境。另外单可用区模式只支持按量付费且不能使用资源包,如果你的用量已经大到要靠资源包压价,这条省钱的账要重算。

Q6: 出网白名单能不能只用安全组做?

不能。安全组只能按 IP / CIDR / 端口 控制,而绝大多数 SaaS 与第三方 API 的目标 IP 是变化的,写进安全组等于没有。要按域名管,只能用云防火墙的出向策略,或者出口前置一个正向代理。安全组的正确定位是"先把明显不该出的端口封掉"的第一道粗筛。

Q7: 出网成本突然翻倍,第一时间查什么?

按这个顺序:① 有没有新增/遗忘的 NAT 网关(每个约 $31~33/月,不看流量);② 有没有新上线的批量任务在走 NAT 访问对象存储(这类流量本应走网关型端点,单价从 $0.045/GB 直接降到 $0);③ 有没有未释放的 EIP 与公网 IPv4(AWS 在用与闲置同价 $0.005/小时,约 $3.6/月/个);④ 有没有跨可用区流量(AWS 明确提示:网关与实例跨可用区时会产生数据传输费)。

Q8: 三家出网单价差不多,那选云还要看出网吗?

要,但看的是工具组合而不是单价。AWS 的差异化是网关型端点全免费(对象存储流量归零的唯一官方形态),代价是多一层标准数据传输费;阿里云的差异化是单可用区模式 + 资源包这一套成体系的降本工具;腾讯云的差异化是公网费用统一归集到 EIP,做成本看板时口径更简单但要记得一起归集。单价几乎一致的前提下,决定成本的是"你能把多少流量从 NAT 上拿掉"。

十、总结

把出网当架构做,只有四句话:

1. 先消除——对象存储、日志、镜像、密钥这些云内服务,一律走网关型端点或内网域名,这部分流量在账单上可以归零。 2. 再私网化——必须访问第三方时优先用 PrivateLink / 终端节点服务,但要记住它解决的是"不经公网",不解决"不计流量"。 3. 最后才 NAT——剩下的流量收敛到统一出口,用多可用区 + CU 上限告警 + 按标签分账守住它,别让它变成全公司的单点。 4. 出口必须留痕——流日志给你 IP 级记录,域名级记录只能来自正向代理;日志落点独立、分层留存。

这四步做完,你的出网账单会明显下降,而更值钱的是:当下一次合规检查问"过去 90 天你们的服务器访问过哪些公网域名"时,你能在十分钟内答出来。

> 🚀 企业出海需要云架构咨询?通过 7.chengzicloud.cloud 联系我们,获取专属方案。我们提供多云网络与出口架构设计、成本优化评审与合规审计口径搭建。

相关阅读

- 企业出海多云网络互通与 Transit 架构实战 — 东西向互通的 Hub-Spoke 与 TGW/CEN/CCN 落地,本文的"另一半" - GDPR 数据跨境传输技术落地指南 — 跨境链路合规、加密与私网通道选型 - 多云 WAF + API 网关安全架构 — 入站方向的三层防护,与本文方向相反 - 多云安全运营中心 SOC 建设(SIEM + SOAR) — 出口日志汇总之后怎么检测与响应 - 多云安全态势管理 CSPM 实战 — 出口策略属于配置面基线的一部分

> 本文由 7.chengzicloud.cloud 提供,点击访问首页了解更多