大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
AWS VPC
这一课你将能做到
- 理解 VPC 的核心概念(子网、路由表、网关)
- 创建公有/私有子网
- 配置安全组和 NACL
为什么要学
你的 EC2 实例直接暴露在公网很危险。VPC(Virtual Private Cloud)是虚拟私有云,把资源隔离在私有网络里,通过网关和路由控制访问。
人话:VPC 是「小区」,你的服务器是「住户」,门卫(安全组)控制谁能进。
核心概念
VPC(虚拟私有云)
├── 公有子网(Public Subnet)
│ ├── EC2(Web 服务器)
│ └── Internet Gateway(连接公网)
└── 私有子网(Private Subnet)
├── RDS(数据库)
├── ElastiCache(Redis)
└── NAT Gateway(访问公网,但公网不能访问它)
跟着做
步骤 1:创建 VPC
# AWS Console → VPC → Create VPC
# Name: my-vpc
# IPv4 CIDR: 10.0.0.0/16(提供 65536 个 IP)
步骤 2:创建子网
# 公有子网
Name: public-subnet-1
VPC: my-vpc
Availability Zone: us-east-1a
IPv4 CIDR: 10.0.1.0/24
# 私有子网
Name: private-subnet-1
VPC: my-vpc
Availability Zone: us-east-1a
IPv4 CIDR: 10.0.2.0/24
步骤 3:创建 Internet Gateway
# VPC → Internet Gateways → Create
# Name: my-igw
# Attach to VPC: my-vpc
步骤 4:配置路由表
# 公有路由表
Name: public-rt
Routes:
10.0.0.0/16 → local
0.0.0.0/0 → igw-xxxxxx(Internet Gateway)
Subnet associations: public-subnet-1
# 私有路由表
Name: private-rt
Routes:
10.0.0.0/16 → local
0.0.0.0/0 → nat-xxxxxx(NAT Gateway)
Subnet associations: private-subnet-1
步骤 5:NAT Gateway
# 让私有子网能访问公网(如 apt update),但公网不能访问它
# VPC → NAT Gateways → Create
# Name: my-nat
# Subnet: public-subnet-1(必须在公有子网)
# Elastic IP: 分配一个
步骤 6:安全组(实例级防火墙)
# Web 服务器安全组
Inbound:
HTTP (80) → 0.0.0.0/0
HTTPS (443) → 0.0.0.0/0
SSH (22) → 你的IP/32
Outbound:
All traffic → 0.0.0.0/0
# 数据库安全组
Inbound:
MySQL (3306) → Web 服务器安全组 ID
Outbound:
None(不需要访问公网)
步骤 7:NACL(子网级防火墙)
# 公有子网 NACL
Inbound:
Rule 100: HTTP (80) → Allow 0.0.0.0/0
Rule 110: HTTPS (443) → Allow 0.0.0.0/0
Rule 120: SSH (22) → Allow 你的IP/32
Rule *: All traffic → Deny 0.0.0.0/0
Outbound:
Rule 100: All traffic → Allow 0.0.0.0/0
面试常问
-
公有子网和私有子网区别? 公有子网有路由到 Internet Gateway,可被公网访问;私有子网没有,只能通过 NAT Gateway 访问公网。
-
安全组和 NACL 区别? 安全组是实例级(有状态,返回流量自动允许);NACL 是子网级(无状态,需显式允许返回流量)。
-
CIDR 块怎么选? 10.0.0.0/16 提供 65536 个 IP,/24 子网提供 256 个 IP。根据规模选。
自测三问
- 公有子网和私有子网的关键区别?
- NAT Gateway 的作用?
- 安全组是有状态还是无状态?
小结
VPC 隔离网络环境,公有/私有子网控制访问,安全组和 NACL 双层防护。