🎃

Terraform用のVPCのモジュールのサンプル

2023/10/26に公開

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 変数のデータ型を指定します。例:stringboolなど。
default 変数のデフォルト値を設定します。これはオプションです。
description 各変数の説明を提供します。これはドキュメントに役立ちます。

output.tfファイル

項目 説明
output "vpc_id" 生成されたVPCのIDを出力します。
output "vpc_arn" 生成されたVPCのAmazon Resource Name (ARN)を出力します。

Discussion