跳到主要内容

VPC 网络

VPC 基础

VPC(Virtual Private Cloud)是云上的隔离网络环境,逻辑上等同于传统数据中心网络。

组件说明
VPC隔离的虚拟网络,定义 CIDR(如 10.0.0.0/16
子网VPC 内的网段分区,绑定可用区
公有子网有路由到 Internet Gateway,实例可获取公网 IP
私有子网无直接公网访问,通过 NAT Gateway 出站
Internet GatewayVPC 与公网的出入口
NAT Gateway私有子网的出站代理(只出不进)
路由表控制子网之间和出站的流量方向

安全组 vs NACL

安全组(Security Group)NACL
层级实例级别子网级别
类型有状态(自动允许回包)无状态(需显式出入规则)
规则只有允许规则允许 + 拒绝规则
优先级所有规则合并评估规则编号,匹配到即停止
推荐主要使用作为额外防线

安全组配置示例

安全组 Terraform
resource "aws_security_group" "web" {
name = "web-sg"
vpc_id = aws_vpc.main.id

# 入站:HTTP + HTTPS
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}

ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}

# 入站:仅允许堡垒机 SSH
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
security_groups = [aws_security_group.bastion.id]
}

# 出站:全部允许
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}

VPC 互联

方式场景特点
VPC Peering两个 VPC 互联不可传递、CIDR 不能重叠
Transit Gateway多 VPC 组网中心化路由,星型拓扑
VPN连接本地数据中心IPSec 加密隧道
专线低延迟连接 IDCDirect Connect / 专有网络

常见面试问题

Q1: 公有子网和私有子网的区别?

答案

  • 公有子网:路由表中有一条 0.0.0.0/0 → Internet Gateway 的路由,实例可分配公网 IP 直接访问互联网
  • 私有子网:路由表中 0.0.0.0/0 → NAT Gateway(或无默认路由),实例无公网 IP

最佳实践:Web 服务器放公有子网(或用 ALB),数据库和内部服务放私有子网。

Q2: 如何设计 VPC CIDR?

答案

  1. 预留足够地址空间:生产环境用 /16(65536 个 IP)
  2. 不同环境 CIDR 不重叠(方便 VPC Peering)
  3. 子网按可用区 × 用途划分(公有/私有/数据库)
  4. 预留 IP:每个子网 AWS 保留 5 个 IP

相关链接