はじめに
AWS Directory Seriviceや、Active DirectoryをVPC内で利用するケースにおける名前解決のポイントをまとめます。
AWS Managed Microsoft ADとは
AWSが提供するフルマネージド型ディレクトリサービスで、クラウド環境やオンプレミス環境でアプリケーションやサービスに統合できるディレクトリ機能を提供するサービスです。
Microsoft Active Directoryをマネージドに利用でき、ユーザ認証など様々なユースケース二利用されます。
VPC上の名前解決
通常、VPC上での名前解決では、Route53 Resolverが担当します。
これは、DHCPオプションセットで定義されており、デフォルトでRoute53Resolver(AmazonDNS)がDHCPでDNSの向き先として指定されます。
DHCPオプションセットの書き換えにより、任意のDNSを指定することが可能ですが、様々なケースにおいて、接続先となるマネージドサービス(VPC Endpoint,RDS,DyanamoDB,S3など)の名前解決が必須であるため、注意が必要です。
ADを利用する場合の問題点
ADを構築しただけでは、ADへの名前解決ならびに、AD自身が持つDNSを利用することはできません。
そのため、ADに参加したい、ADに接続したいと思って、ADのFQDNを叩いても、Route53Resolverは宛先IPを返してあげることができないのです。
解決策
解決策としては以下2つが考えられます。
- DHCPオプションセットでデフォルトのDNSの向きさきを変更する
- Route53 Resolver Outbound Endpointにより、条件付きの名前解決の転送ルールを設定する
細かく見ていきましょう
DHCPオプションセットの書き換え
このパターンでは、DHCPオプションセットを書き換え、DNSの向きさきをADにしてしまいます。
これにより、AD内の名前解決は問題なく実施できます。また、AD内では名前解決ができないものに関してはフォワーダをRoute53Resolverに設定することで名前解決が可能です。
注意事項として、名前解決の全てをADを経由するため以下に気をつける必要があります。
-
VPC内のインスタンスすべてのDNSの向き先を変えてしまう
ADと関係ないリソースに関してもADに対しての名前解決が可能になり、すべての名前解決をAD経由で実施することになります。 -
名前解決の可用性、性能がADに依存する
ADは、VPC上にENIを伸ばし、ENIから接続を受け付けます。
1ENIあたり、最大65000までの接続上限となるため、名前解決が大量に行われるケースでは、性能制約があります。また、ADを経由するため、AD自体が障害を起こす場合、AD以外の名前解決もできず、他サービスへの接続もできなくなる可能性があります。(AZ構成などにも依存)また、ADを経由することで、クエリパフォーマンスにも影響する可能性があります。
Route53 Resolver Outbound Endpointの利用
この構成ではDHCPオプションセットの書き換えは行いません。Route53ResolverOutbound Endpointを構築し、ResolverルールでADで解決したいドメインに関する転送設定を付与します。これにより、ADのDNSに関する名前解決のみをADで実施することが可能です。そのため、ADの可用性や性能に依存せず、AD以外の名前解決が実施可能です。
注意事項として、Outbound Endpointを構築することで以下に気をつける必要があります。
- コスト
Outbound Endpointのコストが追加でかかります。
ENI毎に決して安いとは言えないコストがかかりますので、注意です。
AZが3つあれば、3つ分かかります。
- 可用性
AZが複数ある場合は、AZ毎に作らないと可用性が低下します。
まとめ
以下、まとめです。
AWSを利用する場合は、名前解決に注意が必要です。
また、名前解決に限りませんが、何かを経由することはその部分の可用性、性能がボトルネックになる可能性があるということを覚えておく必要があります。何を取るのか次第でたいていの選択はトレードオフとなるのです。注意して構成を検討しましょう。
案 | メリット | デメリット |
---|---|---|
DHCPオプションセット | コストが安い、設定がシンプル | 性能、可用性がAD依存となる、AD以外の名前解決もADを経由する |
Route53 Resolver Outbound Endpoint | AD以外の名前解決は通常通りのルートで実施可能、ADの性能、可用性に依存しない | Outbound Endpointのコストがかかる |