🍣
Terraformのvpc-endpointのモジュール
vpc-endpointのモジュールファイル
vpc-endpoint.tfファイル
# VPCエンドポイントリソースを作成
resource "aws_vpc_endpoint" "this" {
vpc_id = var.vpc_id // VPCのID
service_name = var.service // 接続先サービス名
vpc_endpoint_type = var.endpoint_type // エンドポイントのタイプ(InterfaceまたはGateway)
route_table_ids = var.route_table_ids // 適用するルートテーブルのIDリスト
// タグの設定
tags = {
Name = var.name // VPCエンドポイントの名前
}
}
variables.tfファイル
# VPCのIDを指定
variable "vpc_id" {
description = "The VPC ID."
}
# VPCエンドポイントの名前を指定
variable "name" {
description = "The name of the VPC endpoint."
}
# 接続先サービス名を指定
variable "service" {
description = "The service name."
}
# エンドポイントのタイプを指定(InterfaceまたはGateway)
variable "endpoint_type" {
description = "The VPC endpoint type."
}
# 適用するルートテーブルのIDリストを指定
variable "route_table_ids" {
description = "The route table IDs."
type = list(string)
}
output.tfファイル
# 作成したVPCエンドポイントのIDを出力
output "vpc_endpoint_id" {
value = aws_vpc_endpoint.this.id // 作成したVPCエンドポイントのID
}
providers.tfファイル
# 必要なプロバイダとそのバージョンを定義
terraform {
required_providers {
aws = {
source = "hashicorp/aws" // AWSプロバイダのソース
version = "~> 5.0" // バージョン指定
}
}
}
# AWSプロバイダの設定
provider aws {
region = "ap-northeast-1" // AWSリージョン(東京リージョン)
}
README.mdファイル
vpc-endpoint.tfファイル
項目 | 説明 |
---|---|
resource "aws_vpc_endpoint" |
AWSのVPCエンドポイントを定義するTerraformリソースです。 |
vpc_id |
VPCエンドポイントが作成されるVPCのIDを指定します。このIDはvariables.tf で定義されています。 |
service_name |
接続するAWSサービスの名前を指定します(例:com.amazonaws.region.s3 )。 |
vpc_endpoint_type |
エンドポイントのタイプを指定します(例:Gateway やInterface )。 |
route_table_ids |
このVPCエンドポイントに関連付けるルートテーブルのIDを指定します。 |
tags |
AWSリソースに付けるタグを定義します。この例ではName タグが設定されています。 |
variables.tfファイル
項目 | 説明 |
---|---|
variable "vpc_id" |
VPCエンドポイントが作成されるVPCのIDを指定します。このIDはVPCエンドポイントの作成に使用されます。 |
variable "name" |
VPCエンドポイントの名前を指定します。 |
variable "service" |
接続するAWSサービスの名前を指定します。 |
variable "endpoint_type" |
VPCエンドポイントのタイプを指定します。 |
variable "route_table_ids" |
このVPCエンドポイントに関連付けるルートテーブルのIDを指定します。リスト形式で指定。 |
output.tfファイル
項目 | 説明 |
---|---|
output "vpc_endpoint_id" |
生成されたVPCエンドポイントのIDを出力します。このIDは他のTerraformコードやモジュールで使用できます。 |
Discussion