SQS VPCエンドポイントのDNS設定の確認

SQSへのプライベートアクセスに必要なDNS設定を有効にしてください。

説明

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
}

参考資料