第六阶段:VPC(虚拟私有云)与网络设计¶
本章学习目标:
- 理解什么是 VPC,为什么没有 VPC 就没有 AWS 架构
- 理解公有子网 / 私有子网的区别
- 理解 IGW / NAT / 路由表的真实作用
- 能画出一张“标准三层架构的 VPC 网络图”
- 理解为什么 RDS 一定要放在私网
1. 为什么要学 VPC?¶
在前面的章节中,你已经完成了:
- EC2 能跑服务
- Spring Boot 能连接 RDS
- 前端能通过 S3 + CloudFront 访问
但此时,很多新手其实处于一个状态:
“东西能跑,但我不确定它为什么能跑。”
📌 VPC 就是解释“为什么这一切能安全地跑起来”的答案。
2. 什么是 VPC?¶
VPC(Virtual Private Cloud)是你在 AWS 上的:
一块完全属于你自己的私有网络空间。
你可以把 VPC 理解为:
云上的一个“独立小区”。
- 小区里有房子(EC2 / RDS)
- 有不同区域(子网)
- 有道路(路由表)
- 有大门(IGW / NAT)
- 有门卫(安全组 / NACL)
📌 所有 EC2、RDS 等核心资源,必须放在某个 VPC 中。
3. CIDR:VPC 的地址范围(入门版)¶
创建 VPC 时,需要指定一个 CIDR,
CIDR是指 IP 地址中,前面多少位是‘网络地址’,后面多少位是‘主机地址’。
例如:
10.0.0.0/16
含义是:
- 一个私有 IP 地址段
- 可以在其中继续划分子网
📌 新手阶段只需记住:
VPC 就是一个大的 IP 地址池。
4. 子网(Subnet):把 VPC 划分为不同区域¶
4.1 为什么要划分子网?¶
子网的作用是:
- 隔离不同类型的资源
- 提升安全性
- 配合路由表实现访问控制
📌 子网是 VPC 设计的核心。
4.2 公有子网(Public Subnet)¶
特点:
- 可以访问互联网
- 可以被互联网访问(配置正确的前提下)
常见放置资源:
- EC2(Nginx / Spring Boot)
- ALB
- Bastion 主机
📌 凡是需要“被用户访问”的资源,才考虑放在公有子网。
4.3 私有子网(Private Subnet)¶
特点:
- 不能被互联网直接访问
- 默认无法直接访问互联网
- 安全性更高
常见放置资源:
- RDS
- Redis
- 内部服务
📌 数据库几乎一定放在私有子网。
5. 路由表(Route Table):网络流量的导航规则¶
路由表的作用只有一件事:
当一条网络流量要离开当前子网时,决定它“下一步该往哪里走”。
可以把路由表理解为:
VPC 内部的 GPS 导航系统。
服务器本身并不知道什么是“公网”或“私网”,它只会:
查路由表 → 匹配目标地址 → 按规则转发流量
5.1 路由表里到底有什么?¶
一条路由规则由两部分组成:
| 字段 | 含义 |
|---|---|
| 目标(Destination) | 这条流量要去哪里 |
| 下一跳(Target) | 下一步把流量交给谁 |
5.2 常见路由规则示例(必须理解)¶
| 目标(Destination) | 下一跳(Target) | 含义 |
|---|---|---|
10.0.0.0/16 |
local |
VPC 内部通信 |
0.0.0.0/0 |
Internet Gateway | 去互联网 |
0.0.0.0/0 |
NAT Gateway | 私网出网 |
📌 说明:
0.0.0.0/0 表示 “所有不属于本 VPC 内网的流量”。
5.3 路由表是“子网级别”的(重点)¶
⚠️ 非常重要的一点:
路由表不是绑定在 EC2 上,而是绑定在子网(Subnet)上的。
结构关系是:
子网 → 路由表 → 决定该子网内所有资源的流量走向
5.4 为什么公有子网可以访问互联网?¶
公有子网之所以能访问互联网,必须同时满足两个条件。
条件一:路由表中存在 IGW 规则¶
0.0.0.0/0 → Internet Gateway
含义是:
所有访问 VPC 外部的流量,统一交给 IGW。
条件二:实例拥有公网 IP¶
即使路由正确,如果 EC2 没有公网 IP:
- 外网无法将返回流量送回
- 通信仍然会失败
5.5 为什么私有子网不能直接访问互联网?¶
原因一:路由表中没有指向 IGW 的规则¶
- 私有子网路由表中没有
0.0.0.0/0 → IGW - 即使添加,也不符合安全设计原则
原因二:实例没有公网 IP¶
- 私有子网默认不分配公网 IP
- 外部网络无法主动访问
5.6 私有子网如何安全出网?¶
私有子网通过 NAT Gateway 间接访问互联网:
私有子网实例
↓
NAT Gateway(位于公有子网)
↓
Internet
5.7 三种典型路由组合(面试必会)¶
| 子网类型 | 路由规则 | 是否能访问互联网 |
|---|---|---|
| 公有子网 | 0.0.0.0/0 → IGW |
✅ 能 |
| 私有子网(无 NAT) | 仅 local |
❌ 不能 |
| 私有子网(有 NAT) | 0.0.0.0/0 → NAT |
✅ 只能出 |
5.8 一句话总结¶
子网是否能上网,由“路由表 + 是否有公网 IP”共同决定,而不是子网名称。
6. Internet Gateway(IGW):通往互联网的大门¶
IGW 是:
VPC 与互联网之间的“正门”。
作用:
- 允许 VPC 内资源访问互联网
- 允许互联网访问公有子网中的资源
📌 没有 IGW,VPC 就是一个完全隔离的内网。
7. NAT Gateway:私有子网的“单向出口”¶
7.1 为什么需要 NAT?¶
典型场景:
私有子网中的资源需要:
- 下载系统补丁
- 调用第三方 API
但又不能被公网访问。
解决方案:
NAT Gateway
7.2 NAT Gateway 的核心特点¶
- 私网 → 外网:允许
- 外网 → 私网:不允许
📌 可以理解为:
只能“出去”,不能“进来”的安全出口。
8. 为什么 RDS 一定要放在私有子网?¶
这是理解 VPC 的关键问题之一。
原因很简单:
- 数据库是系统的核心资产
- 不需要被公网访问
- 暴露到公网风险极高
正确结构:
互联网
↓
EC2(公有子网)
↓
RDS(私有子网)
9. 一个标准三层架构的 VPC 示例¶
VPC (10.0.0.0/16)
├─ 公有子网
│ ├─ EC2(Nginx + Spring Boot)
│ └─ IGW
│
└─ 私有子网
├─ RDS
└─ NAT Gateway
10. 新手最容易混淆的几点¶
- 子网能否上网 ≠ 是否有公网 IP
- 私有子网 ≠ 完全不能访问外网
- 安全组控制“谁能访问我”
- 路由表控制“流量往哪走”
11. 本章总结¶
- VPC 是 AWS 网络的基础
- 子网决定资源的安全边界
- IGW / NAT 决定与公网的连接方式
- 数据库必须部署在私有子网
- VPC 是从“能跑”到“能长期稳定运行”的分水岭