はじめに
インフラチームに環境の構築を依頼したら、こんな質問が返ってきました。
「ドメインは何にしますか?」
...ドメイン? えっと、それって何を決めればいいの?🤔
適当に決めていいの? それとも何かルールがあるの?
アプリ開発に集中していると、こういったインフラ周りの知識は後回しになりがち。でも、いざ環境を構築する段階になると、ドメインやDNSの知識が必要になってきます。
ドメインとは?
ドメインは、インターネット上の住所のようなもの。IPアドレスは人間には覚えにくいので、わかりやすい名前をつけたものがドメイン。
ドメインは右から左に向かって階層構造になっている。
ドメインは早い者勝ち!!
重要なポイントとして、ドメインは世界中で一意である必要がある。つまり、既に誰かが使っているドメインは取得できない。例えばgoogle.comは既にGoogle社が所有しているため、他の人が取得することはできません。
使えるドメインかどうか調べる方法
Whois検索を使う。(Whois(フーイズ)は、ドメインの登録情報を調べるサービス)
WHOISドメイン検索
ドメイン取得の注意点
・年額費用がかかる。:ドメインは買い切りではなく、年単位のレンタル形式。
・更新を忘れずに。:更新を忘れると、ドメインが失効して他の人にとられる可能性あり。
・TLDによって価格が違う。:.comは安いが、.jpは比較的高い。
サブドメインとは?
ドメインの前にさらに名前を追加したものがサブドメイン。組織内で用途別にサイトを分けるときなどに使う。
サブドメインの例
mail.google.com → メールサービス用
drive.google.com → ドライブサービス用
calendar.google.com → カレンダーサービス用
サブドメインは複数階層にすることも可能。
FQDNとは?
FQDN(Fully Qualified Domain Name)は「完全修飾ドメイン名」と呼ばれ、インターネット上で一意に識別できる完全な名前のこと。
FQDN = サブドメイン(ホスト名) + ドメイン
サブドメインがない場合もあります:
example.com → これもFQDN(サブドメインなし)
www.example.com → これもFQDN(サブドメインあり)
api.prod.example.com → これもFQDN(サブドメインが複数階層)
つまり、「インターネット上で完全に特定できる名前」はすべてFQDNです。
DNS(Domain Name System)とは?
DNSは、ドメイン名とIPアドレスを紐付ける仕組み。電話帳のようなもの。
主な流れ:
① ブラウザにwww.example.comと入力
② DNSサーバーに「このドメインのIPアドレスは?」と問い合わせ
③ DNSサーバーが「192.0.2.1だよ」と返答
④ ブラウザが192.0.2.1にアクセス
DNSレコードの種類
DNSサーバーには様々な種類のレコード(情報)が登録されている。
開発でよく使うものを紹介する。
Aレコード(Address Record)
ドメイン名とIPv4アドレスを紐付けるレコードです。最も基本的なレコードタイプ。
example.com. IN A 192.0.2.1
CNAMEレコード(Canonical Name Record)
ドメイン名に別名(エイリアス)をつけるレコードです。あるドメインを別のドメインに転送する際に使う。
www.example.com. IN CNAME example.com.
MXレコード(Mail Exchange Record)
メールサーバーを指定するレコード。
example.com. IN MX 10 mail.example.com.
まとめ
| 用語 | 説明 | 例 |
|---|---|---|
| ドメイン | インターネット上の住所 | example.com |
| サブドメイン | ドメインの前に追加する名前 | mail.example.comのmail部分 |
| FQDN | サーバーまで完全に特定できる名前 | www.example.com |
| Aレコード | ドメイン→IPv4アドレス | example.com → 192.0.2.1 |
| CNAMEレコード | ドメイン→別のドメイン | www.example.com → example.com |
参考資料
RFC 1034 - Domain Names - Concepts and Facilities
RFC 1035 - Domain Names - Implementation and Specification

