AWS VPC
AWS VPC Deep Dive
1. VPC 基础与架构 (VPC Basics & Architecture)
Amazon VPC 允许你在 AWS 云中预置一个逻辑隔离的部分,在这个部分中,你可以启动定义的虚拟网络中的 AWS 资源。
1.1 核心概念
- Region (区域) 级别:VPC 是跨越整个区域(Region)的,覆盖该区域内所有的可用区(AZ)。
- CIDR 块 (Classless Inter-Domain Routing):
- 创建 VPC 时必须指定 IPv4 CIDR 块(例如
10.0.0.0/16)。 - 主要 CIDR 不可修改,但可以添加辅助 IPv4 CIDR 块。
- 支持双栈模式(同时使用 IPv4 和 IPv6)。
- 创建 VPC 时必须指定 IPv4 CIDR 块(例如
- Subnet (子网):
- AZ 级别:子网必须位于单个可用区内,不可跨越 AZ。
- 保留地址:每个子网有 5 个 IP 地址 被 AWS 保留,不可使用(例如:
.0网络地址,.1路由器,.2DNS,.3预留,.255广播地址)。
- 子网类型:
- 公有子网 (Public Subnet):路由表中包含指向 Internet Gateway (IGW) 的路由。
- 私有子网 (Private Subnet):没有直接指向 IGW 的路由。
- VPN-only 子网:流量路由到 Virtual Private Gateway (VGW)。
1.2 默认 VPC vs 非默认 VPC
- 默认 VPC:每个 Region 自带,自动配置了 IGW,实例启动时自动分配公有 IP。
- 非默认 VPC:完全隔离,需要手动配置 IGW、路由表等。
2. 路由与互联网连接 (Routing & Connectivity)
如何让 VPC 内部的资源访问互联网或被互联网访问,取决于网关配置。
2.1 Internet Gateway (IGW)
- 作用:实现 VPC 与互联网之间的双向通信(IPv4/IPv6)。
- 特性:水平扩展、高可用、无带宽限制。
- 配置:一个 VPC 只能附加一个 IGW。必须在路由表中配置
0.0.0.0/0指向 IGW。
2.2 NAT 设备 (仅 IPv4)
用于允许私有子网中的实例访问互联网(如下载补丁),但阻止互联网主动发起连接。
- NAT Gateway (推荐):
- 托管服务:AWS 负责高可用和扩展性。
- 位置:必须部署在 公有子网 中。
- IP 要求:必须绑定一个 Elastic IP (EIP)。
- 可用性:虽然 NAT Gateway 是区域级服务,但它是在特定 AZ 中创建的。为了实现多 AZ 高可用,应在每个 AZ 创建一个 NAT Gateway。
- 限制:不支持安全组(Security Groups),使用 NACL 控制流量。
- NAT Instance (旧版):
- 使用 EC2 实例配置。需手动管理修补和扩容。
- 关键配置:必须在 EC2 实例设置中 禁用源/目标检查 (Disable Source/Destination Check)。
2.3 Egress-Only Internet Gateway (仅 IPv6)
- 作用:IPv6 版本的 NAT。允许 VPC 内的 IPv6 实例出站通信,拒绝入站通信。
- 特性:有状态(Stateful),即出站请求的返回流量是被允许的。
3. 安全性 (Security)
SAA 考试核心考点:必须清晰区分安全组和网络 ACL。
| 特性 | 安全组 (Security Group) | 网络 ACL (Network ACL) |
|---|---|---|
| 作用级别 | 实例级别 (Instance Level) | 子网级别 (Subnet Level) |
| 状态 | 有状态 (Stateful):允许入站的请求,自动允许出站响应(反之亦然)。 | 无状态 (Stateless):入站和出站流量必须分别明确允许。 |
| 规则类型 | 仅支持 ALLOW (允许) 规则。 | 支持 ALLOW 和 DENY (拒绝) 规则。 |
| 评估顺序 | 评估所有规则后决定。 | 按数字顺序评估 (从小到大),匹配即停止。 |
| 应用场景 | 第一道防线,针对具体应用。 | 第二道防线,用于屏蔽特定恶意 IP。 |
- 临时端口 (Ephemeral Ports):配置 NACL 时,记得允许 1024-65535 端口的返回流量,否则 NAT Gateway 或 Lambda 可能无法工作。
- VPC Block Public Access (BPA):新功能,可在 VPC 或子网级别声明性地阻止互联网访问。
4. 网络组件与服务 (Network Components & Services)
4.1 Route Tables (路由表)
- 规则:
- 每个子网必须关联一个路由表(未显式关联则使用主路由表)。
- 最长前缀匹配 (Longest Prefix Match):路由优先级由最具体的路由决定(CIDR 范围越小优先级越高)。
- Local 路由:每个路由表自带一条
Local路由,用于 VPC 内部通信,不可删除。
4.2 IP 地址
- Elastic IP (EIP):静态公有 IPv4 地址。如果分配了 EIP 但未附加到运行中的实例,AWS 会收取闲置费。
- DHCP Option Sets:配置域名服务器和域名。创建后不可修改,只能新建并关联。
4.3 DNS 支持
- 要使 VPC 内的实例拥有公有 DNS 主机名,必须将 VPC 属性
enableDnsHostnames和enableDnsSupport都设置为true。
5. VPC 连接选项 (Peering & Endpoints)
5.1 VPC Peering (对等连接)
- 作用:连接两个 VPC(同账号或跨账号、同区域或跨区域),流量走 AWS 骨干网。
- 限制:
- CIDR 块不能重叠。
- 不可传递 (Non-transitive):A 连接 B,B 连接 C,A 不能直接访问 C(除非再建立 A-C 连接)。
5.2 VPC Endpoints (终端节点)
无需通过公网(IGW/NAT)即可私有访问 AWS 服务(如 S3, DynamoDB)。
- Gateway Endpoints (网关终端节点):
- 支持服务:仅支持 S3 和 DynamoDB。
- 原理:在路由表中添加一条路由,目标是 AWS 服务的 Prefix List。
- 成本:免费。
- Interface Endpoints (接口终端节点 / PrivateLink):
- 支持服务:大多数其他 AWS 服务(如 SQS, SNS, Kinesis 等)。
- 原理:在子网中创建一个带有私有 IP 的弹性网络接口 (ENI)。
- 成本:按小时和流量收费。
5.3 VPN & Direct Connect
- AWS Managed VPN:通过 Internet 建立 IPSec 隧道。
- VGW (Virtual Private Gateway):AWS 端的 VPN 集中器。
- CGW (Customer Gateway):客户本地数据中心的物理或软件设备。
- Direct Connect (DX):专用物理专线,不经过公网,提供更稳定和高带宽的连接。
6. 监控与高级功能 (Monitoring & Advanced Features)
6.1 VPC Flow Logs (流日志)
- 作用:捕获进出 VPC 网络接口的 IP 流量元数据(源 IP、目标 IP、端口、协议、接受/拒绝状态)。
- 存储:可发布到 CloudWatch Logs 或 S3。
- 限制:不是实时包捕获(Packet Capture),不包含数据包内容,仅包含元数据。
- 用途:故障排查(如查看为何 SSH 被拒绝)、安全审计。
6.2 VPC Traffic Mirroring (流量镜像)
- 作用:复制实际的网络流量(Payload)并发送到安全设备或监控设备进行深度包检测。
6.3 IPAM (IP Address Manager)
- 作用:集中规划、跟踪和监控整个 AWS 组织中的 IP 地址使用情况,防止 IP 重叠。
7. 最佳实践总结 (Exam Tips)
Note - S3 访问问题:如果私有子网中的实例访问 S3 超时,检查是否配置了 Gateway Endpoint。如果是跨区域访问 S3,Gateway Endpoint 不支持,需使用 Interface Endpoint 或 NAT Gateway。
Note - Bastion Host (堡垒机):应部署在公有子网,安全组仅允许来自管理员 IP 的 SSH/RDP 访问。
Note - 排查连接性问题:
- 如果由 Security Group 引起:出站通常是通的,检查入站规则。
- 如果由 NACL 引起:检查出站和入站规则(因为它是无状态的)。
- 检查路由表是否正确指向了 IGW 或 NAT。
Note - IPv4 耗尽:如果子网 IP 不够用,无法扩展现有 CIDR,但可以向 VPC 添加辅助 CIDR 块(Secondary CIDR),然后在新 CIDR 中创建新子网。或者使用 IPv6 子网。
Note - High Availability (HA):始终在至少两个可用区(AZ)中设计架构。NAT Gateway 和 Bastion Host 都应是多 AZ 部署。