更新履歴
- 2026/02/11 初版公開
初めに
AWS Managed AD と Route 53 Private Hosted Zone を併用する構成で、
DNS設計を誤りハマった話。
「Hosted Zoneにレコードを登録しているのに名前解決されない…」
原因はDNS優先順位の理解不足。
結論
AWS Managed AD のディレクトリDNS名と
Route 53 Private Hosted Zone のドメインは重複させてはいけない。
本記事の構成
- 前提構成
- AWS Managed AD 利用時のDNS仕様
- Route 53 Resolver を設定し nslookup を実行
- ドメイン重複時の優先順位
- 設計時の注意点
1. 前提構成
- EC2はAmazon Provided DNS(デフォルト)を使用
- AWS Managed AD を構築
- Route 53 Private Hosted Zone も利用
- Route 53 Resolver でフォワード設定 [※1]
[※1] AWS Managed Microsoft AD を構築しただけでは、AWS Managed Microsoft ADの持つ DNS 機能を利用することはできない。それは、VPC に用意されている Amazon Provided DNS が AWS Managed Microsoft AD の宛先を知らないため。なので、Route 53 Resolver でフォワード設定が必要。
2. AWS Managed AD利用時のDNS仕様
AWS Managed AD は作成時に ディレクトリのDNS名 を設定する。
この ディレクトリのDNS名 に、Private Hosted Zoneの ホストゾーン名 と同一のものは設定NGというのが本記事の主旨。[※2]
[※2] AWS Managed AD の ディレクトリのDNS名 = Private Hosted Zone の ホストゾーン名 とした場合、後述で記載しているが、Route 53 Resolver のフォワード設定をする際に指定する 宛名ドメイン名 に ディレクトリのDNS名 を設定することとなる。結果、フォワード設定が優先されるため Private Hosted Zone は参照されなくなる。
今回は検証用に ディレクトリのDNS名 は test.local とした。

このDNS名は、Managed AD内のDNSサーバで管理される。
つまり、
- test.local ドメインの権威DNSは AD 側
- ADは内部DNSサーバを持っている
3. Route 53 Resolver を設定し nslookup を実行
一般的な設計では、
- DHCP Options Sets で AD のDNSを直接指定しない
- Amazon Provided DNS を利用する
- Route 53 Resolver で条件付きフォワードする
これがAWS推奨設計。
なので、「2. AWS Managed AD 利用時のDNS仕様」で作成したADに対して、Route 53 Resolver でフォワード設定をしてあげる。これで、VPC内のリソースはADへ参加できるようになる。
実際の設定は以下の通り。
補足 : Route 53 Resolver のアウトバウンドエンドポイントはすでに作成済み。
フォワードルールの宛先ドメインは ディレクトリのDNS名の test.local 。

本記事の主旨とはあまり関係ないが、ターゲットIPアドレスは作成した AWS Managed AD の ディレクトリ詳細 から確認可能。

実際に、VPC 内の EC2 から ADに向けた nslookup を実行してみる。

10.0.0.2、つまり VPC の Amazon Provided DNS(.2アドレス)が最初に応答し(赤枠)、
その後、Non-authoritative answer として AD の IPアドレス が返ってきた。(青枠) [※3]
[※3] Non-authoritative answerの理由は、上記でも記載した通り、test.local ドメインの権威DNSは AD 側にあるため。
これで、VPC内のリソースを AD 参加させる用意は整った。
4. ドメイン重複時の優先順位
一応、ここからが本題。
AWS Managed AD の ディレクトリのDNS名 = Private Hosted Zone の ホストゾーン名
となる場合の挙動を確認する。
同VPC 内のEC2から nslookup test-ec2-win-02.test.local を実行する。
期待は、Private Hosted Zone に定義した通り 10.0.11.81 が返ってくること。
結果は以下。

10.0.0.2、つまり VPC の Amazon Provided DNS へ問い合わせた結果、
Private Hosted Zone で定義したはずの
test-ec2-win-02.test.local 10.0.11.81
が返ってこない。(赤枠)
test.local は正常に名前解決できており、Route 53 Resolver のフォーワード設定は生きている。(青枠)
なぜこうなるのか(仕組み)
名前解決の流れ:
- EC2がAmazon Provided DNSへ問い合わせ
- Route 53 Resolverがルールを確認
- 一致するドメインがあればフォワード
- AD側DNSへ転送
つまり、
AWS Managed AD の ディレクトリのDNS名 = Private Hosted Zone の ホストゾーン名
となる場合、 Private Hosted Zone は参照されない。
これにハマった。
5. 設計時の注意点(まとめ)
今回の教訓
- AWS Managed AD は独自DNSを持つ
- Route 53 Resolver は強い
- ドメイン一致時は AD が優先される
- ホストゾーンと AD の DNS は重複させない
- NGパターン :
- ホストゾーン名 test.local (一致)
- ディレクトリのDNS名 test.local (一致)
- OKパターン① :
- ホストゾーン名 test-work.com
- ディレクトリのDNS名 test.local
- OKパターン② :
- ホストゾーン名 test-work.com
- ディレクトリのDNS名 ad.test-work.com (サブドメインとしてもOK)
- NGパターン :
最後に
DNS設計は後から変更が非常に困難...
特にActive Directoryは再構築コストが高い。
同じようにハマる方がいなくなれば幸いです。

