terraformでAmazon VPC エントポイント(endpoint)からのDynamoDB接続の設定を行います。
DynamoDBはVPC内には設置されませんが、VPCエンドポイント(endpoint)を作成することで、VPC環境からDynamoDBへの接続が行えます。
VPC内のEC2やLambdaからのDynamoの利用を行うことができるようになるため非常に便利です。
こちらをterraformで実施してみます。
以下の記事でVPCとEC2部分はご確認ください。
terraform基本設定
まず、基本設定として以下の設定を記載しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
######################### ## BaseSettings ######################### variable "aws_region" { default = "ap-northeast-1" } variable "aws_zone" { default = "ap-northeast-1c" } |
前回は省きましたが今回はこちらを利用するので。
DynamoDBとVPCエンドポイント(endpoint)の設定
そしてDynamoDBとVPCエンドポイント(endpoint)の設定を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
######################### ## Dynamodb and Endpoint ######################### resource "aws_dynamodb_table" "default" { name = "dynamo-test" read_capacity = 1 write_capacity = 1 hash_key = "id" attribute { name = "id" type = "S" } } resource "aws_vpc_endpoint" "dynamodb_endpoint" { vpc_id = "${aws_vpc.default.id}" service_name = "com.amazonaws.${var.aws_region}.dynamodb" policy = <<POLICY { "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" } ] } POLICY } resource "aws_vpc_endpoint_route_table_association" "private_dynamodb" { vpc_endpoint_id = "${aws_vpc_endpoint.dynamodb_endpoint.id}" route_table_id = "${aws_route_table.default.id}" } |
作成されたエンドポイントはこちらとなります。
VPCエンドポイントの設定はあくまでVPC側からの到達の設定となりDynamoDBでの設定は必要ありません。
こちらを利用してVPC内のEC2やLambdaからDynamoDBに接続をすることができるようになります。
このブログは株式会社CoLabMixによる技術ブログです。
GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。
Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。
開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。