🎃
Terraform用のVPCのモジュールのサンプル
vpcのモジュールファイル
vpc.tfファイル
# AWS VPC(Virtual Private Cloud)リソースを定義
resource "aws_vpc" "sample_dev_vpc" {
# VPCのCIDR(Classless Inter-Domain Routing)ブロックを設定
cidr_block = var.vpc_cidr
# VPC内でのEC2インスタンスのテナンシー(共有または専用)を設定
instance_tenancy = var.tenancy
# VPC内でのDNSサポートを有効にする
enable_dns_support = true
# VPC内でのDNSホスト名を有効にするかどうかを設定
enable_dns_hostnames = var.enable_dns_hostnames
# IPv6 CIDRブロックの自動割り当てを有効にするかどうかを設定
assign_generated_ipv6_cidr_block = var.enable_ipv6
# AWSリソースにタグを割り当てる
tags = {
Name = var.vpc_name # VPCの名前をタグに割り当て
}
}
variables.tfファイル
variable "vpc_name" {
description = "VPCの名前"
type = string
default = "sample-dev-vpc"
}
variable "vpc_cidr" {
description = "VPCのCIDRブロック"
type = string
default = "10.0.0.0/16"
}
variable "tenancy" {
description = "VPCのインスタンス・テナンシー"
type = string
default = "default"
}
variable "enable_dns_hostnames" {
description = "VPCでDNSホスト名を有効にするかどうか"
type = bool
default = true
}
variable "enable_ipv6" {
description = "VPCでIPv6を有効にするかどうか"
type = bool
default = false
}
output.tfファイル
output "vpc_id" {
description = "VPCのID"
value = aws_vpc.sample_dev_vpc.id
}
output "vpc_arn" {
description = "VPCのARN"
value = aws_vpc.sample_dev_vpc.arn
}
providers.tfファイル
# 必要なプロバイダとそのバージョンを定義
terraform {
required_providers {
aws = {
source = "hashicorp/aws" // AWSプロバイダのソース
version = "~> 5.0" // バージョン指定
}
}
}
# AWSプロバイダの設定
provider aws {
region = "ap-northeast-1" // AWSリージョン(東京リージョン)
}
README.mdファイル
vpc.tfファイル
項目 | 説明 |
---|---|
resource "aws_vpc" |
AWS VPCを定義するTerraformリソースです。 |
cidr_block |
VPCのCIDRブロックを指定します。 |
instance_tenancy |
VPC内のEC2インスタンスのテナンシーを指定します。"default"または"dedicated"など。 |
enable_dns_support |
DNSサポートを有効にするかどうかを指定します。Trueで固定です。 |
enable_dns_hostnames |
VPCでDNSホスト名解決を有効にするかどうかを指定します。 |
assign_generated_ipv6_cidr_block |
VPC内でIPv6を有効にするかどうかを指定します。 |
variables.tfファイル
項目 | 説明 |
---|---|
variable |
Terraformで使用する入力変数を定義します。 |
type |
変数のデータ型を指定します。例:string 、bool など。 |
default |
変数のデフォルト値を設定します。これはオプションです。 |
description |
各変数の説明を提供します。これはドキュメントに役立ちます。 |
output.tfファイル
項目 | 説明 |
---|---|
output "vpc_id" |
生成されたVPCのIDを出力します。 |
output "vpc_arn" |
生成されたVPCのAmazon Resource Name (ARN)を出力します。 |
Discussion