Skip to content

规划VPC网络架构

文档难度: 中级
预计阅读时间: 15 分钟
适用环境: AWS 商业账户、生产环境规划
前置条件: 已创建 AWS 账户,了解基本网络概念 (IP 地址、子网、路由)
任务目标: 根据业务场景选择合适的 VPC 架构方案,避免常见的规划错误


VPC 规划的本质是回答三个问题:

  1. IP 地址空间如何分配? (CIDR 规划)
  2. 流量如何进出? (公有/私有子网 + 网关选择)
  3. 多 VPC 如何互联? (网络拓扑)

错误的规划会导致: IP 地址耗尽、无法与其他网络对等互联、成本失控。


最佳实践: 使用 /16 VPC + 预留扩展空间

Section titled “最佳实践: 使用 /16 VPC + 预留扩展空间”

为什么这么做:

  • VPC 创建后 CIDR 无法修改,只能追加 (最多 5 个)
  • /16 提供 65,536 个 IP,足够大多数场景
  • 预留空间避免未来与 VPC Peering 或 Direct Connect 冲突

RFC 1918 私有地址范围 (来源: VPC CIDR blocks):

范围可用空间推荐场景
10.0.0.0/816,777,216 IP最佳实践 - 地址空间最大
172.16.0.0/121,048,576 IP可用,但避免 172.17.0.0/16 (与 Docker 冲突)
192.168.0.0/1665,536 IP仅用于小型测试环境

规划示例 (多环境):

生产环境 VPC: 10.0.0.0/16
预生产环境 VPC: 10.1.0.0/16
开发环境 VPC: 10.2.0.0/16
共享服务 VPC: 10.10.0.0/16

AWS 保留地址: 每个子网的前 4 个和最后 1 个 IP 不可用 (来源: Subnet sizing)。

最佳实践子网分配:

子网类型推荐 CIDR可用 IP说明
公有子网/24251放置 NAT Gateway、ALB、Bastion
私有子网-应用层 (可出站)/22 或 /231019 或 507主要工作负载,通过 NAT 访问互联网
私有子网-数据层 (隔离)/24251RDS、ElastiCache,无互联网路由

跨可用区部署: 至少使用 2 个 AZ,生产环境建议 3 个 AZ。

对于常规场景,AWS 控制台提供的 “VPC and more” 向导可一键完成完整的 VPC 架构部署,无需手动逐一创建组件。

向导自动创建的资源:

  • VPC (含指定 CIDR)
  • 公有子网和私有子网 (可选 1-3 个 AZ)
  • Internet Gateway 并自动关联
  • NAT Gateway (可选每个 AZ 一个或共享一个)
  • 路由表并自动关联子网
  • S3 Gateway Endpoint
  • DNS 解析 (enableDnsHostnames, enableDnsSupport)

操作路径: VPC 控制台 → 创建 VPC → 选择 “VPC等”

[VPC等 向导界面]

VPC设置 子网设置

何时使用向导 vs 手动创建:

场景推荐方式
标准三层架构、快速启动VPC等 向导
需要自定义 CIDR 分配逻辑手动创建
基础设施即代码 (IaC)CloudFormation / Terraform
与现有网络集成、复杂路由手动创建

最佳实践: 即使使用向导,也建议先规划好 CIDR 分配方案,在向导中展开 “Customize subnet CIDR blocks” 手动指定每个子网的 CIDR,避免使用默认值导致后续扩展困难。


AWS 官方文档仅定义 Public SubnetPrivate Subnet 两种类型 (来源: Subnets for your VPC)。传统数据中心的 “DMZ” 概念在 AWS 中通过路由表和安全组实现,而非独立的子网类型。

类型路由目标实例是否有公网 IP典型用途
公有子网Internet Gateway (IGW)ALB、NAT Gateway、Bastion
私有子网 (可出站)NAT Gateway应用服务器、需要访问外部 API 的服务
私有子网 (隔离)无默认路由数据库、敏感数据、合规工作负载

以下所有架构方案均采用此分类方式。

成本数据来源: Amazon VPC PricingAWS PrivateLink Pricing (2024年12月)

组件小时费用 (us-east-1)数据处理费适用场景
Internet Gateway免费仅出站流量费公有子网出站
NAT Gateway$0.045/小时 (~$32.85/月)$0.045/GB私有子网访问互联网
Gateway Endpoint (S3/DynamoDB)免费免费访问 S3、DynamoDB
Interface Endpoint$0.01/小时/AZ (~$7.30/月/AZ)$0.01/GB访问其他 AWS 服务
Transit Gateway Attachment$0.05/小时 (~$36/月)$0.02/GB多 VPC 互联

最佳实践: 优先使用 Gateway Endpoint

Section titled “最佳实践: 优先使用 Gateway Endpoint”

为什么这么做:

  • S3 和 DynamoDB 流量通过 NAT Gateway 会产生 $0.045/GB 的数据处理费
  • Gateway Endpoint 完全免费,且流量不离开 AWS 网络

决策流程:

私有子网需要访问 AWS 服务?
├── S3 或 DynamoDB → 创建 Gateway Endpoint (免费)
├── 其他 AWS 服务 (ECR、CloudWatch、SSM 等)
│ └── 流量 > 500GB/月?
│ ├── 是 → Interface Endpoint 更经济
│ └── 否 → NAT Gateway 更简单
└── 需要访问互联网 → NAT Gateway

方案 A: 单 VPC 三层架构 (入门推荐)

Section titled “方案 A: 单 VPC 三层架构 (入门推荐)”

适用场景: 单一应用、小型团队、开发测试环境

