😎

Terraformのnat-gatewayのモジュール

2023/10/26に公開

nat-gatewayのモジュールファイル

nat-gateway.tfファイル
# NATゲートウェイリソースを作成
resource "aws_nat_gateway" "this" {
  allocation_id = aws_eip.nat[0].id  // 最初のEIP(Elastic IP)を使用
  subnet_id     = var.subnet_id  // NATゲートウェイに関連付けるサブネットのID

  tags = {
    Name = var.name  // NATゲートウェイの名前
  }
}

# Elastic IPリソースを作成
resource "aws_eip" "nat" {
  count  = 1  // 作成するEIPの数
  domain = "vpc"  // VPC内でEIPを使用(vpc = trueの代わりに)
}


variables.tfファイル
# NATゲートウェイの名前
variable "name" {
  description = "The name of the NAT Gateway"
  type        = string
}

# NATゲートウェイに関連付けるサブネットのID
variable "subnet_id" {
  description = "The ID of the subnet to associate with the NAT Gateway"
  type        = string
}

output.tfファイル
# NATゲートウェイのIDを出力
output "nat_gateway_id" {
  value = aws_nat_gateway.this.id  // 作成したNATゲートウェイのID
}


providers.tfファイル
# 必要なプロバイダとそのバージョンを定義
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"  // AWSプロバイダのソース
      version = "~> 5.0"  // バージョン指定
    }
  }
}

# AWSプロバイダの設定
provider aws {
  region = "ap-northeast-1"  // AWSリージョン(東京リージョン)
}


README.mdファイル

nat-gateway.tfファイル

項目 説明
resource "aws_nat_gateway" AWS NAT Gatewayを定義するTerraformリソースです。
allocation_id 使用するElastic IPのIDを指定します。この例ではaws_eip.nat[0].idとして最初のEIPを使用しています。
subnet_id NAT Gatewayを作成するサブネットのIDを指定します。このIDはvariables.tfで定義されています。
tags AWSリソースに付けるタグを定義します。この例ではNameタグが設定されています。
resource "aws_eip" "nat" Elastic IPを1つ生成します。このIPはNAT Gatewayに割り当てられます。
count 生成するElastic IPの数を指定します。この例では1つのEIPが生成されます。
domain EIPがVPC内で使用されることを指定します。非推奨のvpc = trueの代わりに使用されています。

variables.tfファイル

項目 説明
variable "name" NAT Gatewayに設定する名前タグを指定します。
variable "subnet_id" NAT Gatewayが作成されるサブネットのIDを指定します。このIDはNAT Gatewayの作成に使用されます。

output.tfファイル

項目 説明
output "nat_gateway_id" 生成されたNAT GatewayのIDを出力します。このIDは他のTerraformコードやモジュールで使用することができます。

Discussion