让我们使用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 系统架构图

vpc.png

准备执行环境

请参考AWS上运行Terraform所需的设置。

AWS 资源构建步骤

    1. 执行以下操作以创建堆栈:

 

    1. 进入 akane/dev/main 目录

 

    1. 初始化 Terraform

 

    1. 应用 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
  }
}
广告
将在 10 秒后关闭
bannerAds