aws-doc/课程/第二阶段-核心服务/第16天-VPC虚拟私有云.md

182 lines
6.7 KiB
Markdown
Raw Permalink Normal View History

2026-05-08 10:24:39 +08:00
# 第16天VPC——你的私有网络空间
## 今天你将学到什么
今天学习 VPCVirtual Private Cloud虚拟私有云。这是 AWS 网络的基础——你的所有资源EC2、RDS、Lambda 等)都运行在 VPC 里面。
理解 VPC 就像理解你家的网络布局:哪些设备连外网,哪些只在内网通信,防火墙怎么设置。
---
## 用小区来理解 VPC
想象你住在一个封闭式小区:
- **VPC** = 整个小区(有围墙,和外面隔开)
- **子网Subnet** = 小区里的不同楼栋1 号楼、2 号楼...
- **Internet Gateway** = 小区大门(连接外面的世界)
- **路由表** = 小区内的路标(告诉你去哪个方向)
- **安全组** = 每户的门锁(控制谁能进你家)
- **NAT Gateway** = 小区的快递柜(住户可以寄快递出去,但外面的人不能直接进来)
---
## 核心概念一VPC 本身
VPC 是你在 AWS 中划出的一块私有网络空间。
**创建 VPC 时要做的第一件事**:选择 IP 地址范围CIDR 块)。
**什么是 CIDR**
CIDR 就是"这个网络里有多少个 IP 地址可以用"。
常见选择:
- `10.0.0.0/16` → 有 65,536 个 IP 地址(推荐,空间充足)
- `10.0.0.0/24` → 只有 256 个 IP 地址(太小了)
**简单记忆**`/16` 表示很大的网络,`/24` 表示小网络。数字越小,网络越大。
---
## 核心概念二子网Subnet
子网是 VPC 内部的"分区"。每个子网位于一个特定的可用区AZ
### 公有子网 vs 私有子网
这是 VPC 设计中最重要的概念:
**公有子网**:能直接访问互联网(有路由到 Internet Gateway
- 放什么负载均衡器、跳板机Bastion Host
- 类比:小区临街的商铺,外面的人可以直接进来
**私有子网**:不能直接被互联网访问
- 放什么:应用服务器、数据库
- 类比:小区内部的住宅楼,外面的人进不来
**为什么要分公有和私有?**
安全!你的数据库不需要被全世界访问,只需要被你的应用服务器访问。把它放在私有子网里,即使有人知道了它的 IP 地址,也连不上。
### 典型的网络架构(三层)
```
互联网
┌─────────────────── VPC ───────────────────┐
│ │
│ 公有子网(面向互联网) │
│ ├── 负载均衡器 ALB │
│ └── NAT Gateway │
│ │
│ 私有子网-应用层(不直接面向互联网) │
│ ├── 应用服务器 1 │
│ └── 应用服务器 2 │
│ │
│ 私有子网-数据层(最深处,最安全) │
│ ├── RDS 数据库 │
│ └── ElastiCache 缓存 │
│ │
└────────────────────────────────────────────┘
```
**流量路径**
用户 → 互联网 → ALB公有子网→ 应用服务器(私有子网)→ 数据库(私有子网)
外部用户只能接触到 ALB永远接触不到数据库。层层保护。
---
## 核心概念三Internet Gateway互联网网关
Internet Gateway 是 VPC 连接互联网的"大门"。
- 一个 VPC 只能有一个 Internet Gateway
- 公有子网的路由表指向它
- 没有它VPC 里的任何东西都上不了网
---
## 核心概念四NAT Gateway
**问题**:私有子网里的服务器不能直接上网,但它需要下载软件更新、调用外部 API 怎么办?
**解决方案**NAT Gateway
NAT Gateway 放在公有子网里,私有子网的流量通过它"转发"到互联网:
- 私有子网的服务器可以**主动**访问互联网(下载更新、调用 API
- 但互联网上的人**不能**主动连接到私有子网的服务器
**类比**:小区的快递柜。你可以往外寄快递(主动出去),但外面的人不能通过快递柜进入小区(不能主动进来)。
**注意**NAT Gateway 按小时收费(约 $0.045/小时 ≈ $32/月),学习时用完记得删除!
---
## 核心概念五路由表Route Table
路由表告诉网络流量"该往哪走"。每个子网关联一个路由表。
**公有子网的路由表**
| 目标地址 | 下一跳 | 含义 |
|----------|--------|------|
| 10.0.0.0/16 | local | VPC 内部的流量,本地处理 |
| 0.0.0.0/0 | Internet Gateway | 其他所有流量,走互联网网关 |
**私有子网的路由表**
| 目标地址 | 下一跳 | 含义 |
|----------|--------|------|
| 10.0.0.0/16 | local | VPC 内部的流量,本地处理 |
| 0.0.0.0/0 | NAT Gateway | 其他所有流量,走 NAT 网关 |
`0.0.0.0/0` 表示"所有地址"——就是说"如果不知道往哪走,就走这条路"。
---
## 核心概念六:安全组(复习+深入)
安全组我们在 EC2 那天学过,这里再深入一点。
**安全组的一个强大特性:可以引用其他安全组**
比如:
- 应用服务器的安全组:允许来自"ALB 安全组"的流量
- 数据库的安全组:允许来自"应用服务器安全组"的流量
这样即使 IP 地址变了Auto Scaling 加了新服务器),安全规则依然有效。因为你引用的是"身份"(安全组),不是具体的 IP。
---
## 默认 VPC vs 自定义 VPC
AWS 每个 Region 都有一个"默认 VPC",方便你快速上手。但生产环境应该创建自定义 VPC
| | 默认 VPC | 自定义 VPC |
|--|---------|-----------|
| 子网 | 全是公有子网 | 你自己设计公有/私有 |
| 安全性 | 较低 | 你完全控制 |
| 适合 | 学习、快速实验 | 正式项目 |
---
## 今天的小测验
1. 公有子网和私有子网的区别是什么?数据库应该放在哪种子网里?
2. NAT Gateway 的作用是什么?为什么私有子网需要它?
3. 为什么安全组引用其他安全组比引用 IP 地址更好?
4. 如果一个子网的路由表里没有指向 Internet Gateway 的路由,这个子网是公有还是私有?
---
## 延伸阅读
- [VPC 用户指南](https://docs.aws.amazon.com/vpc/latest/userguide/)
- [VPC 设计最佳实践](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-best-practices.html)
---
## 明天预告
明天学习 Route 53DNS 服务)和 CloudFrontCDN 加速)——让全球用户都能快速访问你的网站,并且实现智能的流量路由。