VPC 内の EC2 インスタンスから AmazonProvidedDNS にクエリを投げるまでの道のり
毎日少しずつ DNS に詳しくなっていっている気がします、那須です。
EC2 インスタンスから DNS クエリを投げる宛先は DHCP options set に設定された DNS サーバになります。 ということはもうご存知でしょうか? もしご存知ないなら↓こちらのドキュメントを読んでください。
タイトル通り、私は AmazonProvidedDNS にクエリを投げたかっただけなんですが、そこまでの道のりは長かったので忘れないように書いておきます。
何が大変だったの?
Windows Server がたくさん並ぶような案件だと、AD のドメインに参加していることが多いですよね? 当然、DNS も AD DNS に向くわけです。 なので、↓こんなふうに DHCP options set の DNS サーバにオンプレ AD の IP アドレスを指定したんですね。
- domain-name = nantoka.com
- domain-name-servers = 1.2.3.4 (実際のものではありませんよ)
すると、DNS クエリは全部 1.2.3.4 に飛んでしまいます。 でも私は AmazonProvidedDNS に投げたい! なぜかというと、VPC エンドポイントの名前解決をしたいから。
もちろん、↓このブログは読んでましたが、なんかもうちょっとシンプルで運用も楽な構成は取れないのか悩んでいました。
どう考えたか?
基本的な考えはこれです。
- このためだけに追加でサーバ運用したくない
- マルチ AZ 構成で AZ レベルの障害には備えたい
なので、DNS キャッシュサーバを立てる案は早々に消しました。
DNS のためだけにインスタンス運用するのめんどいので…
あと残った案は、
- Directory Service の Simple AD に転送して名前解決
- Route53 Resolver で名前解決
の 2 案で、どっちかにしようということになりました。
採用した構成
この構成で名前解決することに決めました。
理由は単純で、月額料金です。 今回は VPC エンドポイントの名前解決をしたいだけなので、構成も費用も小さくしたかったんですね。 比較すると、Simple AD 案は約 7000 円/月、Route53 Resolver 案は約 22000 円/月だったので、Simple AD 構成案にしました。 あと、WorkSpaces を使うならアクティブユーザが 1 ユーザいれば Simple AD の料金がタダになるらしいので、それも大きいですね。
Route53 Resolver を使うチャンスでもあったんですが Directory Service も使ったことなかったので、まずは古いほうから使ってみたかった、という個人的理由もあります。
オンプレ DNS で VPC エンドポイントの名前解決に悩んでいる方へ
名前解決の方法はたくさんあります。 今回は私が決めた内容とそれまでの考え方を書きましたが、新しいものを試したい方は Route53 Resolver を試せばいいし、Bind 等でいろいろ管理したいならキャッシュサーバ構成を取ればいいし、状況に応じて決めればいいと思います。 これがベストアンサーだ!ってのは無いと思いますので、いくつか実際に作ってみて試してみてください。 それが簡単にできるのがクラウドのいいところですよ!