aws-doc/课程/第二阶段-核心服务/第16天-VPC虚拟私有云.md
2026-05-08 10:24:39 +08:00

182 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第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 加速)——让全球用户都能快速访问你的网站,并且实现智能的流量路由。