ドメインを購入する前に開発者が知っておくべきこと
ドメイン購入前に、レジストラ・DNSプロバイダー・ホストの違い、更新料と移管費用を確認し、Cloudflareやサイト用のDNSレコードを設定しましょう。
ドメインを購入するということは、実際には3つのものを別々に選ぶということです。毎年料金を支払うレジストラ、その名前に対する問い合わせに応答するDNSプロバイダー、そしてサイトを配信するホストです。これらが同じ会社である必要はありません。
購入画面では、これが1回の買い物のように見えます。表示されるのは安い価格とボタンがひとつずつだけで、サイドプロジェクトにはまだREADMEすらありません。そして1年後、更新案内のメールが届き、Apexドメインはいまだに名前解決できず、今四半期にコミットのあったリポジトリよりも所有ドメインのほうが多いことに気づきます。
本ガイドでは、こうした想定外の事態を避けながらドメインを購入する方法を解説します。3つの役割、支払い前に確認すべき料金と移管の落とし穴、CloudflareへのDNS移行手順、Vercel・Netlify・Cloudflare Pagesに必要なレコード、そして保有ドメインを整理するためのルールを取り上げます。
重要なポイント
- ドメインの権威DNSプロバイダーは、レジストラで設定したネームサーバーによって決まります。そのため、DNSを移行する際に変更するのはネームサーバーであり、レジストラではありません。
- 購入時の価格は初年度のプロモーション価格であることが多く、2年目以降に毎年かかるのは更新価格です。多くのレジストラや新しいTLDでは、更新価格のほうが大幅に高くなっています。
- 標準のDNSでは、ドメインのApexにCNAMEを設定できません。ApexにはNSレコードとSOAレコードも必要であり、CNAMEは他のレコードと同じ名前を共有できないためです。
- Cloudflare Registrarは原価でドメインを販売していますが、登録したドメインはすべてCloudflareのネームサーバーを使用する必要があります。
- Apexとwwwのどちらかを正規のホスト名に決め、もう一方からはそちらへリダイレクトさせましょう。
レジストラ、DNSプロバイダー、ホストの違いとは?
レジストラはドメインの登録を保持して料金を請求します。DNSプロバイダーはレコードへの問い合わせに応答します。ホストは実際のファイルを配信します。 レジストラはICANNの認定を受けており、各TLDを運営するレジストリにドメイン名を登録します。それとは別に、レジストラで設定したネームサーバーによって、そのドメインの権威DNSプロバイダーがどこなのかが世界に示されます。
| 役割 | 担う内容 | 変更する場所 |
|---|---|---|
| レジストラ | 登録の保持、更新料金の請求 | 別のレジストラへ移管 |
| DNSプロバイダー | レコードへの問い合わせに応答 | ネームサーバー(レジストラで設定) |
| ホスト | サイトの配信 | DNSレコード(DNSプロバイダーで設定) |
どのドメインについても、どこが応答しているかは次のように確認できます。
# Which nameservers are authoritative for this domain?
dig +short NS example.com
レコードタイプを復習したい場合は、DNSの基礎ガイドを参照してください。以降の内容は、A、CNAME、NSの各レコードの役割を理解していることを前提としています。
よくある落とし穴にはまらずにドメインを購入する方法
購入前に確認すべき点は4つです。更新価格、そのTLDの価格設定、移管ロック、そしてWHOIS情報の非公開設定が含まれているかどうかです。 いずれも30秒ほどで確認でき、購入画面の紙吹雪アニメーションを眺める時間よりも短く済みます。
購入時の価格ではなく、更新価格を確認する。 初年度のプロモーション価格は多くのレジストラで一般的であり、更新料金はそれよりかなり高くなることがよくあります。支払う前に、料金ページやカート内で更新価格の記載を探しましょう。
TLDの価格設定を確認する。 .comと.netの価格はレジストリ契約によって上限が定められているため、値上げ幅は限られており予測可能です。一方、多くの新しいgTLDや、.ioのように開発者に人気のある一部の国別コードTLDは、価格をレジストリが設定しており、更新料金が高額になる場合があります。レジストリプレミアムドメインは、更新のたびにプレミアム価格が維持されることが多いです。セカンダリーマーケットで購入するドメインは、通常は購入時に一度だけ高い金額を支払い、その後は標準価格で更新されます。サイドプロジェクトの場合、プレミアムドメインが元を取れることはまずありません。
移管ロックを確認する。 ICANNの現行の移管ポリシー(Transfer Policy)では、gTLDのドメインを登録してから最大60日間、レジストラは他のレジストラへの移管を拒否できます。2025年にICANNのGNSO評議会で承認された移管ポリシーの変更が施行されると、これは30日間の固定ロックに置き換わる予定です。国別コードTLDには独自のルールがあります。また、現行ポリシーでは登録者の氏名、組織名、メールアドレスを変更した場合にも60日間のロックがかかります。一部のレジストラではこのロックを適用しないよう選択でき、前述のポリシー変更によってこのロック自体も廃止される予定です。
WHOIS情報の非公開設定を確認する。 多くのレジストラでは無料で付帯していますが、毎年料金がかかるところもあります。カートの合計金額に惑わされる前に、利用するレジストラがどちらなのかを確認しましょう。
DNSをCloudflareに移行するには?
DNSをCloudflareに移行するには、まずドメインをCloudflareに追加し、レジストラでネームサーバーをCloudflareが割り当てた2つに置き換えてから、反映を待ちます。 ドメインの登録先はそのままで、移動するのは権威DNSだけです。
- Cloudflareにサイトを追加します。ネームサーバーが2つ割り当てられます。
- インポートされたレコードを確認します。スキャンでは既存のレコードが漏れることがあります。
- DNSSECが有効になっている場合は、先にレジストラで無効化します。DNSSECが有効なままネームサーバーを切り替えると、ドメインが名前解決できなくなる可能性があります。
- レジストラでネームサーバーを置き換えます。
- 反映を待ちます。TTLやリゾルバーのキャッシュによって、数分から数時間以上かかることがあります。
まだ反映されていない場合は、手元のマシンがキャッシュされた応答を保持している可能性があります。パブリックリゾルバーに直接問い合わせてみましょう。また、ChromeでDNSキャッシュをクリアする方法も参照してください。
# Skip your local cache and ask public resolvers directly
dig +short NS example.com @1.1.1.1
dig +short NS example.com @8.8.8.8
Cloudflareがゾーンに割り当てた2つのネームサーバーが表示されれば成功です。
開発者がDNSをCloudflareに移行する理由は主に3つあります。無料で高速な権威DNS、全プランで利用できるApexでのCNAMEフラット化、そしてDNS、Pages、CDNを1つのダッシュボードで管理できることです(Cloudflareのネットワークが他と比べてどうかは、モダンなWebアプリに最適なCDNを参照してください)。
Cloudflare Registrarは原価でドメインを販売しており、新規登録(Cloudflareダッシュボードから)と他社からの移管の両方に対応しています。ただし、ここで登録したドメインはすべてCloudflareのネームサーバーを使用する必要があるため、別のDNSプロバイダーを使いたい場合は、ドメインを他のレジストラへ移管しなければなりません。
ApexドメインをCNAMEにできないのはなぜ?
wwwはプラットフォームを指すCNAMEにできますが、サブドメインのないApex(example.com)はCNAMEにできません。 RFC 1034 §3.6.2およびRFC 2181 §10.1により、CNAMEは他のレコードと同じ名前を共有できず、またすべてのゾーンApexにはNSレコードとSOAレコードが必要です。そのため、次の設定は無効となります。
; NOT allowed by standard DNS
example.com. IN NS ns1.example-dns.net.
example.com. IN CNAME <platform-target>.
ApexドメインをVercelやNetlifyに向けるには、3つの選択肢があります。
; www points at the platform with a CNAME
www.example.com. 3600 IN CNAME <your-project-target-from-platform-dashboard>.
; Pick ONE for the apex:
; Option A: A record to the IP your platform documents
example.com. 3600 IN A 192.0.2.10 ; replace with the platform's documented IP
; Option B: ALIAS / ANAME (provider-specific, not a standard record type)
; example.com. ALIAS <platform-target>.
; Option C: On Cloudflare, create a CNAME at "@" and Cloudflare flattens it
Vercelについては、同社のナレッジベースで、ApexにはオプションAを使うか、代わりにドメインのネームサーバーをVercelに委任するよう案内されています。VercelはデフォルトのDNS値も公開していますが、多くのプロジェクトには個別の値が割り当てられるため、ドメイン設定画面に表示された値をコピーしてください。Netlifyも同様に、ドメイン設定画面に独自のターゲットが表示されます。ALIASレコードやANAMEレコードを使えばApexをCNAMEのように動作させられますが、提供しているDNSプロバイダーは一部に限られます。
Cloudflare Pagesは仕組みが異なります。PagesでApexドメインを使う場合、そのドメインはPagesプロジェクトと同じアカウント内のCloudflareゾーンであり、ネームサーバーがCloudflareを指している必要があります。外部のプロバイダーでAレコードやALIASを設定しても機能しません。サブドメインであれば、既存のDNSプロバイダーでCNAMEを設定するだけで済みます。
最後に、Apexとwwwのどちらかを正規のホスト名に決め、もう一方からはそちらへリダイレクトさせましょう。これにより、すべての訪問者、Cookie、検索結果が1つのアドレスに集約されます。Vercelのドキュメントでは、wwwをメインのホスト名とし、サブドメインなしのドメインからリダイレクトで誘導する構成が推奨されています。リダイレクトは次のように確認できます。
# Expect a 301/308 from the non-canonical host to the canonical one
curl -sI http://example.com | grep -i -E '^(HTTP|location)'
60個のドメインに、プロジェクトは3つ
ドメインは何かがデプロイされているかどうかに関係なく毎年更新されるため、使っていないドメインを抱え続けるほど、年々コストがかさんでいきます。 結局手をつけなかったCLIツールのために深夜1時に買ったあのドメインも、いまだに請求が続いているのです。
ルールを決めて、それを守りましょう。たとえば「リポジトリに1年間コミットがなければ、そのドメインは失効させる」というルールが考えられます。年に一度、レジストラのダッシュボードからドメインと有効期限の一覧をエクスポートし、リポジトリと照らし合わせましょう。自動更新は、なくなると困るドメイン、つまり稼働中のプロジェクトやメール、被リンクがあるドメインに対してのみ有効にします。
レジストラを集約する場合は、移管のたびに新たなロックがかかるため、ドメインをレジストラ間ですぐに移し替えることはできない点に注意してください。移管は更新日に合わせて計画しましょう。
まとめ
ドメインには3つの役割が関わっています。レジストラが料金を請求し、ネームサーバーがDNSに応答する主体を決め、DNSレコードがホストを指し示します。これらを分けて考えれば、ApexにおけるCNAMEのルールも含め、セットアップ時の問題の大半は整理しやすくなります。次に衝動買いをする前には、更新価格を確認しましょう。そして今すぐレジストラのダッシュボードを開き、なくなっても困らないドメインの自動更新をすべてオフにしてください。
よくある質問
更新前にドメインの有効期限が切れたらどうなりますか?
ほとんどのgTLDでは、有効期限が切れたドメインはまず自動更新猶予期間に入り、この期間中であればレジストラで更新できます。その後レジストラがドメインを削除した場合、ICANNの期限切れ登録回復ポリシー(Expired Registration Recovery Policy)により、30日間の償還猶予期間(Redemption Grace Period)が設けられます。この期間中はDNSの名前解決が無効になり、移管もブロックされます。この期間内にドメインを復旧するには、追加の復旧手数料がかかることがよくあります。スポンサー付きgTLDやccTLDには独自のルールがあります。
ドメインを別のレジストラに移管すると、残りの登録期間は失われますか?
いいえ。.com、.net、.orgなどほとんどのgTLDでは、移管すると現在の有効期限に1年が追加され、登録期間がリセットされることはありません。ほとんどのレジストリでは登録期間の上限が10年であるため、1年を追加すると上限を超える場合は移管が拒否されることがあります。また、期限切れのドメインを更新してから45日以内に移管した場合、1年が追加されないことがあります。国別コードTLDには独自のルールがあります。
CNAMEフラット化とALIASレコード、ANAMEレコードの違いは何ですか?
いずれもApexの問題を同じ方法で解決します。権威DNSプロバイダー自身がターゲットのホスト名を名前解決し、AレコードとAAAAレコードで応答するため、リゾルバーにはCNAMEが見えません。Cloudflareではこれを「CNAMEフラット化」、Route 53では「エイリアスレコード」と呼び、その他のプロバイダーでは「ALIAS」や「ANAME」と呼んでいます。名前解決をプロバイダーが行うため、地理的ルーティングを使用するターゲットの場合、訪問者ではなくプロバイダーの所在地に基づいて選ばれたアドレスが返される可能性があります。
ネームサーバーを変更すると、60日間の移管ロックがかかりますか?
いいえ。ICANNの登録者変更ロックは、登録者の氏名、組織名、メールアドレスが変更された場合にのみ適用され、ネームサーバーは登録者情報には含まれません。ドメインをCloudflareや他のDNSプロバイダーに向けても、レジストラ、登録内容、有効期限はそのまま変わりません。gTLDにおいて移管がブロックされる主なケースは、新規登録直後、最近の移管、または前述の登録者情報の変更です。