使用 Terraform 演示 AWS 中 VPC Peering 的小型项目
Source: Dev.to
✅ 什么是 VPC Peering?
VPC Peering 是两个虚拟私有云(VPC)之间的网络连接,使它们能够像在同一网络中一样进行私有 IP 通信。

架构

✅ 在此演示中我们创建
✨ 网络
- 两个 VPC —— 一个在 us‑east‑1,一个在 us‑west‑2
- 每个 VPC 中各一个公共子网
- 每个 VPC 的互联网网关(用于访问互联网)
- 自定义路由表,包含指向互联网和对等 VPC 的路由
- 两个 VPC 之间的 跨区域 VPC 对等连接
✨ 计算资源
- 每个 VPC 中各一个 EC2 实例
✨ 安全组
- 来自任意位置的 SSH 访问(端口 22)
- 允许来自对等 VPC 的 ICMP(ping)
- 允许 VPC 之间的所有 TCP 流量
Source: …
💡 详细实现步骤
📌 步骤 1 – 前置条件
- 已安装 AWS CLI
- 已安装 Terraform
- 使用
aws configure配置 AWS 凭证
📌 步骤 2 – 在每个区域创建 SSH 密钥对
# us-east-1
aws ec2 create-key-pair \
--key-name vpc-peering-demo-east \
--region us-east-1 \
--query 'KeyMaterial' \
--output text > vpc-peering-demo-east.pem
# us-west-2
aws ec2 create-key-pair \
--key-name vpc-peering-demo-west \
--region us-west-2 \
--query 'KeyMaterial' \
--output text > vpc-peering-demo-west.pem
✅ main.tf 文件
(完整的 main.tf 为简洁起见已省略;它定义了 provider、VPC、子网、IGW、路由表、对等连接、EC2 实例和安全组。)
📌 步骤 3 – 部署主 VPC 与次 VPC

📌 步骤 4 – 创建公有子网

📌 步骤 5 – 挂载 Internet Gateway

📌 步骤 6 – 创建自定义路由表


📌 步骤 7 – 创建 VPC 对等连接

(后续步骤——路由表更新、安全组规则以及 EC2 实例的创建——遵循相同模式,已包含在完整的 Terraform 配置中。)
结果:
两个 VPC 已在不同区域完成对等,EC2 实例可以通过私有 IP 安全通信,同时仍可通过各自的 Internet Gateway 访问互联网。此方案演示了使用 Terraform 在 AWS 中实现跨区域网络的简洁方法。
📌 步骤 8 – 添加路由
在 两个 VPC 的路由表 中都添加了指向对等 VPC CIDR 的路由,路由通过对等连接转发,实现双向的私有 IP 通信。

相同的路由配置也必须从次 VPC 应用到主 VPC。
📌 步骤 9 – 安全组
在每个 VPC 中定义了安全组,以允许 SSH 管理访问。并在 VPC CIDR 范围之间放行 ICMP 和 TCP 流量,以验证连通性。
| Image | 描述 |
|---|---|
![]() | SSH、ICMP 与 TCP 规则 |
| 同上,出站规则 |
Source: …
必须对辅助 VPC 应用相同的安全组配置。
📌 步骤 10 – 启动 EC2 实例
在每个子网中使用适合区域的 AMI 和密钥对启动了 EC2 实例。

对辅助 VPC 重复实例创建步骤。
📌 data_source.tf

为辅助 VPC 创建等效的 data_source.tf 文件。
📌 locals.tf

📌 variables.tf

📌 输出
| 输出 | 截图 |
|---|---|
| 主 VPC 输出 | ![]() |
| 辅助 VPC 输出 | ![]() |
| 其他输出 | ![]() |
进一步资源
- YouTube 视频: Terraform Full Course – AWS VPC Peering (Day 15)
- GitHub 仓库: Terraform‑Full‑Course‑Aws / lessons / day15
DevOps #Terraform #AWS
感谢 Piyush Sachdeva 和 The CloudOps Community




