DNSレコード何も分からん(Netlifyで独自ドメイン)

2020/03/29

web サイト作成して Netlify にホスティングして公開!っとなると、次に独自ドメインの設定がしたくなります(よね?)。早速お名前.com などのドメインレジストラで独自ドメインを取得し、Netlify の案内に従い設定していくと 、

hoge.com. ALIAS hoge.netlify.com.

とか

hoge.com. A 104.198.14.52

といった設定をしろという画面がでてきます。ALIAS レコード? A レコード?なんやそれ何も分からん...

となってしまったので調べたことをメモします。

そもそもドメインとは

ドメインはよく「インターネットの住所」と説明されます。このサイトで言えばtamaosa.comがドメイン名にあたります。

住所というか表札

個人的にはドメインは表札と表現する方がしっくりきました。

コンピュータがインターネットで web サイトを探しに行くとき実際に知りたいのはIP アドレスです。つまり IP アドレスがコンピュータにとっての住所にあたります。しかし、IP アドレスは数字の羅列であり人間にとってはとても扱いづらいものです。そこで、より人間にとって分かりやすいドメインという表札を立てておきます。

DNS(Domain Name System)

このとき必要になるのがドメインと IP アドレスを変換する仕組みです。これを実現しているのがDNS(Domain Name System)です。クライアント側はドメイン名を DNS サーバに問い合わせることで目的とする IP アドレスを知ることができます。この変換のことを名前解決と呼びます。

この DNS は大抵の場合ドメインを購入したドメインレジストラから提供されています。

DNS レコード

DNS(正確には DNS コンテンツサーバ)は、ドメインと IP アドレスの対応をつけるための対応表(ゾーンファイル)を持っています。このゾーンファイルの中身の設定 1 つ 1 つのことをDNS レコードと言います。簡単に言ってしまうと DNS が名前解決するときに参考にする設定といったところです。

この DNS レコードには様々なレコードタイプがあり、その中の 1 つが A レコードや ALIAS レコードになります。ちなみにこの DNS レコードびっくりするぐらい種類があるみたいです(https://en.wikipedia.org/wiki/List_of_DNS_record_types)。

次にいくつか代表的レコードを見ていきます。

A レコード

A レコードはドメインを IP アドレスに置き換えるレコードです。例えば、

hoge.com. A 104.198.14.52

という A レコードはドメインhoge.comを IP アドレス104.198.14.52に置き換えることを意味します。

CNAME レコード

CNAME レコードは正規ホスト名に別名を追加するレコードです。ホスト名なしで CNAME レコードを登録することはできないです。よく使われるのがホスト名wwwのありなしの設定です。

hoge.com. A 104.198.14.52
www CNAME hoge.com.

このようにしておくとwww.hoge.comにアクセスした場合も104.198.14.52で名前解決されます。

TXT レコード

TXT レコードはドメインの付加情報を自由に記載できるレコードです。よく利用されるのがドメインの所有権の証明です。Goole Serch Consoleの設定なんかにも利用されています。

hoge.com. TXT <idとか>

ALIAS レコード

ALIAS レコードは 簡単に言えば CNAME のように記述できる A レコードです。ちょっと何言ってるかよくわかんないですね。例えば、

hoge.com. ALIAS hoge.netlify.com.

この場合、hoge.comhoge.netlify.comで名前解決します。同様な書き方は A レコードと CNAME レコードの組み合わせでも可能ですが、ALIAS レコードは DNS 問い合わせが一度で済むためパフォーマンス上有利です。ただし、ALIAS レコードが利用できるのはRoute 53などの一部 DNS のみです(お名前.com の DNS は対応してませんでした)。

結局 Netlify ではどうしたら良いの

Netlify で独自ドメインを設定する場合、

  1. A レコードを使って固定の IP アドレス104.198.14.52で名前解決
  2. ALIAS レコードを使って*.netlify.comで名前解決
  3. Netlify DNS を使う

の 3 つが選択肢になります。

この際ポイントになるのがCDNを活用するか否かです。

CDN(Content Delivery Network)

CDN とは、

ウェブコンテンツをインターネット経由で配信するために最適化されたネットワークのことである。(wikipedia より)

CDN を簡単に言ってしまえば、最も近くのサーバからコンテンツを受け取ることで web ページを表示できるようにする仕組みのことです。CDN を利用するとページ表示速度が向上し、さらにサーバ負荷を分散させることができます。Netlify ではこの CDN が標準で利用できます。Netlify がよく速いといわれる所以です(よね?)。

A レコードでは CDN を活かせない

A レコード使う場合は利用している DNS に

hoge.com. A 104.198.14.52

を記述します。検索するとこの設定がよく出てきます(2020/03 現在)。しかし、Netlify の警告にもあるように A レコードを使うと CDN の恩恵が十分に受けられません...

Waring! With your current configuration, you won't benefit from the full advantages of a CDN if you use an A record

ALIAS レコードは少し注意が必要

ALIAS レコードが利用できる DMS であれば、

hoge.com. ALIAS hoge.netlify.com.

を記述します。ただし、Apex ドメインを利用する場合は注意が必要なようです。


基本的に Netlify ではプライマリドメインとしてwww付きを利用することを強く推奨しているようなので、特にだわりがない限りはwww付けたほうが良さそうです。

Netlify DNS は良い感じにやってくれる

これは利用する DNS 自体をNetlify DNSにしてしまう方法です。Netlify DNS を使うと面倒な DNS レコード設定を Netlify 側が良しなにやっておいてくれます。これが一番楽なので個人的におすすめです。

DNS の変更も簡単で「Set Up Netlify DMS for hoge.com」をクリックしていけばあとは Netlify の言うことを聞くだけです。

結論

Netlify DNS を使えば勝手に良い感じやってくれる。あとwwwはあった方が無難。

参考

logo

たまおさ

物理で修士とってからソフト見習い。釣りと登山が好きです。(@tamaki_osamu)