🛡️

イラストで理解するRoute53の名前解決

2023/07/31に公開

はじめに

AWSのSAPという資格試験の勉強をしている際に思いました。
「Route53関連のサービスややこしい!!」

特に私はオンプレミスとの接続の際に、どのような構成にすれば名前解決ができるのか?
という部分によく悩まされました。

そこで、一つずつどこでどのサービスが使われているのか調べてみました。

前提

なんとなくDNSによる名前解決の仕組みを知っていると理解しやすいと思います。

Route53 Resolver

Route53 ResolverはRoute53という前書きがありますが、VPCを作成した際に自動的に作成されるリソースです。
普段意識していないので、そんなものあったんだ!という感じです。

Route53 Resolverは名前解決をする際にネームサーバー(ドメイン名とIPが紐づけてるサーバー)に転送をしてくれます。
これから説明する、VPC内での名前解決や、オンプレミスと接続して名前解決を行う際に使います。

それでは次に、名前解決を行うもう一つの重要な要素であるRoute53 ホストゾーンについて見ていきます。

Route53 ホストゾーン

Route53には2つのホストゾーンがあります。
「パブリックホストゾーン」と「プライベートホストゾーン」です。
二つとも名前解決を行うためのサービスです。

名前解決はユーザーが取得したカスタムドメイン名で名前解決を行います。

パブリックホストゾーン

パブリックホストゾーンはインターネット上で使用されるDNSホストゾーンです。
例えば皆さんがgoogleの検索ページを表示する際、「google.com」と検索しますね?
googleのIPアドレスを入力する人はまずいないでしょう。

同じように、AWS上のリソースにカスタムドメイン名を割り当てて、インターネット上で検索できるようにするのが、このパブリックホストゾーンです。

プライベートホストゾーン

プライベートホストゾーンはVPC内でユーザーが取得したDNS名での名前解決ができます。

IPアドレスにユーザーのカスタムドメインを割り当てられるため、リソースの識別が容易になります。
そのため、複数のVPC間での名前解決やオンプレミスとのハイブリッド環境で使用されます。

このプライベートホストゾーンの名前解決はRoute53 Resolverを介して行われます。

同一アカウント内であれば複数のVPCで一つのプライベートホストゾーンで名前解決が可能です。
しかし、複数のアカウントでVPC内の名前解決をする場合はResource Access Manager (RAM)を使って、プライベートホストゾーンを共有する必要があります。

エンドポイント

Route53には二つのエンドポイントがあります。
「インバウンドエンドポイント」と「アウトバウンドエンドポイント」です。
これは主にオンプレミスとのハイブリッド環境で使用されます。

インバウンドエンドポイント

インバウンドエンドポイントは、オンプレミスからAWS内のDNSを使って名前解決するために使います。
文字だけだと分かりにくいので、図にするとこのようになります。

インバウンドエンドポイントを使うことで、オンプレミス環境からRoute53 プライベートホストゾーンを使って名前解決することができます。

もちろんインバウンドエンドポイントを使わずに直接EC2に接続することもできます。

しかし、これはEC2に自動的に割り当てられたパブリックエンドポイントにアクセスすることになります。
このパブリックエンドポイントはEC2の停止で変更される可能性があるため、その都度オンプレミス側にエンドポイントを伝える必要があります。

EIPを使うことで固定にすることも可能ですが、Route53 プライベートホストゾーンを使っているならぜひインバウンドエンドポイントを使いたいところですね。

アウトバウンドエンドポイント

アウトバウンドエンドポイントはオンプレミスで使用しているDNSサーバーを使って名前解決を行う際に使います。
これも図で見ましょう。

オンプレミスからの拡張などで、すでに配置されているDNSサーバーを使いたい際などに有効です。

ちなみに、オンプレミスのDNSサーバーで名前解決をする際は、Route53 Resolverで名前解決はオンプレミスのDNSサーバーを使う、という設定をする必要があります。

まとめ

それぞれの役割を考えながらまとめてみると、意外と分かりやすかったです。
図にして、どこで名前解決をしているのか?という部分に焦点を当てると頭にスッっと入ってきました。
分からなくなったら一度図にしてみるといいかもしれません。

参考資料
https://dev.classmethod.jp/articles/explain-route53-resolver-ram/

GitHubで編集を提案

Discussion