Terraformのコミュニティモジュールのススメ
Terraformでは多くのコミュニティモジュールが公開されており、 これらのモジュールを使うことで、簡単で、可読性の高いインフラコードを作ることができます。
例えば、VPCとそれに関連するサブネットやゲートウェイを作るにはterraform-aws-mofule/vpc を使うことで簡単に実現できます。 また、関連するサブネットやゲートウェイがまとまっているため可読性も高いです。
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "my-vpc"
cidr = "10.0.0.0/16"
azs = ["apne1-az1", "apne1-az2", "apne1-az4"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
enable_nat_gateway = true
enable_vpn_gateway = true
tags = {
Terraform = "true"
Environment = "dev"
}
}
コミュニティモジュールではInputsやOutputsがしっかり定義されているので、moduleのインプットを設計し柔軟にインフラを作ることができるし、後工程でvpc_id
を指定することも簡単にできます。
AWSに関して言えば、Awesome Terraform で紹介されているような Terraform AWS modules製やCloud Posse製が人気のようです。