让我们使用Terraform来构建VPC吧
首先
以下是使用Terraform构建VPC的模板示例。
将Terraform的版本设置为v1.1.6。
代码也可以在GitHub找到。
本次假設是以名為akane的系統的dev環境為基礎。
如果要建立相同配置的不同環境,請另外建立一個名為{環境名}的目錄。
akane (システム)
├── common (共通テンプレート)
│ ├── network.tf (スタック)
│ ├── outputs.tf (リソースのアプトプット生成)
│ └── variables.tf (パラメータ型定義)
└── dev (dev 環境)
└── main (dev 環境のテンプレート)
├── locals.tf (dev 環境の共通パラメータ)
├── main.tf (dev 環境のパラメータ)
├── outputs.tf (リソースのアプトプット出力)
└── providers.tf (AWS プロバイダー)
亚马逊网络服务(AWS)资源的构建内容
- VPC (10.0.0.0/16)
AWS 系统架构图

准备执行环境
请参考AWS上运行Terraform所需的设置。
AWS 资源构建步骤
-
- 执行以下操作以创建堆栈:
-
- 进入 akane/dev/main 目录
-
- 初始化 Terraform
-
- 应用 Terraform
执行以下操作以删除堆栈:
进入 akane/dev/main 目录
销毁 Terraform
构建模板
1. 通用模板
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "${var.system_name}-${var.env_type}-vpc"
cidr = var.vpc_cidr
}
##############################
# Network
##############################
output "network_vpc_id" {
value = module.vpc.vpc_id
description = "The name of the VPC id."
}
variable "system_name" {
type = string
}
variable "env_type" {
type = string
}
variable "vpc_cidr" {
type = string
}
2. 每个环境的模板
locals {
tags = {
"EnvType" = "dev"
"SystemName" = "akane"
"Terraform" = "true"
}
}
module "common" {
source = "../../common"
system_name = local.tags.SystemName
env_type = local.tags.EnvType
vpc_cidr = "10.0.0.0/16"
}
##############################
# Network
##############################
output "network_vpc_id" {
value = module.common.network_vpc_id
description = "The name of the VPC id."
}
provider "aws" {
region = "ap-northeast-1"
default_tags {
tags = local.tags
}
}