一句话理解
Subnet 划分 VPC 地址空间并绑定一个 AZ;Route Table 按目的地址决定流量的下一跳。
CIDR 基础
- IPv4 共 32 位;
/16表示前 16 位固定,剩余 16 位用于地址。 10.0.0.0/16覆盖10.0.0.0–10.0.255.255,共有 65,536 个地址。10.0.1.0/24共有 256 个地址;AWS 在每个 IPv4 子网保留前 4 个和最后 1 个地址,因此可分配 251 个。- 规划时应避免不同 VPC、本地网络和未来连接的 CIDR 重叠。
Subnet
- 一个子网只能位于一个 AZ。
- 常见设计是在两个或更多 AZ 分别创建公有、私有应用、私有数据库子网。
- Public 与 Private 不是创建时固定的“类型”,主要由关联路由决定。
Route Table
- 每个子网关联一张路由表。
local路由负责 VPC CIDR 内部通信。0.0.0.0/0是 IPv4 默认路由;::/0是 IPv6 默认路由。- 路由选择使用最长前缀匹配:更具体的目的网段优先于默认路由。
- 例如
10.0.0.0/16 → local会优先于0.0.0.0/0 → IGW。
公有子网判定
要让 EC2 直接与互联网通信,通常同时需要:
- 子网路由表包含
0.0.0.0/0 → IGW。 - 实例具有公有 IPv4 或 Elastic IP。
- Security Group 和 NACL 允许所需流量。
- 应用正在正确端口监听。
Auto-assign public IPv4 只决定实例是否自动获得公有 IPv4,不能单独把子网变成公有子网。
私有子网与主动出网
私有子网没有到 IGW 的直接路由,但可以:
- 通过公有子网中的 NAT Gateway 主动访问互联网。
- 通过 VPC Endpoint 私密访问支持的 AWS 服务。
- 通过 VPN 或 Direct Connect 访问本地网络。
生产架构建议
- 至少跨两个 AZ 建立对应子网。
- 公有层放 ALB、NAT Gateway 等需要公网路径的组件。
- 应用与数据库尽量放私有子网,并按安全边界继续拆分。
- 常见做法是每个 AZ 一个 NAT Gateway,并让私有子网使用同 AZ NAT,避免跨 AZ 依赖和额外费用。
- 使用安全组引用表达 ALB → 应用 → 数据库的最小权限关系。
Cloud Practitioner 考点
Subnet 组织资源;Route Table 决定路径;公有子网能通过 IGW 直接连接互联网,私有子网通常通过 NAT 主动出网。
SAA-C03 考点
CIDR、最长前缀匹配、主路由表、跨 AZ 子网、NAT 高可用、VPC Endpoint,以及 IPv4 与 IPv6 默认路由。
常见误区
- 子网名字写着
public并不会自动创建公网连接。 - 有 IGW 不等于实例可以访问互联网。
- 私有子网不是“完全不能出网”。
- 同一 VPC 中不同子网的通信依赖
local路由,也仍受 SG 与 NACL 影响。
面试高频问题
- 如何判断一个子网是否为公有子网?
0.0.0.0/0与local路由同时匹配时选择哪一条?- 为什么建议在每个 AZ 部署 NAT Gateway?
/16与/24分别有多少 IPv4 地址,AWS 可用地址为什么更少?
重点记忆
地址用 CIDR 划分,子网绑定 AZ,路由按最长前缀决定下一跳。