😎
Terraformのnat-gatewayのモジュール
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