跳转至

第六阶段: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 是从“能跑”到“能长期稳定运行”的分水岭