在当今的云计算时代,网络是云基础设施的基石。对于任何希望在 AWS 上构建稳健、安全且可扩展应用的企业而言,掌握 Amazon Virtual Private Cloud(VPC) 是必不可少的第一步。
本文将全面介绍 Amazon VPC 的核心功能、典型应用场景,并通过一个实际的金融行业案例,演示如何使用 AWS CLI 构建一个符合合规要求的多层安全网络架构。
什么是 Amazon VPC?
Amazon VPC(Virtual Private Cloud) 是 AWS 提供的基础网络服务,允许您在 AWS 云中创建一个逻辑隔离的虚拟网络环境。在这个私有网络中,您可以完全控制 IP 地址范围、子网划分、路由策略和访问控制,就像在本地数据中心中一样灵活和安全。
简而言之,VPC 就是您在 AWS 中的“专属网络空间”,所有其他 AWS 资源(如 EC2 实例、RDS 数据库、Lambda 函数等)都必须部署在某个 VPC 内。
Amazon VPC 核心功能一览
1. 自定义网络空间
通过指定 CIDR 地址块(如 10.0.0.0/16
),您可以定义 VPC 的 IP 地址范围,满足不同规模应用的需求。
2. 子网划分与可用区隔离
您可以在不同的 可用区(Availability Zones) 中创建子网,实现高可用性。子网可分为:
公有子网:可通过 Internet Gateway 访问公网
私有子网:与公网隔离,仅能通过 NAT Gateway 访问互联网
3. 安全控制机制
安全组(Security Groups):有状态的防火墙,控制 EC2 实例级别的入站/出站流量。
网络 ACL(Network Access Control List):无状态的子网级防火墙,提供额外的访问控制层。
4. 灵活的路由控制
通过 路由表(Route Tables),您可以精确控制子网中的流量走向,例如:
指向 Internet Gateway 实现公网访问
指向 NAT Gateway 允许私有子网访问互联网
指向 VPC 对等连接或 Transit Gateway 实现跨 VPC 通信
5. 多样化的网络连接选项
6. 监控与运维支持
VPC Flow Logs:记录网络流量信息,用于安全审计和故障排查
VPC Endpoints:无需公网即可私密访问 S3、DynamoDB 等 AWS 服务
DHCP Options Set:自定义 DNS 服务器、域名等网络配置
Elastic IP:静态公网 IP,可动态绑定到实例
典型应用场景
Amazon VPC 适用于多种企业级场景:
动手实践:使用 AWS CLI 配置 VPC
以下是构建一个基本 VPC 架构的命令行示例(请替换实际资源 ID):
1. 创建 VPC
aws ec2 create-vpc \
--cidr-block 10.0.0.0/16 \
--tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=MyVPC}]'
2. 创建公有和私有子网
# 公有子网(us-east-1a)
aws ec2 create-subnet \
--vpc-id vpc-0123456789abcdef0 \
--cidr-block 10.0.1.0/24 \
--availability-zone us-east-1a \
--tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=Public-Subnet-1}]'
# 私有子网(us-east-1b)
aws ec2 create-subnet \
--vpc-id vpc-0123456789abcdef0 \
--cidr-block 10.0.2.0/24 \
--availability-zone us-east-1b \
--tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=Private-Subnet-1}]'
3. 配置 Internet Gateway
# 创建 IGW
aws ec2 create-internet-gateway \
--tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=MyIGW}]'
# 绑定到 VPC
aws ec2 attach-internet-gateway \
--internet-gateway-id igw-0123456789abcdef0 \
--vpc-id vpc-0123456789abcdef0
4. 配置公有子网路由
# 创建路由表
aws ec2 create-route-table \
--vpc-id vpc-0123456789abcdef0 \
--tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=Public-RT}]'
# 添加默认路由到 IGW
aws ec2 create-route \
--route-table-id rtb-0123456789abcdef0 \
--destination-cidr-block 0.0.0.0/0 \
--gateway-id igw-0123456789abcdef0
# 关联子网
aws ec2 associate-route-table \
--route-table-id rtb-0123456789abcdef0 \
--subnet-id subnet-0123456789abcdef0
5. 创建 NAT Gateway(支持私有子网访问互联网)
# 分配弹性 IP
aws ec2 allocate-address --domain vpc
# 创建 NAT Gateway(需在公有子网)
aws ec2 create-nat-gateway \
--subnet-id subnet-0123456789abcdef0 \
--allocation-id eipalloc-0123456789abcdef0 \
--tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=MyNATGW}]'
⚠️ 注意:NAT Gateway 创建需要时间,请等待其状态变为
available
后再配置路由。
6. 为私有子网配置 NAT 路由
aws ec2 create-route \
--route-table-id rtb-1234567890abcdef0 \
--destination-cidr-block 0.0.0.0/0 \
--nat-gateway-id nat-0123456789abcdef0
7. 创建安全组(以 Web 服务器为例)
aws ec2 create-security-group \
--group-name WebServerSG \
--description "Allow HTTP/HTTPS" \
--vpc-id vpc-0123456789abcdef0
aws ec2 authorize-security-group-ingress \
--group-id sg-0123456789abcdef0 \
--protocol tcp --port 80 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress \
--group-id sg-0123456789abcdef0 \
--protocol tcp --port 443 --cidr 0.0.0.0/0
8. 启用 VPC Flow Logs(用于监控)
# 创建日志组
aws logs create-log-group --log-group-name VPCFlowLogs
# 创建 IAM 角色和策略(略,见前文)
# 创建 Flow Logs
aws ec2 create-flow-logs \
--resource-type VPC \
--resource-ids vpc-0123456789abcdef0 \
--traffic-type ALL \
--log-destination-type cloud-watch-logs \
--log-destination "arn:aws:logs:us-east-1:123456789012:log-group:VPCFlowLogs" \
--deliver-logs-permission-arn "arn:aws:iam::123456789012:role/VPCFlowLogsRole"
实际案例:金融服务公司多层安全架构
🎯 场景需求
一家银行需在 AWS 上部署核心银行系统,要求:
符合金融行业合规标准(如 PCI DSS)
高可用性,跨可用区部署
严格的网络隔离与访问控制
支持混合云连接
🏗️ 解决方案架构
[公网用户]
↓ HTTPS
[Application Load Balancer] ← AWS WAF + Shield
↓
[Web 层 EC2](公有子网)
↓
[应用层 EC2](私有子网)
↓
[RDS 主从数据库](私有子网,仅内网访问)
↑
[管理子网] ← 堡垒主机 + 监控服务器
↓
[VPC Flow Logs + CloudTrail + GuardDuty] → 安全审计
↓
[Site-to-Site VPN / Direct Connect] ↔ 本地数据中心
🔐 安全设计亮点
纵深防御:安全组 + 网络 ACL 双重防护
最小权限原则:仅开放必要端口
私有服务访问:通过 VPC Endpoint 访问 S3/DynamoDB,避免公网暴露
集中监控:启用 Flow Logs、CloudTrail、Config 实现全面可观测性
混合连接:通过 Direct Connect 实现低延迟、高安全的本地连接
最佳实践建议
CIDR 规划:预留足够 IP 空间,避免后期扩展困难
高可用设计:关键组件跨可用区部署
最小权限:安全组默认拒绝所有,只开放必需端口
日志留存:启用 Flow Logs 并长期保存,用于审计
自动化部署:使用 Terraform 或 CloudFormation 管理 VPC 配置
定期审查:使用 AWS Config 和 IAM Access Analyzer 检查配置合规性
延伸阅读: