Route53 Resolverを使う際気をつけたいこと

会社で,あるサービスをオンプレからAWSへ移行する際,Direct Connect(DX)を張って移行した.その際AWS環境からオンプレにある外部に公開していないDNSサーバへ名前解決する必要があったのでRoute53 Resolverを使用した.Route53 Resolverを使ってみて2つほど注意したいことがあったのでメモとして残しておこうと思う.

Route53 Resolver

Route53 Resolverとは,オンプレとVPCがDXやVPNで繋がっている環境で,オンプレからRoute53のプライベートホストゾーンへアクセスさせたり,逆にVPC内からオンプレの外部に公開していないDNSサーバへアクセスさせたい時に利用するサービスである.両アクセスはRoute53 Resolverによって作成されるエンドポイントを経由してそれぞれの権威サーバへアクセスが行われる.詳しい設定は以下のブログが参考になる.

dev.classmethod.jp

サブドメインの柔軟な名前解決が難しい

1つめの注意すべきことだが,タイトルだけでは何を言っているか分かりにくいと思う.
例として,Route53 Resolverを使ってAWS環境からオンプレのDNSexample.com)に名前解決する場合を考えてみる.example.comドメインRoute53 Resolverを作成すると,example.comおよびそのサブドメインはすべてオンプレのDNSに名前解決するようになる.
ここで,aaa.example.comの名前解決だけオンプレのDNSではなくRoute53に向けたい場合を考えると,example.comサブドメインもすべてオンプレのDNSへ名前解決しにいくので一筋縄ではいかない.この場合,オンプレDNS側でaaa.example.comはRoute53へ向けるNSレコードなどを追加して対応する必要があると思う.
では逆に,aaa.example.comの名前解決だけオンプレのDNSへ向けたい場合を考えると,これは単純にaaa.example.comドメインRoute53 Resolverを作成すればよいことになる.
要するにここで注意したいのは,Route53 Resolver作成時に設定するドメインとそのサブドメインはもれなく指定したDNSへ名前解決されてしまう点である.

さらに補足すると,example.comドメインaaa.example.comドメインのそれぞれでRoute53 Resolverを作成することができる.その場合はaaa.example.comドメインおよびそのサブドメインの名前解決はaaa.example.comドメインで作成したRoute53 Resolverを経由する.それ以外のexample.comドメインおよびそのサブドメインexample.comドメインで作成したRoute53 Resolverを経由する.つまり,最長一致のような動きをする.ただし,Route53 Resolverで設定するDNSにRoute53は指定できない.

f:id:a-mochan:20200229160945p:plain
ゾルバルール作成画面の説明

コストに注意

Route53のトラフィックフローなど他のRoute53の機能もそうなのだが,Route53の料金体系として設置しているだけでコストがかかるタイプが多い.Route53 Resolverの場合,設置するだけで一時間0.125USDなので一ヶ月で90USDかかる.そして,この90USDはElastic Network Interface(ENI)ごとにかかり,Route53 ResolverではDNSクエリに対して最低でも2つのIPアドレス(ENI)を必要とするので,設置するだけで一ヶ月180USD(90USD*2)かかる.さらに,通信量が上乗せされていくのでRoute53 Resolverを使う際は設置コストも頭に入れておくとよいかもしれない.

aws.amazon.com

まとめ

  • Route53 Resolverで気をつけるを紹介した
    • Route53 Resolverを経由させるサブドメインの扱いに注意する
    • 通信量の他に設置コストもかかる