[AWS]プライベート環境にてRoute53を使って名前解決をしてみた

2024/01/30

 今までオンプレミス環境にあるサーバたちのホスト名に対する名前解決するには、DNSサーバを立ててやるのは通常かと思いますが、クラウド盛んになっている今は、わざわざ手間をかけてDNSサーバを立てるケースはだんだん少なくなってくるでだろう。
 今回は、DNSサーバの役割を持っているAWSのサービス(Route53)を使って、実際プライベート環境で名前解決できるかを検証し、本記事にまとめてみました。

前提条件

 今回Route53の検証はメインだったため、事前にネットワーク(VPC、サブネット)、サーバ(EC2)など準備済みであること

構成

今回は下記のようなプライベート環境にてサーバ同士をRoute53を使って名前解決してみた。
検証構成イメージ図

Route53の設定

サービスメニューからRoute53を選択

ホストゾーンの作成

ドメイン名の設定:今回は検証のため、適宜hyron.netとする
プライベート環境で名前解決したいため、タイプを「プライベートホストゾーン」を選択する。

ホストゾーンに関連するVPCの情報、上記の構成図で10.60.0.0/16のVPCを関連付ける

暫く立つと、下記ような画面となり、ホストゾーンが作成されていることを確認する。
「hyron.net」ドメインに対する、SOA及びNSコードが自動割り振られていたことを確認する。

次に、レコードを作成する
web側のAレコードをホストゾーンへ追記します

ope側のAレコードをホストゾーンへ追記します

追加されたレコードが完全に浸透されるまで少々時間かかるが、ステータス確認では、「INSYNC」となってれば大丈夫です。

先ほど追加したweb及びopeのAレコード情報は、↓こんな形で登録されていることを確認できる。

この状態では、理論的に、サーバ同士で名前解決できているはずですので、
早速テストしてみましょう

webサーバからpingコマンドで名前解決できるかどうかを確かめる

うん、応答がない。。。
opeサーバからpingコマンドで名前解決できるかどうかを確かめる

うん、こちらも反応ないか
いろいろ原因を探ってみました。どうやらVPC側の「DNS解決を有効化」するだけでは不十分です。併せて「DNSホスト名を有効化」する✔も入れないといけないようです。
早速VPCの設定を変えてみました。
設定変更前のVPC状態

設定変更後のVPC状態

この状態で、もう一回名前解決実施してみます。
先と同じく、webサーバからopeホスト名に対するpingできるかどうかを確認する

ope.hyron.netに対して、ちゃんと10.60.3.65のIPアドレスが返ってきたことを確認できた。
digコマンドでopeサーバのIP見えるかどうかも確かめる

ホスト名に対する応答があり、名前解決されたことが分かります。

opeサーバからwebホスト名に対するpingできるかどうかを確認する。

今回はweb.hyron.netに対して、ちゃんと10.60.4.99のIPアドレスが返ってきたことを確認できた
digコマンドでwebサーバのIP見えるかどうかも確かめる

ちゃんと名前解決できたことを確認しました。やったー!

まとめ

今回はまったところとしては、VPCを作成するときに、「DNSホスト名を有効化」に✔入れていなかったのが原因でした。ちなみに、これ以外に、AWSの仕様として、プライベートゾーンに作成するドメインについては、「.local」を付けてはいけないようです。検証とかどうしても.localつけたくなちゃうだよね。そこも注意しましょう

 プライベート環境においてRoute53を使ってちゃんと名前解決できることを確認しました。
本記事の記載内容については、少しでもお役に立てれば幸いです。