説明
DynamoDBのゲートウェイVPCエンドポイントは、関連付けたルートテーブルにサービスへの経路を追加します。エンドポイントを作成するだけでは、アプリケーション用サブネットの通信はその経路を使いません。
想定される影響
必要な関連付けがないと、DynamoDBに接続できなかったり、インターネットゲートウェイやNATなど別の経路が使われたりする場合があります。
対処方法
エンドポイントのroute_table_idsに、アプリケーション用サブネットが使うルートテーブルを指定してください。サブネット、ルートテーブル、エンドポイントが同じVPCに属し、アクセスポリシーが必要な操作を許可していることも確認してください。
例
変更後は、サブネットで使うルートテーブルをゲートウェイエンドポイントにも関連付けています。参照先のリソースはすべて同じVPCにある想定です。
変更前
hcl
resource "aws_vpc_endpoint" "dynamodb_vpce" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.us-east-1.dynamodb"
}
変更後
hcl
resource "aws_route_table_association" "private_rtb_assoc" {
subnet_id = aws_subnet.private_subnet2.id
route_table_id = aws_route_table.private_rtb2.id
}
resource "aws_vpc_endpoint" "dynamodb_vpce" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.us-east-1.dynamodb"
route_table_ids = [aws_route_table.private_rtb2.id]
}