ドメインネームシステム(DNS)
Domain Name System (DNS)
人間が覚えやすいドメイン名(www.example.com)を、機械が使うIPアドレス(93.184.216.34)に変換する『インターネットの電話帳』。階層的にキャッシュされて高速に動く。
たとえ話: 電話帳
友達に電話したいとき、あなたは名前は覚えていても電話番号は覚えていません。そこで電話帳で『名前→番号』を引きます。DNSはこの電話帳そのもの。ドメイン名(名前)を入力すると、IPアドレス(番号)を返してくれる仕組みです。
解決の流れ
ブラウザに www.example.com と打つと、こんな順で問い合わせが進みます。
図を描画中...
一度引いた結果は各段階でキャッシュされ、**TTL(Time To Live = 有効期限)**の間は再問い合わせ不要です。だから2回目以降は爆速になります。
レコードの種類(よく出る4つ)
| レコード | 役割 | たとえ |
|---|---|---|
| A | 名前 → IPアドレス | 電話帳の『名前→番号』本体 |
| CNAME | 別名 → 正式名 | 『あだ名→本名』の転送 |
| NS | このドメインを管理するDNSサーバー | 『この地区の電話帳はあの局』 |
| MX | メールの宛先サーバー | 『郵便はこの住所へ』 |
賢いルーティング
管理DNS(Route 53など)は単なる変換だけでなく、誰がアクセスしてきたかで返すIPを変えられます。
- レイテンシベース: 一番速く繋がるサーバーのIPを返す。
- 地理ベース: 日本からのアクセスには日本のサーバーを返す。
- 重み付きラウンドロビン: サーバーの能力に応じて配分する。
つまずきポイント
- DNSの変更が『すぐ反映されない』のはバグではなく、世界中のキャッシュがTTL満了するまで古い情報を使うため。引っ越し直後に旧住所宛の郵便が届くのと同じ。
- TTLを短くすれば反映は速くなるが、問い合わせ回数が増えて負荷とわずかな遅延が増える。トレードオフ。
📊 図解
名前解決の流れ(シーケンス)
図を描画中...