営業部 佐竹です。
本日は、Route 53 Resolver の Outbound Endpoint を利用し、Amazon Provided DNS に AWS Managed Microsoft AD (MSAD) を名前解決させる方法を紹介いたします。
はじめに
Route 53 Resolver は Route 53 のサービスの1つとして、2018年11月に利用可能になりました。
今回は、この Route 53 Resolver を利用し「VPC の中に複数構築された各 MSAD の名前解決を実現する」ためのブログになります。
Amazon Provided DNS は MSAD の宛先を知らない
AWS Directory Service では AWS Managed Microsoft AD が構築可能です。そして、AWS Managed Microsoft AD は Active Directory ですので、DNS の機能を内包しています。
しかし、AWS Managed Microsoft AD を構築しただけでは、AWS Managed Microsoft ADの持つ DNS 機能を利用することはできません。それは、VPC に用意されている Amazon Provided DNS が AWS Managed Microsoft AD の宛先を知らないためです。
例えば、AWS Managed Microsoft AD として satake1.local
を作成したとします。そこで、Amazon Provided DNS に対して名前解決を実施しても、宛先不明となります。satake2.local
も同様に名前解決できません。
DHCP Options Sets での対応
VPC には、DHCP Options Sets という設定があります。DHCP Options Sets においては初期設定として DNS = Amazon Provided DNS が渡されます。
このため、VPC 内で作成した EC2 インスタンスは、自動取得で Amazon Provided DNS を DNS サーバとして利用します。そして、この DHCP Options Sets の設定を変更し、AWS Managed Microsoft AD の IP アドレスを渡すことも可能です。
ただし、この設定変更は VPC 内にある全ての EC2 インスタンス 等に影響してしまうため、実行するのが難しい場合があります。今回のように、satake1.local
と satake2.local
を同時に名前解決したい場合にも採用が難しいでしょう。
Route 53 Resolver で対応する
そこで、Route 53 Resolver を利用し、MSAD への Forwarding (転送)を行うよう設定し、対応する方法を検討しました。
AWS環境構成図
Route 53 Resolver 設定完了後の構成は以下の通りです。
Route 53 Resolver Outbound Endpoint を作成する
Route 53 Resolver Outbound Endpoint は、関連付けた VPC の Amazon Provided DNS に Forwarder の設定を入れ込むことができる機能です。Route 53 Resolver Outbound Endpoint を作成し、Forwarder の Rule を記載するだけのシンプルな設定でこれが実現可能になります。
Route 53 Resolver Outbound Endpoint を作成すると、冗長化のために複数の Availability Zone に ENI が作成されます。今回は ap-northeast-1a / ap-northeast-1c それぞれで作成しました。
ENI が作成されることからもわかる通り、構築時に Security Group のアタッチが必要です。予め作成して置くのも良いでしょう。このあたりは Private Link の実装と似ています。
Rules を紐づける
Rule は作成した Outbound Endpoint に紐づける設定です。今回は「Rule type」を「Forward」として作成しています。
ターゲットとする IP アドレスは、各ドメインの MSAD の持つ2つの IP アドレスをどちらも記載します。
今回、satake1.local
と satake2.local
の2つをそれぞれ転送したいため、2つの Rule を作成しています。
Route 53 Resolver Outbound Endpoint と Rule を作れば設定完了です。
動作確認
EC2 にリモートデスクトップし、コマンドプロンプト で ipconfig /all
を実行した画面キャプチャになります。
Amazon Provided DNS (192.168.64.2) が DHCP の設定で配られていることがわかります。
この状態で satake1.local
と satake2.local
の2つをそれぞれ名前解決してみます。
PS C:\Users\Administrator> nslookup satake1.local サーバー: ip-192-168-64-2.ap-northeast-1.compute.internal Address: 192.168.64.2 権限のない回答: 名前: satake1.local Addresses: 192.168.64.125 192.168.64.94 PS C:\Users\Administrator> nslookup satake2.local サーバー: ip-192-168-64-2.ap-northeast-1.compute.internal Address: 192.168.64.2 権限のない回答: 名前: satake2.local Addresses: 192.168.64.79 192.168.64.124
画面キャプチャの通りでもありますが、問題なくどちらの MSAD も名前解決ができるようになりました。
このように、Route 53 Resolver Outbound Endpoint を利用することで、Amazon Provided DNS に MSAD を名前解決させることが可能となります。
この状態でドメインに参加してみる
DHCP で各 MSAD の名前解決ができる状態であるため、どちらのドメインにも参加させることが可能である認識です。
そこで、実際に satake1.local ドメインに参加させてみました。
問題なく参加作業が完了しました。
Route 53 Resolver の利用料
Route 53 Resolver の各 Endpoint は「0.125USD ENI ごと / 1 時間」と記載のある通り、作成された ENI の数によって利用料が増加します。
今回は ap-northeast-1a / ap-northeast-1c それぞれでENIを作成したため 0.125 × 2 ENI × 24時間 = $6.00
で1日あたり $6 の請求です。年額では、$2,190 になります。
クエリにも「0.40USD 100 万クエリごと」という利用料が存在しますが、こちらについてはそこまでコストに跳ねることはないのではと想像します。
最新の情報は以下の公式ページをご確認ください。
まとめ
本日は、Route 53 Resolver の Outbound Endpoint を利用し、Amazon Provided DNS に AWS Managed Microsoft AD (MSAD) を名前解決させる方法を紹介しました。
Route 53 Resolver Outbound Endpoint は簡単に作成できますので、複数の Active Directory や DNS サーバを単一の VPC で利用されているような場合は本機能が活躍すると存じます。
では、またお会いしましょう。
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。