三层隔离原则:

  • 公有子网: 直接通过 IGW 访问互联网,暴露面最大
  • 私有子网 (可出站): 通过 NAT Gateway 出站,可调用外部 API,不可从互联网直接访问
  • 私有子网 (隔离): 无互联网路由,仅通过 VPC Endpoint 访问 AWS 服务
VPC: 10.0.0.0/16
├── 公有子网 (10.0.1.0/24, 10.0.2.0/24)
│ └── ALB, NAT Gateway, Bastion (路由: 0.0.0.0/0 → IGW)
├── 私有子网-应用层 (10.0.10.0/23, 10.0.12.0/23)
│ └── 应用服务器, ECS, Lambda (路由: 0.0.0.0/0 → NAT Gateway)
└── 私有子网-数据层 (10.0.20.0/24, 10.0.21.0/24)
└── RDS, ElastiCache (路由: 无默认路由,仅 VPC Endpoint)

月度成本估算 (2 AZ):

  • NAT Gateway: $32.85 x 2 = $65.70 + 数据处理费
  • Gateway Endpoint (S3): $0

公网访问结构

私有子网访问结构

路由表配置要点:

路由表目标下一跳
公有子网 RT0.0.0.0/0IGW
私有子网-应用层 RT0.0.0.0/0NAT Gateway
私有子网-数据层 RT0.0.0.0/0不配置 (无互联网访问)
所有子网pl-xxxxxx (S3)Gateway Endpoint

方案 B: Hub-Spoke 多 VPC 架构 (企业推荐)

Section titled “方案 B: Hub-Spoke 多 VPC 架构 (企业推荐)”

适用场景: 多团队/多应用隔离、生产与非生产分离、合规要求

核心组件: Transit Gateway

共享服务 VPC (Hub): 10.10.0.0/16
├── VPC Endpoints (集中式)
├── NAT Gateway (可选共享)
└── Transit Gateway
生产 VPC (Spoke): 10.0.0.0/16
开发 VPC (Spoke): 10.1.0.0/16

为什么使用 Transit Gateway:

  • VPC Peering 是点对点连接,N 个 VPC 需要 N(N-1)/2 个连接
  • Transit Gateway 提供星型拓扑,简化管理
  • 支持跨账户、跨区域

月度成本估算 (3 个 VPC):

  • Transit Gateway: $0.05/小时 x 3 attachments = $108/月 + 数据处理费
  • 集中式 Interface Endpoints: 比分布式部署节省 60-70%
%%{init: {"flowchart": {"defaultRenderer": "elk"}}}%%
flowchart TB
    subgraph SharedVPC["共享服务 VPC 10.10.0.0/16"]
        EP["VPC Endpoints<br/>(ECR, SSM, CloudWatch)"]
        NATG["NAT Gateway"]
    end
    
    TGW["Transit Gateway"]
    
    subgraph ProdVPC["生产 VPC 10.0.0.0/16"]
        PROD["生产工作负载"]
    end
    
    subgraph DevVPC["开发 VPC 10.1.0.0/16"]
        DEV["开发工作负载"]
    end
    
    Internet((Internet))
    
    SharedVPC --> TGW
    ProdVPC --> TGW
    DevVPC --> TGW
    NATG --> Internet
    
    PROD -.-> EP
    DEV -.-> EP

适用场景: 本地数据中心与 AWS 互联、灾备、渐进式迁移

连接选项:

方式带宽延迟成本适用场景
Site-to-Site VPN最高 1.25 Gbps/隧道不稳定~$36/月 + 数据费临时连接、备份链路
Direct Connect1-100 Gbps稳定低延迟端口费 + 数据费生产环境、大数据传输

CIDR 规划注意事项:

  • 必须确保 VPC CIDR 与本地网络不重叠
  • 规划时收集所有现有网络的 IP 范围
  • 预留地址空间用于未来扩展

  • 为 S3 和 DynamoDB 创建 Gateway Endpoint (免费)
  • 开发/测试环境考虑单 AZ NAT Gateway (节省 50%)
  • 非工作时间可删除开发环境 NAT Gateway (使用 IaC 自动创建/删除)
  • AWS 服务流量 > 500GB/月 → 评估 Interface Endpoint
  • 多 VPC 环境 → 评估集中式 VPC Endpoints
  • 跨 AZ 流量 → 评估是否可将资源放置在同一 AZ

可以添加辅助 CIDR (最多 5 个),但不能修改已有 CIDR。如需完全重新规划,需创建新 VPC 并迁移资源。

Q: 开发环境需要每个 AZ 都部署 NAT Gateway 吗?

Section titled “Q: 开发环境需要每个 AZ 都部署 NAT Gateway 吗?”

不需要。开发环境可使用单 AZ NAT Gateway,通过路由表将所有私有子网指向该 NAT Gateway。高可用性在开发环境通常不是必须的。

Q: Interface Endpoint 和 NAT Gateway 如何选择?

Section titled “Q: Interface Endpoint 和 NAT Gateway 如何选择?”

计算公式: 如果 (Interface Endpoint 月费 x AZ 数) < (NAT Gateway 月费 + 预期流量 x $0.045),选择 Interface Endpoint。

示例: 访问 ECR (3 个 Endpoint),2 AZ,每月 100GB 流量

  • Interface Endpoint: $7.30 x 3 x 2 = $43.80/月
  • NAT Gateway: $32.85 + (100 x $0.045) = $37.35/月
  • 结论: 此场景 NAT Gateway 更经济

Docker 默认使用此网段作为 bridge 网络。AWS Cloud9、SageMaker 等服务内部使用 Docker,会与此网段冲突。