DNSは、ドメインネームシステムの略で、ウェブに欠かせない言葉でありながら、誤解されがちな概念でもあります。簡単に言うと、DNSはドメイン名と実際のウェブサーバーを接続することで、インターネット上のトラフィックを整理、誘導する役割を果たします。基本的に、DNSは、kinsta.comのようなドメイン名という人間にとって使いやすいリクエストを受け取り、216.3.128.12のようなコンピュータにとって使いやすいサーバーIPアドレスに変換します。
DNSはアドレスの検索とデバイスの接続を行うもので、その性質から「インターネットの電話帳」と例えられることがあります。DNSがなければ、サイトにアクセスするために、いちいちすべてのサイトのIPアドレスを覚えなければならず、考えるだけでも気が遠くなります。
DNSの仕組み
ユーザーがウェブブラウザにURLを入力すると、DNSによりそのURLが実際のサーバーのIPアドレスに取り継がれます。この処理を指して「名前解決」という表現が使われるのが一般的です。さまざまなネームサーバーに問い合わせを行い、サーバーの実際のIPアドレスの特定を行います。
DNSは主に4つのコンポーネントに関係しています。
- ドメインレジストラ
- ネームサーバー
- DNSレコード
- ウェブベースのサービス(ウェブサイトのホスティングやメールなど)
これら4つのコンポーネントがどのように連携しているか見てみましょう。
ドメインレジストラ
ドメインレジストラは、ドメイン名の購入場所であり、ここで登録したドメインの管理が行われます(GoDaddyやNamecheapなど)。Kinstaではドメイン登録のサービスを提供していませんが、こちらでおすすめのドメインレジストラをご紹介しています。
レジストラでドメインのネームサーバーの指定を行います。
ほとんどのレジストラで、ドメイン登録費用に基本的なDNSサービスが含まれています。その結果、ドメインに対して特別なネームサーバーを追加/設定しない限り、ドメインはレジストラの標準ネームサーバーを使用することになります。つまり、ほとんどの場合、デフォルトでDNSレコードはレジストラにより管理されます。
ネームサーバー
ネームサーバーはウェブサーバーとよく似たサーバーです。ただし、ウェブサイトやウェブアプリケーションの情報を配信するのではなく、DNSレコードを保存するように設定されています。
つまり、DNSレコードを変更したい場合は、レジストラまたはCloudflareなどのサードパーティサービスによって指定されたネームサーバー上のDNSレコードを変更する必要があります。
このステップは少しわかりにくいので、架空の例を見て考えてみます。
- あなたのドメイン(example.com)はGoDaddyで登録(購入)されています。
- GoDaddyアカウント内のexample.comにCloudflareのネームサーバーを追加し、Cloudflareの使用を開始しました。
- GoDaddyでexample.comのDNSレコードを変更します。とは言え、ドメインはGoDaddyのネームサーバーを使用していないため、この変更では何も変わりません。
- Cloudflareでexample.comの同じDNSに変更を加えます。ドメインでCloudflareのネームサーバーが使用されているため、この操作により、実際に設定内容を変更することができます。
つまり、GoDaddyのみを使用している場合は、ネームサーバーを管理しているGoDaddyでDNSレコードを変更できます。Cloudflareを使用している場合は、Cloudflareでネームサーバーを管理するため、CloudflareでDNSレコードの調整を行う必要があります。Kinsta DNSを使用している場合も同様です。
まずドメインネームサーバーにアクセスしなければ、ウェブサイトを訪問することはできません。その過程で、”DNS server not responding“といったメッセージが表示されることがありますが、これは基本的にホスト名をIPアドレスに変換する分散型ネーミングシステムが応答しなかったことを意味します。
DNSレコード
DNSレコードは、ドメインとウェブベースのサービスを紐付ける役割を果たします。
DNSレコードにはいくつかの種類がありますが、ほとんどの場合、使用されるのは4~5種類だけです。以下をご覧ください。
- Aレコード:ドメインまたはサブドメインをIPv4アドレスで指定するのに使用します。これは、example.comのようなドメインを、example.comのウェブサイトが存在するウェブサーバーに誘導するためのルールです。(注:ウェブサーバーがIPv4アドレスではなくIPv6アドレスを使用している場合は、AレコードではなくAAAAレコードが使用されます)。
- CNAMEレコード:サブドメインをプライマリ(カノニカル)ドメインに紐づけるのに使用します。例えば、www.example.comとexample.comのように、wwwサブドメインをプライマリドメインに関連付けられます。
- MXレコード:ドメインとメールサービスを紐づけるのに使用します。例えば、example.com宛のメールをGmailなどの特定のメールサービスに転送するのに使うことができます。
- TXTレコード:任意のテキストをドメインに設定するのに使用します。例えば、SPFレコードをドメインに関連付けることで、メールの配信性を高め、スパムに対する守りを固めることができます。メール認証についてはこちらで詳しくご紹介しています。
ウェブサービス
Kinstaの場合、ウェブサービスはウェブサイトのホスティングとなります。Aレコード(またはAAAAレコード)をドメインのネームサーバーに追加して、そのドメインをウェブサイトをホストするウェブサーバーに紐づける必要があります。
DNSレコードを通じてドメインに関連付けられるウェブサービスには、他にもメール、SFTP、ホスティングコントロールパネル、ウェブメールアプリケーション、phpMyAdminなど、多くの種類があります。
DNSの伝播
DNSレコードの設定やネームサーバーの切り替えなど、特定のドメインのDNSに変更を加えた場合、その変更が反映されるまでにはある程度の時間がかかります。この時間を伝播と呼びます。
伝播にかかる時間は、実際には状況によって大きく異なります。
DNSレコードでは、各レコードに関連するTTL(Time to Live)値があります。この値によって、DNSレコードの変更がどれくらいの速さで反映されるかが決まります。
ほとんどの場合、DNSレコードのTTLはデフォルトで1時間または4時間に設定されています。つまり、通常、DNSの変更内容は反映されるまでに4時間ほどかかります。より高いTTL値になる可能性もあり、その場合には、DNSレコードの変更後に、その内容が完全に反映されるまでにより多くの時間がかかることを意味します。極端なケースでは、TTL値が1週間にもなることもあります。
ネームサーバーの場合、TTL値はレジストラが決定し、一般的に変更することはできません。そのような理由で、ネームサーバーの切り替え後、変更内容が有効になるまで数分から1日以上かかることがあります。
ホスティングプロバイダ(例えばKinsta)に、DNSの伝播を早める術はありません。利用者ができるのは、DNSレコードに変更を加える前にTTLの値を小さくし、できるだけ早く反映されるようにすることくらいです。whatsmydns.netのようなオンラインツールを使用して、DNSの変更が伝播し終わったかどうかをテストすることができます。
DNS設定─ドメインの設定方法
一般的にDNSを設定する方法は2つあります。Kinstaは両方の方法をサポートしており、どちらを使うこともできます。
1つ目は、ドメインのネームサーバーをドメインレジストラ経由でホストのネームサーバーに紐づける方法です。最低2つのドメインを用い、次のようになります(ネームサーバーは2つ以上持つことができます)
- ns1.yourhost.com
- ns2.yourhost.com
Kinstaでは、Amazon Route 53と提携し、高性能ネームサーバーを追加料金なしでお客様にご提供しています。次のような4つのネームサーバーになります。
- ns-xxx.awsdns-60.net
- ns-xxxx.awsdns-27.org
Kinstaで無料で利用できるDNSであっても、サードパーティのDNSであっても、サイトのプライマリドメインと追加ドメインに向けたレコードを設定する必要があります。
Kinstaをご利用のお客様は、サイトにドメインを追加する方法をご覧ください。
人気のレジストラやDNSサービスでDNSを設定する方法は以下の各ページでご紹介しています。
無料DNSと有料DNS
DNSには、無料のものも有料のものもあります。すべてのKinstaのお客様に、Amazon Route 53のDNS(本来であれば有料のサービス)をご利用いただけます。というのも、Kinstaは、優れたDNSは現代ウェブ業界に欠かせない要素であると考えています。
高性能DNSを選択する大きな理由の1つとして、スピードと信頼性に大きな違いが出ます。DNSレコードの検索とトラフィックの誘導には(ミリ秒であろうと)時間がかかるものです。
一般的に、ドメインレジストラから提供される無料のDNSは比較的低速です。一方で、有料級のDNSは多くの場合、優れたパフォーマンスを誇ります。
さらに、有料レベルのDNSは、DDoS攻撃などの脅威の標的になった場合であっても、優れたセキュリティと可用性を実現することができます。
ドメインレジストラが提供する無料DNSと有料レベルのDNSの中間的な存在として、Cloudflare DNSがあります。これは、有料DNSサービスの機能の多くを網羅する無料サービスです。Cloudflare DNSを使用する場合には、Amazon Route 53の高性能DNSは併用できませんのでご注意ください。
まとめ
DNSの仕組みについてご理解いただけたでしょうか。要約すると、DNSは、ウェブサイトホスティングやメールなどのウェブベースのサービスをドメインに紐づけるのに使用されます。これには4つのステップがあります。
- ドメインをドメインレジストラに登録する
- ドメインレジストラでネームサーバーを指定する
- ドメインレジストラ(またはCloudflareなどのサードパーティサービス)によって指定されたネームサーバーにDNSレコードを追加する
- 関連する各ウェブサービスへの紐付けを行う(+DNSレコードの伝播)