Amazon Virtual Private Cloud (Amazon VPC) 内の AWS のサービス、エンドポイントサービス、または承認済み AWS Marketplace サービス用の新しいインターフェイス Amazon VPC エンドポイント (AWS PrivateLink) を作成しています。しかし、次のエラーメッセージが表示されます。
"private-dns-enabled cannot be set because there is already a conflicting DNS domain."
この問題を解決する方法を教えてください。
簡単な説明
インターフェイス VPC エンドポイントの作成時に DNS ドメインの競合エラーが発生する一般的な理由は次のとおりです。
- VPC に同じサービスのインターフェイス VPC エンドポイントが既に存在する。
- VPC が、目的のサービス名をカバーするプライベートホストゾーンに既に関連付けられている。
解決方法
VPC に同じサービスのインターフェイス VPC エンドポイントが既に存在する
インターフェイスエンドポイントの作成時に PrivateDNS を有効にすると、プライベートホストゾーンが自動的に作成され、VPC に関連付けられます。AWS のサービスと AWS Marketplace パートナーサービスでは、PrivateDNS がデフォルトでオンになっています。そのため、PrivateDNS をオンにして同じサービスに 2 番目のインターフェイス VPC エンドポイントを作成すると、DNS ドメインの競合エラーが発生します。これを修正するには、インターフェイスエンドポイントを作成するときに [PrivateDNS] オプションをオフにします。そのサービスの 2 番目の VPC インターフェイスエンドポイントには、エンドポイント固有の DNS ホスト名を使用します。
注意: エンドポイントサービスの場合、エンドポイントを作成した後にエンドポイントで PrivateDNS 機能をオンにすると、このエラーが表示されます。
VPC が、目的のサービス名をカバーするプライベートホストゾーンに既に関連付けられている
既存のプライベートホストゾーンがアタッチされている VPC に対して、同じ名前空間で新しいプライベートホストゾーンを作成することはできません。PrivateDNS をオンにしてエンドポイントを作成すると、インターフェイスエンドポイントの作成に失敗します。これは、エンドポイントがサービス名のプライベートホストゾーンを作成できないためです。VPC が既存のプライベートホストゾーンに関連付けられているかどうかを確認するには、次のいずれかを実行します。
- Amazon Route 53 コンソールに移動し、目的のサービス名が VPC にアタッチされたプライベートホストゾーンが既に存在するかどうかを確認します。VPC が既存のプライベートホストゾーンに関連付けられている場合は、インターフェイスエンドポイントを作成するときに [PrivateDNS] オプションをオフにします。インターフェイスエンドポイントのエンドポイント固有の DNS ホスト名を使用してアクセスします。
- 中央のハブアーキテクチャでは、組織内のアカウントがサービス名のプライベートホストゾーンを作成し、VPC にアタッチする場合があります。この場合、所有者は別のアカウントであるため、Route 53 コンソールにプライベートホストゾーンは表示されません。list-hosted-zones-by-vpc API コールを使用して、VPC が属しているすべてのホストゾーン (他のアカウントのホストゾーンを含む) を一覧表示します。VPC が別のアカウントのプライベートホストゾーンに関連付けられている場合は、次の手順を実行します。
A、Alias、または CNAME レコードがアクティブな VPC インターフェイスエンドポイントをポイントしていることを確認します。
次に、ルーティングが機能している場合、サービスのインターフェイスエンドポイントを使用します。使用できない場合は、[PrivateDNS] オプションをオフにして、新しいインターフェイスエンドポイントを作成します。
注意: nslookup を実行するか、VPC から dig を実行して、サービス名の DNS 解決を実行します。サービス名がプライベート IP とパブリック IP のどちらに解決されるかを判断します。プライベート IP に解決される場合は、VPC にアタッチされたサービス名のプライベートホストゾーンがあります。