ドメインとDNSの仕組み:非エンジニアのためのガイド
ドメインは、サイトにたどり着くために人が入力する名前(例:example.com)です。DNS(ドメインネームシステム)は、その名前を、サイトが実際に置かれている場所に変換するインターネットの電話帳です。ドメインはレジストラから借り、DNS レコードを追加して「ウェブサイトはあちら」「メールはこちら」と指定します。アプリにカスタムドメインを接続するのは、基本的に正しい場所に正しいレコードを追加し、反映されるのを待つことです。
AIで作るときに、なぜ重要か
AI アプリビルダーはアプリを作りホストできますが、ドメインはアプリの外、多くの場合は別の会社の、見慣れないレコードの種類だらけのコントロールパネルにあります。ここで多くのローンチが止まります。アプリの準備はできているのに、ドメインがエラーを表示する。あるいは DNS を変えた後に、なぜかメールが届かなくなる、といったことです。
少しの理解で大きな違いが生まれます。ホストが求めているレコードが分かり、まだ反映されない理由が分かり、すでにドメインに依存しているもの(メールなど)を壊さずに済みます。
日常の例え
スマホの連絡先を想像してください。
友人の番号は覚えていなくても、名前をタップすれば、電話が番号を調べてくれます。DNS はインターネットでも同じことをします。example.com と入力すると、DNS は接続先サーバーの番号(IP アドレス)を調べます。
- ドメインは連絡先の名前です。
- レジストラは、その名前が公式にあなたのものだと記録する会社です。
- DNS レコードは、その名前に保存された詳細です。電話番号、メールアドレス、住所にあたります。
- ネームサーバーは、その名前の公式の連絡先帳がどれかを決めるものです。
- キャッシュは、スマホが番号をしばらく覚えておくことです。相手が番号を変えても、保存されたコピーが更新されるまで古い番号に電話し続けることがあります。これが DNS の「伝播」と呼ばれるものです。
ドメイン名の構成要素
app.example.com を例にすると:
| 部分 | 名称 | 補足 |
|---|---|---|
.com | トップレベルドメイン(TLD) | レジストリが運営。ほかに .org、.io、.ai、.uk などの国コードがある |
example | セカンドレベルドメイン | 自分が登録する部分 |
example.com | ルートまたは「アペックス」ドメイン | 所有しているもの |
app | サブドメイン | DNS で自由に作成できる。www、app、shop など |
ドメインは完全に買い取るものではなく、一定期間(通常1年以上)登録して更新するものです。更新しなければ、他の人が登録できるようになります。
DNS の検索の仕組み
誰かが app.example.com と入力すると:
- ブラウザは、通常はインターネットプロバイダーや公開サービスが運営する DNS リゾルバー にアドレスを問い合わせます。
- リゾルバーが新しいキャッシュの答えを持っていれば、すぐに返します。
- 持っていなければ、階層をたどります。ルートサーバーが
.comのサーバーを案内し、それが あなたのドメインのネームサーバー を案内します。 - ネームサーバーが、設定したレコードを返します。ホストへの CNAME や、IP アドレスを持つ A レコードです。
- リゾルバーはその答えをレコードの TTL(生存時間)の間キャッシュし、ブラウザに渡します。ブラウザはサーバーに接続します。
これは通常ミリ秒単位で完了します。
実際に使う DNS レコードの種類
| レコード | 役割 | 例 |
|---|---|---|
| A | 名前を IPv4 アドレスに向ける | example.com → 203.0.113.10 |
| AAAA | 名前を IPv6 アドレスに向ける | example.com → 2001:db8::10 |
| CNAME | 名前を別のホスト名のエイリアスにする | app.example.com → myapp.host.com |
| MX | ドメイン宛のメールを受け取るサーバーを、優先度番号付きで指定 | example.com → 10 mail.provider.com |
| TXT | テキストを保持。所有確認やメールのセキュリティに使う | v=spf1 include:_spf.provider.com ~all |
| NS | ドメインの権威あるネームサーバーを一覧にする | ns1.dnsprovider.com |
| CAA | HTTPS 証明書を発行できる認証局を制限 | 0 issue "letsencrypt.org" |
知っておくと役立つ規則:
- CNAME は同じ名前の他のレコードと共存できません。 そのため、標準の CNAME はルートドメインに設定できません。ルートドメインには常に NS などのレコードがあるからです。多くの DNS プロバイダーは ALIAS、ANAME、CNAME フラット化と呼ばれる回避策を提供しています。
- TXT レコードはメールの仕事の多くを担います。 SPF は、そのドメインからメールを送れる相手を列挙します。DKIM は署名を検証する鍵を公開します。DMARC は、これらのチェックに失敗したメールを受信側がどう扱うかを指定します。
- MX の番号が小さいほど優先度が高い。 メールは最も小さい番号から試されます。
伝播と TTL
「伝播」と聞くと、変更がインターネット上にゆっくり広がるように聞こえます。実際に起きているのはキャッシュです。リゾルバーは各答えをその TTL の間保存し、期限が切れてから改めて問い合わせます。そのため:
- 一度も検索されていない新しいレコードは、数分で動くことが多いです。
- 既存のレコードを変更すると、どこでも新しい値が見えるまで古い TTL の分だけかかります。
- ネームサーバー の変更は、TLD のレベルでより長くキャッシュされるため、最大で1〜2日かかることがあります。
役立つコツ: 予定している変更の前に、レコードの TTL を数分程度まで下げておき、古い TTL が過ぎるのを待ってから変更します。
実例: 予約アプリをドメインに接続する
あなたは yoursalon.com を所有しています。現在のウェブサイトと Google Workspace のメールがすでにそのドメインを使っています。予約アプリを作り、それを book.yoursalon.com に置きたいとします。
- DNS の管理場所を確認する。 レジストラか、別の DNS プロバイダーかもしれません。NS レコードを見ると分かります。
bookの CNAME を追加する。 向け先は、アプリのホストが指定するターゲットです。- 所有確認に必要な TXT レコードがあれば追加する。 ホストが使う場合のみ。
- MX とメールの TXT レコードには触れない。 触らなければ、メールは引き続き動きます。
- DNS が更新されたら、ホストで確認する。 ホストは
book.yoursalon.comの HTTPS 証明書を発行します。 - モバイルデータ回線でスマホからテストする。 自宅の Wi-Fi とは別のリゾルバーとキャッシュを使うからです。
ルートの yoursalon.com に載せたい場合は、A レコードか、DNS プロバイダーの ALIAS やフラット化機能が必要です。そして、そこにある現在のウェブサイトを置き換えることになります。手順の詳細はカスタムドメインを接続する方法をご覧ください。
よくある間違いと誤解
- 「ドメインとホスティングは同じもの」。 ドメインは名前、ホスティングはアプリが動く場所です。DNS がその2つをつなぎます。
- ホストが CNAME を求めているのに A レコードを使う(またはその逆)。 ホストの指示に正確に従いましょう。
- 向け先のタイプミス。 CNAME の向け先の1文字でも間違えると、確認が失敗します。
- レコードをコピーせずにネームサーバーを切り替える。 MX と TXT レコードを作り直さずに DNS を新しいプロバイダーに移すのは、メールを壊す典型的な方法です。
- 必要ないのにプロキシを使う。 Cloudflare など一部の DNS プロバイダーはトラフィックをプロキシできます。ホストによっては、証明書を発行できるように「DNS のみ」に設定する必要があります。
- 「よく分からない」TXT レコードを削除する。 多くは、何かが依存している所有確認やメールのセキュリティのレコードです。
- ドメインの期限切れを放置する。 自動更新をオンにし、支払いカードを最新に保ちましょう。
AI ビルダーに何を頼むか
DNS はコードの外にあるので、ここで大事なのは「何について尋ねるか」です。
- 「app.mydomain.com に必要な正確な DNS レコードは?種類、名前、値を教えて」
- 「この変更はメールに影響しますか?」
- 「レコードを追加したらドメインがエラーになります。何を確認すべきですか?」
- 「www と www なしの両方でサイトが表示されないように、正規 URL とリダイレクトを設定して」
- 「ドメインからアプリのメールを送れるようにして。必要な SPF、DKIM、DMARC のレコードは?」アプリからメールを送る方法をご覧ください。
Mythex のカスタムドメイン
公開された Mythex アプリには、すべて yourname.mythex.app のアドレスが付きます。Pro では、代わりに独自ドメインを使えます。Mythex 内でドメインを購入できます(登録料は別途請求され、購入したドメインの DNS は自動で管理されます)。または、すでに所有しているドメインを接続します。app.example.com などのサブドメインから、アプリの yourname.mythex.app アドレスへの CNAME を追加し、Verify をクリックします。HTTPS は自動で発行されます。DNS が Cloudflare にある場合は、そのレコードを「DNS のみ」に設定してください。サブドメインを推奨します。ルートドメインは、DNS プロバイダーの ALIAS またはフラット化のサポート状況に依存します。各手順はカスタムドメインのドキュメントで確認でき、Pro に含まれる内容は料金をご覧ください。
よくある質問
DNSとは簡単に言うと?
DNS(ドメインネームシステム)はインターネットの電話帳のようなものです。example.com のような覚えやすい名前を、コンピュータが必要とする情報(通常は IP アドレス)に変換し、ブラウザが正しいサーバーにたどり着けるようにします。
A レコードと CNAME の違いは?
A レコードは名前を IPv4 アドレスに直接向けます。CNAME は名前を別のホスト名に向け、そこから先の検索が続きます。ホストの IP アドレスが変わるかもしれない場合に便利ですが、標準の CNAME はルートドメインそのものには使えません。
DNSの伝播にはどれくらいかかる?
多くは数分、場合によっては数時間です。古いレコードのキャッシュが期限切れになるにつれて変更が見えるようになり、それはレコードの TTL によって決まります。ネームサーバーの変更は、その記録がより長くキャッシュされるため、最大で1〜2日かかることがあります。
ドメインのDNSを変えるとメールが壊れる?
メールが依存しているレコード、つまり MX レコードや SPF、DKIM、DMARC などの TXT レコードを変更または削除した場合のみです。www や app の CNAME を追加しても、メールには影響しません。ネームサーバーを新しいものに移すとき、事前にそれらのレコードをコピーしていないと、メールが壊れる可能性があります。
ルートドメインではなく www や app を使うのはなぜ?
www.example.com や app.example.com のようなサブドメインは CNAME を使えます。多くのホスティングプラットフォームが求めるのもこの形です。ルートドメイン(example.com)には標準の CNAME を設定できないため、A レコードか、プロバイダー独自の ALIAS、ANAME、CNAME フラット化の機能が必要です。