Web制作者としてWebの仕組みを理解することは必須です。特にドメイン、サーバー、DNS、DNSレコードあたりは、Webの仕組みを知る上で重要かつ、ドメインやサーバー変更などがあった場合の対処に必要な知識です。Webサイトが表示される仕組みの観点からそれぞれの役割を理解しておきましょう。
実際のウェブ制作の現場では、デザインとコーディングをして終わりではありません。ドメインの取得やサーバーへのアップロードまで含めてWeb制作です。また、新規制作ではなくリニューアルの場合は、ドメインは継続でサーバーは新規契約する場合や、ドメインを変更するパターンなど様々なケースがあります。そのような対応を迫られたときにでも、ドメイン、サーバー、DNSの基本を理解しておけば、慌てることはないでしょう。
まずはサーバーについて見ていきましょう。
サーバーは、ユーザーからのリクエストを受け付ける場所です。
(英語の”serve”は「仕える」という意味。ユーザーリクエストに応じて情報を提供する情報提供者の意味合いでサーバー ”server”と言われます)
ユーザーがリンクをクリックするなどしてWebサイトへのアクセスをリクエストしたときに、特定のサーバーにアクセスし、そこから必要なファイルをダウンロードしてWebサイトを表示することができます。
サーバーでは受け付けたリクエストに応えるために様々な処理をすることができますが、まずは単純にリクエストに応じたHTMLファイルをユーザーに返すものと理解していただいて問題ありません。
そうやってサーバーからダウンロードしてきたファイルをWebサイトとして表示する役割はブラウザ(ChromeやEdgeなど)が担っています。
ブラウザとはChromeやEdge、Safari、Firefoxなど皆さんが普段Webサイトを表示するために使っているものです。HTMLやCSSを解析(レンダリングといいます)してWebサイトを表示することができます。
ですので、Web制作者は、Webサイト公開時にサーバーにWebサイトを表示するために必要なファイルを一式アップロードする必要があります。
ちなみに、いきなりサーバーからWebサイトに必要なすべてのファイルをダウンロードしてくるわけではありません。HTMLファイルをダウンロードし、HTMLファイルを解析(レンダリング)する過程で、その中にCSSファイルやJavaScript、画像ファイルのリンクがあれば、さらにサーバーにリクエストしてそれらをダウンロードしてきます。
今はあまりありませんが、昔はブラウザごとにHTMLやCSSを独自に解釈することも多く、ブラウザ間の互換性を持たせることが大変だったようです(僕がWebを始めた2014年よりもっと昔の話です)。ブラウザの覇権争いもあって、それぞれが独自の機能をつけようとしたことが始まりだったようです。このような状況に対処するため、標準化団体であるWorld Wide Web Consortium(W3C)やその後に設立されたWHATWGがWeb技術の標準化に取り組むようになりました。
話をサーバーに戻します。サーバーの住所について考えてみましょう。
サーバーにアクセスするということは、住所のようなものが必要なはずです。インターネットの世界ではサーバーの住所はIPアドレスで決められています。
IPアドレスは例えば192.168.1.1のように数字をドットで区切ったような形式になります。ユーザーはIPアドレス、つまりインターネット上の住所にアクセスすることでウェブサイトを表示することができます。
ただここで少し疑問が出てきます。普段私たちはWebサイトを閲覧する過程で、IPアドレスを直接見かけることはほとんどありません。ではどのようにしてIPアドレスを指定しているのでしょうか。そこにはドメインが関係しています。それでは次にドメインについて見ていきましょう。
サーバーの住所はIPアドレスだと言いましたが、IPアドレスは数字の羅列で非常にわかりづらいですよね。そこでIPアドレスの代わりにもっと人間にとってわかりやすいドメインを用います。そしてこのドメイン自体が特定のIPアドレスと紐付いています。
具体的に例を見ながらドメインについて説明をしていきましょう。
ウェブサイトのURLは例えば下記のようなものがあります。
https://example.com
上記URLの「example.com」の部分がドメインになります。さらに.comの部分をトップレベルドメインといい、ここは他にも、.net や .org や .co.jpなど様々なドメインが存在し、それぞれどのような用途で使用するドメインなのか定められています。日本の企業ホームページを開くと「.co.jp」になっていることが多いと思いますが、この.co.jpというのは日本国内の法人のWebサイトを示しており、日本国内の法人でなければ取得することができません。
.co.jpの場合は、.jpがトップレベルドメインで、.coはセカンドレベルドメインといいます。.jpが日本国内を示し、.coが法人格を示しています。日本国内の政府関係の場合は.go.jp(government)になり、大学や短大などの教育機関なら.ac.jp(academic)になります。
設立前の新規法人用のホームページ制作の場合は.co.jpは取得できるの?
.co.jpを利用するためには法人の登記簿を提出する必要がありますが、設立前には当然登記簿を用意することはできません。ただし、6ヶ月間は.co.jpを仮登録することができその間はドメインを利用できます。仮登録が有効な間に、登記簿を提出し正規登録を完了して正規登録しましょう。(.ac.jpや.go.jpも同様の仕組みがあります)
ドメインがURLの一部に含まれていることがわかりました。そして先述した通り、このドメインはIPアドレスと紐付けられていて、URLにドメインが含まれていることで特定のサーバーにアクセスすることができます。
例えば、example.comというドメインに対して、IPアドレス192.168.1.1が紐付けられていれば、https://example.comというURLをユーザーがクリックすることでIPアドレス192.168.1.1のサーバーにアクセスすることができます。
ではそもそもこのドメインはどのようにしてIPアドレスを紐付けられているのでしょうか。次にDNSについて見ていきましょう。
ではそもそもドメインとIPアドレスをどこで紐付けているのかですが、これはDNS(Domain Name System)が担っています。ユーザーがブラウザでURLリンクをクリックするなどして、特定のWebサイトをリクエストした際にどのようなう流れでWebサイトを表示できるのか見ていきましょう。例えば、https://example.comのリンクをクリックしたとします。そうするとまずDNSにexample.comのIPアドレスを尋ねに行き、DNSがIPアドレスの情報をブラウザに返してくれます。そのIPアドレスを使ってウェブサイトのファイルが格納されたサーバーにアクセスします。そしてサーバー上にあるファイルをブラウザにダウンロードしてブラウザでWebサイトを表示する流れになっています。
DNSサーバーについてもう少し詳しく見ていきましょう。DNSサーバーは階層構造になっています。
例えばドメインがexample.comの場合、どのようにして最終的にWebサーバーのIPアドレスにたどり着くのか見ていきましょう。
DNSサーバーにはルートサーバーという親玉がいて、まずはルートサーバーに問い合わせをします。ここでいきなり「example.com」のIPアドレスを教えてもらうのではなく、ここでは「.com」について管理しているDNSサーバーのIPアドレスを教えてくれます。そして.comについて管理しているDNSサーバーに問い合わせをすると今度は、「example.com」について管理しているDNSサーバーのIPアドレスを教えてもらえます。最終的にexample.comのIPアドレスを管理しているDNSサーバーに辿りつき、そこで教えてもらったIPアドレスを使って、Webサイトにアクセスします。
ちなみにこのようにドメインからサーバーのIPアドレスを特定することを名前解決といいますので覚えておきましょう。
また、上記で説明した名前解決までの流れは一般的な概念であり、実際にはキャッシュサーバーなどを利用するため常に上記の流れではありません。Web制作をするにあたり、納品時の対応としてDNS周りの作業が発生することも少なくはないので、まずはDNSの役割と概念を理解をしておいてください。
DNS周りの設定を変更すると、24〜48時間程度、反映に時間がかかることがあります。
例えば、ドメインをそのままでサーバーを変更する場合はDNSの情報を変更してアクセス先のIPアドレスを新しいサーバーに向けたりしますが、変更した瞬間から新しいサーバーにアクセスできるわけではありません。
原因の一つはDNSのキャッシュ(一時的にデータを保存しておく仕組み)で、これが更新されるまで旧Webサイトに飛ばされます。また、世の中には大変多くのDNSがあり、人によって参照しているDNSが異なることで、隣の人は表示が切り替わったが、自分はまだ切り替わっていない、ということが起こります。
ですので、DNSの情報を変更した後、自分の環境で更新を確認できてもクライアントの環境ではまだ更新されていない可能性があります。あらかじめクライアントに伝えておくと安心でしょう。
さて、実務で本番公開するには、ドメインとサーバーが必要であることはもちろん、DNSが絡んでいることがわかりました。DNSサーバーは特に契約する必要はなく、ドメインを契約をするとデフォルトではそのドメインを契約したサービスのDNSが使われます。
例えばXサーバーでドメインを契約した場合、初期設定ではXサーバーのDNSを使うようになっていますし、お名前.comでドメインを契約すれば、初期設定ではお名前.comのDNSを使うようになっています。これはドメイン管理画面で見ることができます。例えばXサーバーのドメイン管理画面で、契約済のドメインを選択してネームサーバー設定を見ると次のようになっています。
ns1.xserver.jpやns2.xserver.jpはXサーバーのDNSなので、つまりこのドメインはXサーバーのDNSで管理されていることがわかります。そしてXサーバーでサーバーを契約すると、サーバーコントロールパネルで、「ドメイン設定」という項目があり、そこで利用するドメインを設定することで、そのドメインとサーバーをXサーバーのDNSで紐づけることができます。
ここまでを整理すると次のような流れになります。
DNSを特に変更しないのであれば、ドメインを取得した後、「3」のステップに移動し、サーバー側でドメイン設定をします。
注意してください。仮にXサーバーでドメインもサーバーも契約した場合は特に意識する必要がありませんが、Xサーバーでドメインを取得して、さくらインターネットのサーバーを使うなど、異なるサービスを使う場合は、「2.どこのDNSを使うかを指定する」の手続きが必要です。なぜならXサーバーでドメインを取得するとデフォルトでXサーバーのDNSを使いますが、サーバーが(例えば)さくらインターネットの場合、さくらインターネットのサーバーでドメイン設定をしてもXサーバーのDNSの設定には当然反映されず、さくらインターネットのDNSに反映されます。(もちろんこれは意味のないことです。なぜならドメインはXサーバーのDNSを使うようになっているため、さくらインターネットのDNSの設定はどうあろうが関係がありません。)
ドメインとサーバーを異なるサービスで契約した場合、つまり先の例のように、DNSがXサーバーで、サーバーがさくらインターネットなどの場合、使うするDNSをさくらインターネットに変更する必要があります。先程のドメイン管理画面をもう一度見てみましょう。
画像の右上にある「設定変更」ボタンから、そのドメインで使うDNSを変更することができます。ここからさくらインターネットのDNSに変更することで、そのドメインの情報をさくらインターネットのDNSで持つことができます。
DNSはそのドメインがどのIPアドレスと紐づくかを指定することができますが、もう少し具体的に言うと、DNSの中にレコードという概念があり、レコードの中にドメインとIPアドレスの紐づけ情報が書かれています。
先程の例で、ドメインをXサーバー、サーバーをさくらインターネットにした場合、使うDNSをさくらインターネットにすると言いましたが、実はXサーバーのDNSのまま、DNSのレコードを書き換える方法もあります。
図にまとめると以下のような感じです。
※ この辺は様々なパターンがあり後に説明するメールも関係してきます。ですので一概にどうするというよりは、状況に応じて適切な対応ができるように仕組みを理解しておくことが重要です。
次にDNSのレコードについて説明をします。
DNSがドメインとサーバーを紐づけていることは十分にご理解いただけたのではないかと思います。
ただこれだけでは実際の実務では不十分で、「DNSレコード」について理解をしておく必要があります。これまでにDNSはドメインとサーバーを紐づけると言ってきたのですが、DNSの中にレコードという概念があり、レコードの中にドメインとIPアドレスの紐づけ情報が書かれています。
そして、DNSは実は単純に1つのドメインとサーバーを紐づける情報だけを持っているのではなく、それ以外にもドメインの様々な情報を持っており、それらは各種レコードに保存されています。つまりDNSには複数のレコードがあるということです。
簡単にDNSのレコードについて見ていきましょう。
例えば、AレコードはドメインとサーバーのIPアドレス(IPv4アドレス)を紐づけます。また、MXレコードはメールサーバーを指定することができます。他にもTXTレコード(テキスト情報を格納できる:メールの認証作業などで使われる)、CNAMEレコード(別のホスト名にエイリアスする)などがあります。まず抑えておきたいのはAレコードとMXレコードです。
例えば、◯◯◯.co.jpと202.211.xxx.xx(サーバーのIPアドレス)を紐づけたい場合は、DNSのAレコードを202.211.xxx.xxとします。ただ、同じレンタルサーバーでドメインとサーバーを契約した場合、わざわざレコードを設定しなくても自動的に設定されるので意識する機会は中々ないかもしれません。
しかし、先程の例のように、ドメインをXサーバーにしてサーバーをさくらインターネットにする場合で、XサーバーのDNSを使いたい場合は、XサーバーのAレコードを編集してさくらインターネットのIPアドレスにすることで、Webサイトを表示する際はさくらインターネットを参照するようになります。
※ただメールもさくらインターネットで送受信する場合はMXレコードの指定が必要です。
DNSを変更するパターンもあれば、DNSは変更せずにレコードを編集するパターンもありました。ただこれらの作業をする際にメールについて考慮しておく必要があり様々なパターンがあります。
クライアントからWebサイトリニューアルに際して「ドメインはそのまま、サーバーは変更してください」と言われた場合の対応を考えてみましょう。(あくまでも一例です。)
サーバーが変わるので、当然ドメインとサーバーの紐づけも変わります。つまりDNSのAレコードを変える必要があります。新しく契約したサーバーのIPアドレスを調べて(サーバーのコントロールパネルのどこかに書いています)、DNSのAレコードをそのIPアドレスに書き換えることで、ドメインが紐づけられるIPアドレスが変わります。
ただメールのことを忘れないように注意してください。Aレコードを変更したので、Webサイトを開くと新しいサーバーを参照するようになりますが、MXレコードはそのままなので、メールは旧サーバーに届きます。つまり、旧サーバーを解約してしまうとメールは届かなくなります。旧サーバーを残して、旧サーバーでメールを送受信するならAレコードだけを変える形で問題ありませんが、旧サーバーを削除するなどで新サーバーでメールを送受信するのであれば、そもそもDNSのレコード変更ではなく、DNS自体を変えることを考えます。
例えば、元々Xサーバーでドメインもサーバーも契約して、XサーバーのDNSを使っていたとしましょう。そしてサーバー変更でさくらインターネットにするとします。このとき、Webサイトだけでなく、メールの送受信もさくらインターネット側で行うなら、XサーバーのDNSからさくらインターネットのDNSに切り替える方法を考えます。
そしてさくらインターネットでメール送受信をするためにメールアドレスの作成が必要なのと、メールソフト側で送受信できるように、メールソフト側の設定変更が必要です。(メール送受信の仕組みがわからない方はこちらをご覧ください。:YouTubeが開きます)
ちなみに旧サーバーでメール送受信する場合でも、DNS自体を変更して、変えた先のDNSでMXレコードを旧サーバーに向ける方法もあるでしょう。
サーバー変更する場合はメールの送受信が旧サーバーか新サーバーかに注意してください。新サーバーなら、新サーバー側でメールアドレスの作成と、メールソフト側の再設定が必要になります。
これらはあくまでも、他に考慮すべきことがない場合の一例ですので、仕組みを理解して状況に応じて考えるようにしましょう。
Google Workspaceなど外部サービスでメール管理することもあります。この場合は、Google Workspaceのガイドに従い、Google Workspace用のMXレコードやドメイン認証用のTXTレコードをDNSに追加する必要があります。(Google Workspaceに限らず外部のサービス関係で、レコードを色々書く必要が出てくる場合があります。ただ、この辺は各連携先のサービスのガイドラインを見て作業することになると思いますので、DNSやレコードについて理解しておくことが重要です。)
Web制作では様々なパターンが考えられます。もちろん何もせずにアップロードだけで事足りることも少なくはありません。ただ、サーバーを変更したいという要望は一定の割合であります。
状況に応じた対応ができるように、Webサイトが表示される仕組みについて、DNSやレコードも含めて理解しておきましょう。