説明
VPCでAmazon提供のDNSを使うにはenable_dns_supportが必要です。SQSの標準サービス名をインターフェイスエンドポイントのプライベートアドレスに解決するには、VPCのDNSホスト名とエンドポイントのプライベートDNSも有効にします。
想定される影響
DNS設定が適切でないと、アプリケーションがSQSの名前を解決できなかったり、意図したプライベート経路を使えなかったりする場合があります。
対処方法
VPCのenable_dns_supportとenable_dns_hostnamesを有効にし、エンドポイントでprivate_dns_enabled = trueを設定してください。アプリケーションが使うサービス名がエンドポイントのプライベートアドレスに解決されることを確認してください。
例
以下はDNS設定の抜粋です。完全な構成には、同じVPC内のエンドポイント用サブネットと、必要なHTTPSアクセスを許可するセキュリティグループを指定してください。
変更前
hcl
resource "aws_vpc" "main" {
cidr_block = "172.16.0.0/16"
enable_dns_support = false
enable_dns_hostnames = false
}
resource "aws_vpc_endpoint" "sqs_endpoint" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.us-east-1.sqs"
vpc_endpoint_type = "Interface"
}
変更後
hcl
resource "aws_vpc" "main" {
cidr_block = "172.16.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true
}
resource "aws_vpc_endpoint" "sqs_endpoint" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.us-east-1.sqs"
vpc_endpoint_type = "Interface"
private_dns_enabled = true
}