首页 AWS VPC 核心概念 - 用房间比喻搞懂虚拟网络
文章
取消

AWS VPC 核心概念 - 用房间比喻搞懂虚拟网络

AWS VPC(Virtual Private Cloud)是 AWS 上最基础也最重要的网络概念。如果你刚开始接触 AWS,面对 VPC、CIDR、子网、路由表、IGW、NAT 这一串名词可能会感到困惑。这篇文章用类比帮你理清它们之间的关系。

VPC —— 一间独立的房间

VPC 是 AWS 云里的一个私有、隔离的虚拟网络。可以把云想象成一栋大楼,VPC 就是你在大楼里租的一个独立房间

  • 房间里的人默认出不去(无公网访问),外面的人也进不来
  • 你自己决定房间怎么隔断(子网)、装不装门(Internet Gateway)、谁可以进出(路由表、安全组)
  • 不同 VPC 默认完全隔离,互不相通

从零新建 VPC 时,默认什么都没有——没有公网网关、没有路由、外面的流量进不来,里面的流量也出不去。如果需要打通网络,你需要一步步添加组件。

CIDR —— 房间的面积规划

10.0.0.0/16 是这个房间的面积图。/16 表示有 65,536 个可用 IP 地址。当你规划多个 VPC 时,各自的 CIDR 不能重叠,否则无法通过 VPC Peering 或 Transit Gateway 连通(路由会冲突)。

常见的做法是给不同环境分配不同的网段:生产环境用 10.0.0.0/16,开发环境用 10.1.0.0/16,测试环境用 10.2.0.0/16,后续需要打通时互不干扰。

子网 —— 房间里的隔断

VPC 可以通过子网(Subnet)进一步划分区域。子网有三种常见类型:

子网类型能否访问公网用途
Public 子网有 IGW,可以放 ALB、NAT Gateway 等需要公网访问的资源
Private 子网无直接公网访问放后端应用、数据库,更安全
VPN 子网通过 VPN 隧道连接本地数据中心

子网还和可用区(Availability Zone)绑定——你可以选择将子网放在 ap-northeast-1a 或 ap-northeast-1b。生产环境通常在不同可用区各建一个子网来实现高可用。

Internet Gateway —— 进出的大门

IGW(Internet Gateway)是 VPC 连接公网的门。VPC 默认没有这个门,需要手动创建并挂载到 VPC。挂载后,你还必须在路由表中添加一条指向 IGW 的路由,门才算真正打开。

当你启动 EC2 实例并分配了公网 IP,流量路径是:

1
EC2(公网 IP)→ 路由表(0.0.0.0/0 指向 IGW)→ IGW → Internet

为什么你之前在 AWS 上开的免费 EC2 可以直接上网? 因为 AWS 在每个 Region 自动创建了一个 Default VPC,已经配好了 IGW、Public 子网,并且默认给实例分配公网 IP。从零建自定义 VPC 时,这些都需要手动配置。

NAT Gateway —— Private 子网的出站通道

NAT Gateway 解决的是这样一个问题:Private 子网里的 EC2 没有公网 IP,但它可能需要下载软件包、访问外部 API。NAT Gateway 部署在 Public 子网中,为 Private 子网的实例提供出站公网访问能力,同时阻止外部主动入站连接到这些实例。

流量路径:

1
Private EC2(私有 IP)→ 路由表 → NAT Gateway(Public 子网)→ IGW → Internet

注意:NAT Gateway 只处理出站。如果 Public 子网的实例直接有公网 IP,它通过 IGW 上网不需要 NAT。NAT 只服务于没有公网 IP 的 Private 子网实例。

路由表 —— 交通规则

路由表告诉流量该怎么走。每个子网必须关联一张路由表(可以多个子网共用)。常见的路由条目:

目标网段下一跳说明
10.0.0.0/16localVPC 内部通信,自动生成
0.0.0.0/0igw-xxxPublic 子网通过 IGW 上公网
0.0.0.0/0nat-xxxPrivate 子网通过 NAT 出站
10.1.0.0/16pcx-xxx去往对端 VPC 的流量走 Peering 连接

路由匹配遵循最长前缀匹配原则——最具体的路由优先。

Security Group —— 门禁保安

Security Group(安全组)是附着在实例上的虚拟防火墙。它只支持 Allow 规则(默认全 Deny),并且是有状态的:如果你允许了入站 80 端口的流量,回包自动放行,不需要额外配置出站规则。

在 VPC 中规划安全组时,建议按角色划分——ALB、前端 EC2、后端 EC2 各一个安全组,后端安全组只允许来自 ALB 安全组的入站,而不是开放 IP 段。这样无论 ALB 的 IP 如何变化,规则依然有效。

把这些串起来

一个完整的 VPC 网络大概长这样:

1
2
3
4
5
6
7
8
9
10
VPC(10.0.0.0/16)
├── IGW(大门)
├── Public 子网
│   ├── ALB(用户访问入口)
│   └── NAT Gateway(Private 子网的出站通道)
├── Private 子网
│   ├── 前端 EC2 ← ALB 转发流量过来
│   └── 后端 EC2 ← 前端调用
├── 路由表(定义哪条路通向哪里)
└── 安全组(每台实例的门禁规则)

小结

VPC 的核心就是一台隔离的网络环境,IGW 是公网入口、NAT 是私有子网的出站通道、子网做网络划分、路由表做流量调度、安全组做访问控制。理解了这几者的关系,AWS 网络就不再神秘了。

本文由作者按照 CC BY 4.0 进行授权

Security Group vs NACL - 有状态和无状态到底差在哪

AWS 中心化网络架构 - 为什么所有流量都该走枢纽 VPC