🗂

Azure DNS Private ResolverがGAされたので使い方を考える

2022/11/09に公開

はじめに

2022/10、Azure DNS Private ResolverがGAされました。(GA記事では無いですがコチラのブログの方が分かりやすいかと…)
https://azure.microsoft.com/ja-jp/blog/announcing-azure-dns-private-resolver-general-availability/

Azure上のDNSで、Azure上のリソースの名前解決/プライベートDNSゾーンの名前解決を行うことはよくありました。ただこのDNSは「168.63.129.16」という仮想のパブリックIPで提供されており、実体はAzureのプラットフォーム上のエンドポイントとのことでして、(たぶん)Azure上のVMからしかアクセスすることができませんでした。
https://learn.microsoft.com/ja-jp/azure/virtual-network/what-is-ip-address-168-63-129-16

Azure DNS Private Resolverは、この不自由さを解決するサービスです。

Azure上の名前解決構成

これまで

Azure上のリソースの名前解決、およびオンプレミス上の名前解決を同時に行おうとすると、下記のような構成を取る必要がありました。

①Azure上のVMは、DNSサーバーの指定を「DNS Forwarder」に向ける。(Azure上では、DNSサーバーの指定はOS上で直接設定するのではなく、VNET側に指定します)
②DNS Forwarderでは、デフォルトの問合せ先を「168.63.129.16」に向けておくことで、Azureやインターネット上のホストの名前解決を行えるようにする。
③特定のドメインは、オンプレ側に居るDNSサーバー向けに転送する。(条件付きフォワーダ)
④オンプレ側には、特定ドメインのドメインコントローラ兼DNSサーバー居る。
⑤オンプレ側から、Azure関連の問い合わせは「DNS Forwarder」サーバーに向け、②と同じ経路で名前解決する。
⑤このDNS Forwarderサーバーは、冗長化する※

※想定されるのはオンプレミスが絡んでくるような規模のシステムですから、ちゃんと冗長化することが普通だと思います。そうすると、可用性ゾーンをつかって2台で99.99%のSLAになります。ただ名前解決のためだけに、VMが最低2台。うーん…。

Azure DNS Private Resolver構成

さて、今回のサービスGAにより、このような用途では下のような構成にできるようになりました。
Azure DNS Private Resolverの「Inbound Endpoint(問合せの受け口)」「Outbound Endpoint(再問合せの送信元)」を1つずつ用意し、DNS Forwarderとしてふるまうようになります。

①Azure上のVMは、DNSサーバーの指定を「Inbound Endpoint」に向ける。(Azure上では、DNSサーバーの指定はOS上で直接設定するのではなく、VNET側に指定します)
②Azureやインターネット上のホストの名前解決を行えるようにする。「DNS 転送ルールセット」に従い、再問い合わせするドメインは指定の転送先に問い合わせる。
③Outbound Endpointから、オンプレ側のDNSサーバーに問い合わせる。(条件付きフォワーダ相当)
④オンプレ側から、Azure関連の問い合わせは「Inbound Endpoint」に向け、②と同じ経路っで名前解決する。
⑤Endpointはマネージドサービスなので、SLAに従う。(特に意識せず99.99%が達成できる)
https://azure.microsoft.com/ja-jp/support/legal/sla/dns-private-resolver/v1_0/

従来構成との比較

利用料

従来構成では、DNSサーバー2台必要。DNS Private Resolverを使用する構成では、サービスの利用料のみ必要です。

従来構成での利用料

下記条件での利用料を算出します。
・VM:D2v3インスタンス2台
・ディスク:追加無し
・OS:Cent OSかUbuntu(OS利用料なし)
・リージョン:日本
・予約など割引の仕組み無し

$94/月×2台=$188/月 となりました。

(参考)
https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/linux/#pricing

Azure DNS Private Resolverでの利用料

Inbound/Outboundのエンドポイントがひとつづつ、および転送ルールが必要となります。

料金表に従うと、$180×2+$2.5=$362.5/月 となりました。

(参考)
https://azure.microsoft.com/ja-jp/pricing/details/dns/#pricing
あれ、意外と高いですね・・・?

余談(AWSの場合)

実は類似サービスであるAWSの「Route 53 resolver」も似た料金体系となっていますが、1 ENIあたり「$0.125/時間($90/月)」となっています。
こちらも、ENIをAZ冗長させるのが普通の設計と思われますので、2倍。In/Outでエンドポイントが別なのでさらに倍!ということで、$360/月が最低ラインになります。
合わせて来たかのような価格設定ですね…。

維持管理

忘れてはいけないのがVMの維持管理コストです。単純にVMとして存在しているだけで、パッチあてやバックアップ、リブート、メンテナンス対応など附随して必要になる業務が沢山あります。
そのコスト(人の稼働に掛かる部分だけでなく、精神的なものも含めて…)これくらいの価格差であればマネージドサービスに寄せるのが良いのではないでしょうか。
特に、このサービスを使うのはハイブリッドクラウドな使い方をするエンタープライズな用途が多いでしょうから、この程度の差であれば維持管理を楽にするというのは大きなメリットがあるかと思います。

…個人の検証用環境くらいでしたら、月2万円違うと言われたら私は安い方を選びます。笑

その他の注意点

日本語ドキュメントを見ると、現時点(2022/11/9)では「パブリックプレビュー」と書かれていますが、正式に東日本リージョンでGA済です。(サポートにも確認済)
ただし、西日本リージョンでは未定とのことでした。ご利用予定の方はご注意&継続的にウォッチしましょう!
https://learn.microsoft.com/ja-jp/azure/dns/dns-private-resolver-overview

おわりに

今回は、Azure DNS Private Resolverの使い方を机上で検討してみました。「DNS Forwarder」のためだけにVMを作って維持するのにうんざりしていた方は多いと思います。ぜひぜひマネージドサービスの利用を検討していきましょう。
実際に作って見て、クセがあるところとかハマりどころっては別途まとめてみたいと思います。

Discussion