インフラ・ネットワークの用語
ドメイン、DNS、通信の暗号化など、サイトが「見えるようになる」ための土台にあたる言葉。
それぞれ「なぜそれがあるのか」と「つまずきやすい点」まで書いています。実際にこのサイトを作る中で出てきた具体例も入れました。
サブドメイン / 301リダイレクト / 名前解決 / ネームサーバー / HTTPステータスコード / apex ドメイン / SPF / Aレコード / CDN / CNAME / TLS / SSL / TTL / TXTレコード / DNS
サブドメイン(さぶどめいん)
ドメインの前に名前を足して作る、別扱いのアドレス。cms.kisaku.site など。
kisaku.site の前に名前を足した cms.kisaku.site や www.kisaku.site のことです。
知っておきたいこと
サブドメインは、機械から見ると独立した別のサイトです。同じドメインを持っているからといって、まとめて扱われるわけではありません。
そのため、別々のサーバーに向けることもできます。このサイトでも、表側(Vercel)とWordPress(レンタルサーバー)を、サブドメインで分けています。
検索エンジンから見た場合
Search Consoleでは、サブドメインごとに登録が必要です。ただし「ドメインプロパティ」で登録すると、すべてのサブドメインをまとめて扱えます。この場合だけはDNSでの所有権確認が必須になります。
関連記事: wwwのあるなしで、別のサイトになる
301リダイレクト(さんまるいちりだいれくと)
「このURLは恒久的にこちらへ移りました」と伝える転送。検索評価も引き継がれる。
アクセスされたURLから別のURLへ転送する仕組みのうち、「恒久的に移った」という意味を持つものです。
302との違い
302は「一時的に移っている」という意味です。この違いは検索エンジンの扱いに影響します。
301なら、元のURLが積み上げてきた評価が転送先に引き継がれます。302だと引き継がれません。サイトのURL構成を変えるときに302を使ってしまうと、それまでの蓄積を失うことになります。
よくある用途
kisaku.site から www.kisaku.site への転送のように、正規のURLを1つに寄せる用途で使われます。
ただし注意点があります。転送しても、検索エンジンの登録上は自動的に統合されません。Search Consoleでは、転送元と転送先を別のサイトとして扱う場面が残ります。
関連記事: wwwのあるなしで、別のサイトになる
名前解決(なまえかいけつ)
ドメイン名から、実際に接続すべきIPアドレスを求める処理そのもの。
「kisaku.site に接続したい」と思ったブラウザが、実際の接続先の番号を突き止めるまでの処理を指します。英語では name resolution といいます。
何が起きているのか
1回の名前解決で、実は複数のサーバーに順番に問い合わせています。まず「.site を管理しているのは誰か」を聞き、次に「kisaku.site を管理しているのは誰か」を聞き、最後にそのサーバーへ「IPアドレスは何か」を聞きます。
この階層構造のおかげで、世界中のドメインを1台で管理せずに済んでいます。
知っておくと役立つこと
サイトが表示されないとき、原因は大きく2つに分かれます。名前解決の段階で失敗しているのか、接続してから失敗しているのか。この切り分けができると、調べる場所が半分になります。
ネームサーバー(ねーむさーばー)
そのドメインについての問い合わせに、実際に答える権限を持つサーバー。NSレコードで指定される。
「このドメインのことは、このサーバーに聞いてください」という指定です。NSレコードとも呼ばれます。
なぜ知っておく必要があるのか
ドメインを買った会社と、実際に答えるサーバーは、別々にできます。ドメイン登録会社で買って、レンタルサーバー会社のネームサーバーに任せる、という形がよくあります。
このとき、設定を書き込むべき管理画面は「実際に答えるサーバー」側です。買った会社の管理画面にもDNS設定の画面がありますが、そちらは参照されません。
確認の仕方
作業前に、誰が答えているかを確認できます。
dig kisaku.site NS +short
返ってきたサーバー名で、どの管理画面を開けばいいかが分かります。この確認を先にするだけで、「保存できたのに反映されない」という失敗を丸ごと防げます。
関連記事: 所有権をどう証明するか
HTTPステータスコード(エイチティーティーピーすてーたすこーど)
サーバーが結果を3桁の数字で返す仕組み。200なら成功、404なら見つからない、など。
ページを要求したとき、サーバーが「どうなったか」を3桁の数字で返す決まりです。最初の1桁で大きく分類されています。
| 番台 | 意味 | 代表例 |
|---|---|---|
| 2xx | 成功 | 200(正常) |
| 3xx | 転送 | 301(恒久的な移動) |
| 4xx | 要求した側の問題 | 403(拒否)404(無い) |
| 5xx | サーバー側の問題 | 500(内部エラー) |
切り分けに使える
4xxと5xxの違いが特に重要です。4xxなら何度試しても同じなので、こちらの要求を直す必要があります。5xxは一時的な可能性があるので、少し待って再試行する価値があります。
この区別を知っていると、「再試行すべきか、設定を疑うべきか」を数字だけで判断できます。
関連記事: 自分のブログに記事が投稿できない — WAFの誤検知と、渡し方を変える解決
apex ドメイン(エイペックスどめいん)
サブドメインを持たない、ドメインそのもの。kisaku.site のこと。ゾーンapex、ネイキッドドメインとも。
www などが付かない、ドメインそのものを指します。kisaku.site がこれにあたります。裸のドメイン(naked domain)とも呼ばれます。
なぜ特別扱いされるのか
DNSの仕様上、apexにはCNAMEを設定できません。これが実務上の制約になります。
VercelやNetlifyのようなサービスは、接続先をCNAMEで指定させることが多いのですが、apexではそれができません。そのため、Aレコードで直接IPアドレスを書くか、www付きを正規にしてapexから転送するかのどちらかを選ぶことになります。
www ありとの関係
kisaku.site と www.kisaku.site は、機械から見ると別のサイトです。どちらでも同じ内容が出る状態にすると、検索エンジンが「同じ内容が2か所にある」と判断する可能性があります。片方に寄せるのが基本です。
関連記事: wwwのあるなしで、別のサイトになる
SPF(エスピーエフ)
このドメインのメールは、どのサーバーから送られるかを宣言するTXTレコード。なりすまし対策。
Sender Policy Framework の略。「このドメイン名でメールを送ってよいサーバーは、これだけです」と宣言する仕組みです。DNSのTXTレコードに書きます。
v=spf1 include:spf21.gmoserver.jp ~all
なぜ必要なのか
メールの差出人欄は、技術的には自由に書けてしまいます。誰でも「あなたの会社から送りました」と名乗れる、というのがメールの元々の作りです。
そこで、受け取った側が「本当にそのドメインの正規のサーバーから来たのか」を確認できるようにしたのがSPFです。宣言と違うサーバーから届いたメールは、迷惑メールとして扱われやすくなります。
事故の起きやすい場所
TXTレコードを追加するとき、既存のSPFを上書きしてしまう事故がよく起きます。これが起きると送信したメールが届かなくなりますが、サイトの表示には何の影響もないため、発覚が遅れます。TXTは複数共存できるので、必ず「追加」してください。
Aレコード(エーレコード)
ドメイン名を、IPアドレスに直接結びつけるDNSの設定。
DNSに登録する設定のうち、「この名前は、この番号です」と直接答えるもっとも基本的なものです。
kisaku.site → 216.198.79.1
覚えておきたいこと
AレコードはIPアドレスを直接書きます。そのため、サーバーを引っ越してIPアドレスが変わると、自分で書き換える必要があります。
「A」はAddress(住所)の頭文字です。IPv6という新しい形式の住所を書く場合はAAAAレコード(クアッドエー)という別の種類を使います。
触るときの注意
ここを間違えるとサイト全体が表示されなくなります。DNSの設定の中でも、影響範囲がもっとも広い部分です。変更前に現在の値を控えておくことを強くおすすめします。
関連記事: wwwのあるなしで、別のサイトになる
CDN(シーディーエヌ)
世界中に配置したサーバーから、閲覧者に近い場所でコンテンツを配信する仕組み。
Content Delivery Network の略。同じ内容を世界中の複数の場所に置いておき、閲覧者に一番近いところから返す仕組みです。
なぜ速くなるのか
通信は物理的な距離の影響を受けます。日本から米国のサーバーに問い合わせると、どんなに回線が速くても往復の時間がかかります。近くに答えを置いておけば、その往復が不要になります。
速さ以外の効果
アクセスが集中したとき、大元のサーバーに全部が届かずに済みます。結果として落ちにくくなります。
知っておくべき副作用
各所に控えが残るため、内容を更新しても、すぐには全員に反映されません。「直したのに古いままだ」という現象の多くは、この控えが原因です。緊急の場合は、控えを消す操作(パージ)が必要になります。
CNAME(シーネーム)
ドメイン名を、別のドメイン名に転送するDNSの設定。
「この名前は、あっちの名前と同じです」と答えるDNSの設定です。IPアドレスではなく別の名前を指します。
www.kisaku.site → e2e46a9cb91ef14a.vercel-dns-017.com
何が嬉しいのか
指し先のサービス側でIPアドレスが変わっても、こちらの設定を直す必要がありません。名前で指しているので、実際の番号は相手が管理してくれます。VercelやNetlifyのようなホスティングサービスがCNAMEを求めるのは、このためです。
重要な制限
ドメインそのもの(apex)にはCNAMEを設定できません。DNSの仕様上の制約です。「www無しのアドレスをVercelに向けたいのにCNAMEが使えない」という壁は、ここから来ています。
この制限があるため、多くのサイトがwww付きを正規のアドレスにしています。
関連記事: wwwのあるなしで、別のサイトになる
TLS / SSL(ティーエルエス / エスエスエル)
通信を暗号化する仕組み。URLが https:// で始まるのはこれが使われている印。
ブラウザとサーバーの間の通信を暗号化して、途中で読まれたり書き換えられたりしないようにする仕組みです。
2つの名前がある理由
SSLが古い名前、TLSが現在の名前です。技術的にはTLSが正しいのですが、「SSL証明書」という言い方が定着しているため、両方が使われ続けています。実務ではほぼ同じ意味で通じます。
何を守っているのか
暗号化だけでなく、「接続先が本物であること」の確認も担っています。証明書は、第三者機関が「このドメインの持ち主はこの人です」と保証した書類にあたります。
だからこそ、ログインフォームや問い合わせフォームがある以上、httpsは必須です。暗号化されていない通信は、経路上の誰でも読めます。
いまの実務
かつては証明書が有料でしたが、現在はLet’s Encryptなどにより無料で取得でき、多くのホスティングサービスでは設定不要で自動的に有効になります。
TTL(ティーティーエル)
DNSの答えを、どれだけの時間キャッシュしてよいかを示す秒数。
Time To Live の略で、「この答えは何秒間そのまま使ってよいか」を示す数字です。DNSの応答に必ず含まれています。
なぜあるのか
毎回すべてのサーバーに問い合わせていては、インターネット全体が遅くなります。そこで、一度得た答えを一定時間だけ手元に置いて使い回します。その期限がTTLです。
実務での意味
TTLが600なら、設定を変えても最大10分は古い答えが返り続けます。これは故障ではなく仕様です。
逆に言えば、TTLを過ぎても変わらないなら、それは待ちの問題ではありません。設定そのものを疑うべき段階に入ったと判断できます。この切り分けができると、無駄に待ち続けることがなくなります。
サーバー移転を予定しているときは、作業の数日前にTTLを短くしておくと、切り替えが速く済みます。
関連記事: 所有権をどう証明するか
TXTレコード(テキストレコード)
DNSに任意の文字列を置ける設定。用途が決まっていないため、後から来たさまざまな用途に使われている。
DNSの設定の中で、唯一「用途が決まっていない」ものです。好きな文字列を置いておけます。
なぜ用途が決まっていないのに使われるのか
この自由さが、後から生まれた用途に次々と使われました。代表的なものが3つあります。
所有権の証明。Googleなどが発行した文字列をここに置くと、「このドメインを管理できる人だ」と証明できます。DNSを書き換えられるのは所有者だけだからです。
SPF。「このドメインのメールは、このサーバーから送られます」と宣言し、なりすましメールを防ぎます。
DKIM。メールが改ざんされていないことを確認するための鍵を置きます。
つまずきやすい点
同じ名前に複数のTXTを共存させられます。「1つしか置けない」と誤解して既存のSPFを上書きしてしまう事故がよく起きます。上書きするとメールが迷惑メール扱いされ始めますが、サイトの表示には影響が出ないため、しばらく誰も気づきません。
関連記事: 所有権をどう証明するか
DNS(ディーエヌエス)
ドメイン名を、実際のサーバーの住所(IPアドレス)に変換する仕組み。
「kisaku.site」のような人が読める名前を、「216.198.79.1」のような機械が使う番号に変換する仕組みです。Domain Name System の略で、インターネットの電話帳にあたります。
なぜ必要なのか
コンピュータ同士は、IPアドレスという番号でしか相手を特定できません。しかし人間が番号を覚えるのは現実的ではありません。そこで「名前で聞かれたら番号を答える」係を用意しました。それがDNSです。
ブラウザにURLを入れると、表示より先に必ずこの問い合わせが走ります。ここが失敗すると、サーバーが正常でもサイトは表示されません。
つまずきやすい点
設定を変えてもすぐには世界中に反映されません。各所に一時的な控え(キャッシュ)が残るためです。「設定は正しいのに反映されない」と悩む時間の多くは、実際には待ち時間です。
もうひとつ、ドメインを買った会社と、実際に答えているサーバーが別ということがあります。この場合、買った会社の管理画面で設定しても、誰も参照しません。エラーも出ないので気づきにくい罠です。
関連記事: wwwのあるなしで、別のサイトになる / 所有権をどう証明するか