AWS 基礎建設 Terraform 專案(us-east-1),管理雙 VPC 網路架構和相關 AWS 資源。
- 雙 VPC 架構(Main + Utility)with VPC Peering
- 多可用區域子網路(Public / Private / RDS × 3 AZ)
- Internet Gateway(兩個 VPC 各一個)
- NAT Instance(程式碼已備妥,目前註解)
- Security Groups 預設配置
- IAM Users、Groups、Roles、Policies
- Route 53 Hosted Zones
- S3 Buckets
# 複製變數範本
cp terraform.tfvars.sample terraform.tfvars
# 編輯變數
vim terraform.tfvars
# 初始化
terraform init
# 預覽變更
terraform plan
# 套用變更
terraform apply# 列出所有輸出
terraform output
# VPC IDs
terraform output main_vpc_id
terraform output utility_vpc_id
# Subnet IDs
terraform output public_subnet_ids
terraform output private_subnet_ids
# Security Group IDs
terraform output web_elb_security_group_idNAT Instance 程式碼已在 gateway.tf 和 routes.tf 中註解保留。啟用步驟:
- 取消
gateway.tf中 NAT 相關資源的註解 - 取消
routes.tf中aws_route.main-private-nat的註解 - 執行
terraform apply
使用 Terraform 1.5+ import block:
# imports.tf
import {
to = aws_vpc.main
id = "vpc-xxxxxxxx"
}執行 terraform plan 確認無差異後 terraform apply。
├── vpc.tf # VPC 定義
├── subnets.tf # 子網路
├── gateway.tf # Internet Gateway + NAT Instance
├── routes.tf # Route Tables
├── peering.tf # VPC Peering
├── security_groups.tf # Security Groups
├── iam.tf # IAM 資源
├── rds.tf # RDS Subnet Group
├── route53.tf # Route 53 Hosted Zones
├── s3.tf # S3 Buckets
├── ec2.tf # EC2 Key Pairs
├── sns.tf # SNS Topics
├── imports.tf # Import 宣告
├── variables.tf # 變數定義
├── outputs.tf # 輸出值
├── providers.tf # Provider 設定
├── versions.tf # 版本鎖定
└── backend.tf # Backend 設定