はじめに
以前にaws学習のためにRoute53でドメインを取得した。
教材学習を終えて、awsサービスによっては料金が掛かることを考え
いらないサービスは削除して整理することに。
ただ、ドメインは
本番環境で独自ドメインを設定する際に使えば良い
と考えていたので、そのまま残しておいた。
その後、本番環境でRoute53でそのドメインを使ってDNS設定したはずなのに 何故かアプリが表示されなかった。
もしかしたら、同じ境遇の方もいるかもしれないので
情報として残しておく。
説明前に注意点(大事)
後述もするが、私はawsサービスを整理しようと感覚で色々消してしまったけど
・ドメインをroute53で取得した
・aws料金怖いし、これから安全策でサービスを削除しようとしてる
に該当する人は、**ドメインに関連するホストゾーンの削除
**は気を付けたほうが良い。
後からでも新しいホストゾーンのネームサーバーを
取得したドメインのネームサーバーに上書きして
データを反映する事は可能!!!
だが、**最大で2日間の時間を要す
**可能性があるらしい…
(なのでaws整理は慎重にしたほうが良いかも)
ポートフォリオ作成中で2日間の日数取られるの厳しいなーと
個人的にショックを受けたので、ちょっとしたご案内まで。笑
(私は正午辺りに変更して翌日朝には変更完了されたので、半日くらい無駄にした。)
起きた問題
awsのEC2にアプリ(rails)をあげているが、
ブラウザに
URL(http://取得したドメイン)を入力しても
アプリが表示されず、DNS_PROBE_FINISHED_NXDOMAINというエラーが返ってくる。
一方で、ElasticIPを入力するとアプリが表示される。
これはDNSの問題だろう…
親切なことに、aws公式ページに解決策があった。
検証
awsより検証するためのコマンドが案内されているので
そちらに従って入力してみる。
% dig +trace 取得したドメイン名
〜〜 以下返答 〜〜
一部省略
↓ ネームサーバー
ドメイン名 172800 IN NS ns-〇〇.awsdns-〇〇.com.
ドメイン名 172800 IN NS ns-〇〇.awsdns-〇〇.net.
ドメイン名 172800 IN NS ns-〇〇.awsdns-〇〇.co.uk.
ドメイン名 172800 IN NS ns-〇〇.awsdns-〇〇.org.
返答されたネームサーバーと新しく作成したホストゾーンのネームサーバーを比較すると
一致していなかった…
ホストゾーンのネームサーバー確認方法
Route53 → ホストゾーン → ドメイン名をクリック → ホストゾーンの詳細をクリック
ページ右側にネームサーバーが4つ表示される
先ほどターミナルで返答されたネームサーバーと照らし合わせると
やはり一致しない…やっちまってる…
でも、これでアプリ表示できない仮説が立った。
原因
私がやらかしてしまったのが、awsサービスを整理した際に ホストゾーンも一緒に削除してしまったこと。
通常route53でドメイン取得時にはホストゾーンも自動生成される。
そのホストゾーンをもとにドメイン設定してしていれば、今回のエラーに至っていなかった。
全く何をしているんだか…笑
解決策
■解決策:
新しく作成したホストゾーンのネームサーバーを 取得したドメインのネームサーバーと一致するように内容を更新する
これも公式ページに手順が記載されているので、そちらに従って入力していく。
着手する作業は
・取得したドメインの設定画面にアクセス
・新しく作成したホストゾーンのネームサーバー名で更新する
のみなので、シンプル。
最後にターミナルからdigコマンドで更新できているか、確認する。
% dig +trace 取得したドメイン名
〜〜 以下返答 〜〜
一部省略
↓ ネームサーバーが変更されているはず!!
ドメイン名 172800 IN NS ns-〇〇.awsdns-〇〇.com.
ドメイン名 172800 IN NS ns-〇〇.awsdns-〇〇.net.
ドメイン名 172800 IN NS ns-〇〇.awsdns-〇〇.co.uk.
ドメイン名 172800 IN NS ns-〇〇.awsdns-〇〇.org.
名前解決の内部処理には時間が掛かる…
上記手順までで作業は終わりだったが
変更した内容がすぐにはDNSサーバーに反映されない
ようだ。
試しに、nslookupコマンドでドメイン名を入力してみると
名前解決されていない…
(ドメイン名ではなくElasticIPを入力してもダメだった…)
% nslookup 取得したドメイン名
% nslookup EC2に設定済みのElasticIP
このコマンドを打ったことで、まさか別の要因もあるのか…と思い
aws問合せ窓口に質問したが原因は特定できず
その日は諦めて寝ることに。
翌日、確認のために再度nslookupコマンドを入力してみると
名前解決されている…
(他のcurlコマンドも返答があった)
% nslookup 取得したドメイン名
〜〜以下返答〜〜
一部省略
Non-authoritative answer:
Name: ドメイン名
Address: 設定済みのElasticIP
↑名前解決できてる
確実な原因特定まで至らなかったけど
恐らく内部処理に時間が掛かるのだろうと推測してる。
終わりに
私は、ドメインのネームサーバーを変更した後に1日待つことになったので
くれぐれも皆さんはawsサービスの削除にはご注意を。笑
割と教材学習時にroute53でドメイン取得した後に、
ホストゾーン削除してまう人いるのではないかなーと思うんだけども。
同じケースに巻き込まれる人が解決するヒントになれば良いな。
では、失礼します。