はじめに
内部の名前解決の方法について、まとめてみたので備忘録として残しておきます。
Route 53 Resolverを利用した名前解決方法
サブドメインのプライベートホストゾーンを作成します。
オンプレミスのDNSサーバで条件付きフォワーダを設定し、Route 53 リゾルバーにAWSへの問合せを転送し、名前解決します。
コスト
Route 53 Resolverを利用する場合、利用料が高額であることに注意する必要があります。
Route 53 Resolverを利用するにはエンドポイントが必要です。
エンドポイントの料金はENIに依存し、0.125$/ENI/1時間かかります。
※Route 53リゾルバーエンドポイントのENIは仕様上、エンドポイントごとに2つ必要です。
そのため、エンドポイント1つの場合、月額で1800$(約27,000円)がかかります。
運用
Route 53 Resolverの場合、オンプレミスDNSには条件付きフォワーダを設定するのみで、サブドメインのDNSレコードのメンテナンスはAWS側のみで完結します。
オンプレミスとAWSで管理者が異なる場合は、AWS内のレコード管理をAWS管理者で完結できるため、運用コストが下がります。
また、名前解決時の振り分けをルールを詳細に設定可能なため、システム要件に合わせた柔軟なルーティングが可能です。これまでのDNSと同じような通常の振り分けをする「シンプルルーティングポリシー」、バックエンドのヘルスチェックの結果によって振り分けをする「フェイルオーバールーティングポリシー」、ユーザの位置によってバックエンドの振り分けをする「位置情報ルーティングポリシー」などがあります。
ユースケース
拡張性が高いため、大規模なシステムや今後多くの機能をAWS上で構築する予定がある場合に利用を推奨します。
NLBを利用した名前解決方法
ALBやEC2の前段にNLBを配置し、IPアドレスを固定します。
オンプレミスのDNSサーバにAレコードとしてNLBのIPアドレスを登録します。
NLBはAWSの提供するロードバランサーのうち唯一、ロードバランサーに固定のIPアドレスを設定可能なため、利用するAWSリソースの前段に配置することで、オンプレミスからの名前解決ができます。
コスト
Route 53 Resolverを利用すると高額な場合は、NLBを利用するのがいいでしょう。
NLBは0.0243$/1時間とNLCUによって料金が決まります。
NLCUは以下の要素を測定し、1時間の使用量が平均で最も多いものに大して課金されます。
名前解決が必要なリソース毎にNLBを作成する必要があります。
大量のEC2やALBがある場合は、リソース毎にNLBを作成し、結果的にコストが
運用
NLB(IPアドレス)を追加するたびにオンプレミスのDNSサーバにもレコード追加作業が必要となります。
そのため、オンプレミスとAWSで管理者が異なる場合、AWS管理者からオンプレミス管理者へ作業を依頼しレコード追加するというフローになり、運用コストが高くばります。
ユースケース
拡張性は低いため、小規模なシステムや今後追加機能をAWS上で構築予定がない場合に利用を推奨します。
AWS Managed Microsoft ADを利用した名前解決
EC2はMSADディレクトリに結合することで、MSADによって名前解決されます。
MSADにはフォワーダとしてRoute 53 Resolverが設定されており、ALBはResolverによって名前解決されます。
コスト
2台構成(最小)のドメインコントローラーの場合、基本料金は以下となります。
Standard(オブジェクト数:30,000):$0.146 /時間当たり
Enterprise(オブジェクト数:500,000):$0.445 /時間当たり
運用
MSADの管理サーバにてDNSレコードを管理します。AWS内でレコードを管理することができますが、Route 53に比べ管理はしにくいと思います。
ちなみに、レコードの管理画面はこのようになります。
ユースケース
MSADを利用する場合は内部名前解決に関する料金を削減できます。
おわりに
自分がこれまで実施したことのある内部名前解決方法を整理しました。
今後またあれば追加していこうと思います。