在 AWS 中,VPC(Virtual Private Cloud) 、子网(Subnet) 、路由(Routing) 和 网关(Gateway) 是构建云上网络架构的四大核心组件。它们层层嵌套、协同工作,共同构成一个安全、灵活、可扩展的私有网络环境。下面从定义、关系、区别 和典型架构四个方面系统说明。
一、基本定义
| 组件 | 定义 | 关键特性 |
|---|---|---|
| VPC | 你在 AWS 云中的私有虚拟网络 | - 自定义 IP 范围(如 10.0.0.0/16) - 逻辑隔离于其他 VPC - 所有资源必须部署在 VPC 内 |
| 子网(Subnet) | VPC 内的一个 IP 地址段 | - 必须属于一个可用区(AZ) - 分为公有子网(可访问互联网)和私有子网(不可直接访问) |
| 路由(Routing) | 控制流量转发路径的规则集合 | - 通过路由表(Route Table) 实现 - 每个子网必须关联一个路由表 |
| 网关(Gateway) | 连接 VPC 与其他网络的出入口 | - 如 Internet Gateway(IGW)、NAT Gateway、Virtual Private Gateway(VGW)等 - 是路由表中"下一跳"的目标 |
二、层级关系(从大到小)
AWS Region
└── VPC(10.0.0.0/16)
├── Subnet A(10.0.1.0/24)→ AZ1 → 关联 Route Table X
├── Subnet B(10.0.2.0/24)→ AZ2 → 关联 Route Table Y
└── Subnet C(10.0.3.0/24)→ AZ1 → 关联 Route Table Z
Route Table X:
10.0.0.0/16 → local
0.0.0.0/0 → igw-123 ← 指向 Internet Gateway(公有子网)
Route Table Y:
10.0.0.0/16 → local
0.0.0.0/0 → nat-456 ← 指向 NAT Gateway(私有子网出站)
Gateways attached to VPC:
- Internet Gateway (igw-123)
- NAT Gateway (nat-456) in Subnet A
- Virtual Private Gateway (vgw-789) for VPN
✅ 层级总结 :
VPC ⊃ 子网 ⊃ 路由表 → 网关
三、核心区别对比
| 维度 | VPC | 子网 | 路由 | 网关 |
|---|---|---|---|---|
| 作用 | 网络容器 | 网络分区 | 流量导向规则 | 网络出口设备 |
| 范围 | 跨多个 AZ | 单一 AZ | 关联到子网 | 附加到 VPC |
| 是否收费 | ❌ 免费 | ❌ 免费 | ❌ 免费 | ✅ 多数收费(如 NAT Gateway) |
| 必需性 | 所有资源必需 | 必需(资源部署位置) | 必需(每个子网需关联) | 按需创建 |
| 安全角色 | 隔离边界 | 攻击面控制 | 路径控制 | 出入口控制 |
四、典型架构示例:三层安全架构(Web-App-DB)
这是 AWS 推荐的高安全性生产架构:
┌───────────────────────┐
│ Internet │
└──────────┬────────────┘
│
┌────────────▼────────────┐
│ Internet Gateway (IGW) │ ← 公网入口
└────────────┬────────────┘
│
┌────────────────────────────┼────────────────────────────┐
│ │ │
┌─────────▼─────────┐ ┌───────────▼──────────┐ ┌─────────────▼─────────────┐
│ Public Subnet │ │ Private Subnet │ │ Private Subnet (DB) │
│ (10.0.1.0/24) │ │ (10.0.2.0/24) │ │ (10.0.3.0/24) │
│ │ │ │ │ │
│ EC2 (Web Server) │◄────►│ EC2 (App Server) │◄─►│ RDS / EC2 (Database) │
│ - 公网 IP │ │ - 无公网 IP │ │ - 无公网 IP │
└─────────┬─────────┘ └───────────┬──────────┘ └─────────────▲─────────────┘
│ │ │
│ │ │
└──────────────┐ ┌─────────┴─────────────┐ ┌──────────┘
│ │ │ │
┌───────▼───▼───────┐ ┌───────▼───▼───────┐
│ NAT Gateway │ │ Security Groups │
│ (in Public Subnet)│ │ + NACLs │
└───────────────────┘ └───────────────────┘
各组件角色说明:
| 组件 | 在架构中的作用 |
|---|---|
| VPC | 整个应用的私有网络空间(如 10.0.0.0/16) |
| Public Subnet | 托管 Web 服务器,允许互联网访问(路由指向 IGW) |
| Private Subnet (App) | 托管业务逻辑,仅接受来自 Web 层的请求,通过 NAT Gateway 访问外网(如打补丁) |
| Private Subnet (DB) | 数据库层,仅接受 App 层访问,无任何出站路由(或严格限制) |
| IGW | 允许 Web 服务器响应公网请求 |
| NAT Gateway | 允许 App/DB 层安全出站,但阻止入站 |
| 路由表 | * 公有子网:0.0.0.0/0 → IGW * 私有子网:0.0.0.0/0 → NAT Gateway |
五、关键协作机制
- VPC 提供基础:定义 IP 空间和隔离边界。
- 子网实现分区:按安全等级划分网络区域(公/私)。
- 路由控制流向 :
- 公有子网 → 路由到 IGW → 可被公网访问
- 私有子网 → 路由到 NAT Gateway → 仅能主动出站
- 网关提供能力 :
- IGW:双向公网通信
- NAT Gateway:单向出站(更安全)
- VGW:连接本地数据中心(混合云)
🔒 安全原则体现:
- 最小暴露面:只有 Web 层暴露公网
- 纵深防御:即使 Web 被攻破,攻击者无法直连数据库(路由 + 安全组双重限制)
- 出站可控:私有资源可通过 NAT 安全更新,无需开放入站端口
六、常见误区澄清
| 误区 | 正确理解 |
|---|---|
| "子网类型由 IP 决定" | 子网是公有还是私有,取决于路由表是否指向 IGW,而非 IP 本身 |
| "有 IGW 就能上网" | 必须将 IGW 附加到 VPC ,且子网路由表包含 0.0.0.0/0 → igw-xxx |
| "NAT Gateway 可以被公网访问" | ❌ NAT Gateway 只支持出站,不能作为入站目标 |
七、总结:架构逻辑链
VPC 划地 → 子网分区 → 路由指路 → 网关通行
- VPC 是你的"云上国土";
- 子网 是"城市功能区"(商业区、住宅区、军事禁区);
- 路由 是"交通规则"(哪些车能上高速);
- 网关 是"海关/收费站"(控制进出边境)。
通过这四者的合理组合,你可以在 AWS 上构建出既开放又安全、既灵活又合规的网络架构。这也是 AWS Well-Architected Framework 中"安全"和"可靠性"支柱的重要基础。