Route53の機能についてまとめてみた②
前回までのあらすじ
Route53についてまとめる前提でDNSの仕組みについてまとめました。
今回からはようやくRoute53の各機能についてまとめていくので、DNSの各用語については前回記事もご参照ください。
Route53について
改めてRoute53について整理します。
AWSのホワイトペーパーによると、Route53とは、
可用性と拡張性に優れたドメインネームシステム (DNS) ウェブサービスです。Route 53 を使用すると、ドメイン登録、DNS ルーティング、ヘルスチェックの 3 つの主要な機能を任意の組み合わせで実行できます。
つまりAWSでシステムを構成する・しないに関わらず、DNSサーバをマネージド(インフラ管理不要)で構築できるサービスとなっています。
基本機能
ドメイン登録
DNSサーバの基本、ドメイン登録が出来ます。
また、AWS経由でドメイン取得する以外にも、外部で取得したドメイン名も移管して利用する事ができますので、既存のDNSサーバをRoute53に切り替えるといったことも可能です。DNSサーバのインフラ管理を減らしたいという場合には有効な手段になりえるかと思います。
ドメインルーティング
前回まとめた通りのDNSの基本機能である、各種DNSレコードを管理して想定通りのサーバへのアクセスを制御する機能です。
ゾーン管理とレコードを登録することで非常に簡単にルーティング機能を利用することができます。
ヘルスチェック
アクセス先のサーバが正常な状態になっているかをRoute53でチェックすることができます。また、その機能を使って異常なサーバへのトラフィックを正常なサーバに向けることで、WEBサービス自体の可用性を上げることができます。これを使うことで、複数リージョンで運用しているシステムのDR対策としても活用できる機能です。
すこし細かな機能
基本的な機能以外にもRoute53には様々な機能があるので順にみていきます。
Amazon Route 53 Resolver
Resolver機能とは、DNSアクセスを行う際のエンドポイント と理解してもらえれば良いかと思います。
AWSのVPC内でDNSクエリを実行する場合は、VPCのCIDRの先頭に+2したIPアドレスがそのエンドポイントとなります。つまり、10.0.0.0/16のVPC内部のEC2インスタンスからDNSクエリを実行すると、10.0.0.2のIPアドレスに対してDNSクエリを実行する事になります。
そして、このDNSクエリに対する応答としては、VPC内のリソースに対してのローカルVPCドメイン名(ec2-10.10.10.5.compute-1.amazonaws.com等)やプライベートホストゾーンのレコード(example.co.jp等)、パブリックドメインに対してはパブリックネームサーバーへの再帰的検索を実行した結果を返します。
つまり、DNSサーバの基本的な機能をこのResolverが行っていることになります。
さらに、Amazon Route 53 Resolverには インバウンドエンドポイント と アウトバウンドエンド が存在します。
- Inbound Resolver Endpoint
オンプレミスまたは別VPCから、このResolverへのDNSクエリを実行する事ができる - Outbound Resolver Endpoint
オンプレミスまたは別VPCへ、DNSクエリを実行する事ができる
ざっくりと絵にするとこんな風になります。
図の中にはオンプレミス側にDNS Resolverがなかったりしますが、大まかなフローは、
- オンプレミスからAWSが破線部で、インバウンドエンドポイントを経由してRoute53で名前解決をするように設定
- AWSからオンプレミスは実線部で、アウトバウンドエンドポイントを経由してオンプレミスDNSサーバへ名前解決をするように転送
となっています。この2つのエンドポイントはオンプレミスとのハイブリッド設計ではほぼ必須となるので、利用頻度はかなり高いです。また、VPC間の接続時に外部とのハブ構成を取ることが望ましいので、その際にもDNSの集約などで活躍する機能となっています。
エンドポイントの料金はENI(Elastic Network Interface)に依存するため、1時間あたり0.125USD/ENIの料金がかかります。これが地味に料金にはかさんできますので、集約して利用するなどのアカウント構成を考えましょう。
Route 53 Resolverには ゾーン転送の機能もあるので、企業のドメインをNetwork管理アカウントにホストして、サブドメインを各システム用アカウントで利用するということも可能です。
Route 53 Resolver DNS Firewall
あまり大きく取り上げられることはないですが、かなり機能としては便利だと個人的には思っているのが、DNS Firewallです。
これは、VPC内部のリソースが外部へアクセスする際に、DNSクエリの時点でフィルタリングルールによって拒否する事ができる機能です。FirewallとしてはWAFやNetworkFirewallをAWSは提供していますが、WAFは外部からのアクセスに対してのサービスであり、NetworkFirewallとは対応しているレイヤが異なります。
- DNS FirewallはVPC内部のアプリケーションからRoute 53 Resolverを通過するアウトバウンドのDNSクエリを検査します。
- Network Firewallはアプリケーション層に加えて、ネットワーク層でのトラフィックを検査しますが、Route 53 Resolverによって実行されるクエリに対しては検査されません。
どういうことかというと、DNS FirewallはRoute 53が問い合わせを行うDNSサーバ(ドメイン)に制限をかけ、NetworkFirewallは実際に通信する際のHTTP/HTTPS通信のアウトバウンド・インバウンド通信のIPアドレス・プロトコル・ドメイン名をフィルタリングできます。
DNS Firewallを通すことで不要なDNSクエリを外部に出す事がなくなるので、DNSキャッシュポイズニング等のDNSに関する攻撃からシステムを守ることができます。
料金も0.60USD (処理した 100 万クエリあたり - 最初の 10 億クエリ/月)なので、そこまで高額にならないかとも思いますので、ぜひ導入の検討をしてみてはいかがでしょうか。
さいごに
まだまだざっくりとしたまとめになっているのですが、大まかな機能としては記載できたかと思います。
後日さらに詳細をまとめた記事を書きます。(宣言駆動です。)
最近DNSでハマることが非常に多いので、自分のおさらいのためにもDNSのさらに深掘った部分も記事にしていきたいと思っています。
参考資料
AWS BlackBelt Online seminarがかなり詳細に解説してあるので、そちらもぜひ合わせてご確認ください。
Amazon Route 53 導入編【AWS Black Belt】
Amazon Route 53 Hosted zone編【AWS Black Belt】
Amazon Route 53 Resolver【AWS Black Belt】
Discussion