DNS
記事作成の背景
ポートフォリオをherokuにデプロイした際にDNSの設定をしたため。
設定時はQittaやブログの記事をそのまま参考にしたため、どういった仕組みで動作しているか理解しきれていなかった。
そのため、DNSの仕組みを再確認した上で、herokuのデプロイ作業で何をやっていたか自分の理解のために記事をまとめる。
DNSとは
IPアドレスはインターネット上で通信先のコンピュータを特定するための番号。
ex)192.168.10.1
ドメインはIPアドレスを人間が見て理解しやすい名前にしたもの。
ex)google.com
DNSはIPアドレスとドメインの相互変換するサービス。 (この変換を名前解決と呼ぶ)
ブラウザからwebページにアクセスする際は、ドメイン名を元にIPアドレスを特定している。
- クライアントからDNSサーバーに「google.com」のIPアドレスを問い合わせる
- DNSサーバーが「google.com」に紐づくIPアドレスをクライアントに返す
- クライアントは返されたIPアドレスのサーバーにアクセスする
もう少し細かく書くと、クライアントからの問い合わせはDNSサーバーを複数経由している。
(世界中の全てのドメインを1つのDNSサーバーで管理しきれないため、.comのDNSサーバー→google.comのDNSサーバーのように名前解決できるDNSサーバーに問い合わせている)
また直接DNSサーバーにアクセスせず、名前解決のデータを一時保存するDNSキャッシュサーバーが応答していることが多い。 (DNSサーバーの処理負荷軽減・応答速度の向上のため)
デプロイ作業
デプロイまでに行なった作業は以下の通りです。
- ドメインの取得
- herokuの設定
- ドメイン追加
- PointDNSの設定
- ネームサーバーの設定
これらの作業で何をやっていたいのか書いていきます。
ドメインの取得
IPアドレスと紐付けるドメインを取得します。
お名前.comで取得しました。取得が簡単で利用者が多い分、参考となる記事も多いため。herokuの設定
PointDNSの設定
PointDNSとは追加したドメインがDNSサーバーに登録されることで、アプリをデプロイしたherokuのサーバーにリダイレクトされる機能です。Adding PointDNS to your app will properly configure your custom domain for Heroku and gives you the ability to add and customize your DNS with A, AAAA, CNAME, MX, SRV or TXT records. You can setup permanent HTTP redirects directly from the web interface. Replicate your records to your own DNS servers using zone transfers. PointDnsから抜粋
この機能により、追加したドメインがDNSサーバーにより名前解決され、herokuのサーバーにアクセスすることが出来ます。
ネームサーバーの設定
ネームサーバーとはドメイン名をIPアドレスに変換するサーバー、つまりDNSサーバーです。
お名前.comからherokuのDNSサーバーを登録します。
上記設定により取得したドメインの名前解決を行うDNSサーバーからアプリをデプロイしたサーバーにリダイレクトされます。