「DNSのTTLってどういう意味?」という疑問はWebサイトの運営やドメイン管理を始めた方に多い疑問のひとつです。
TTLの値が名前解決やサーバー移転にどう影響するのかがわかりにくいと感じる方も多いかもしれません。
本記事では、DNSにおけるTTLの仕組みと設定値の意味を、キャッシュ・名前解決・更新反映時間・TTL 3600の意味を交えてわかりやすく解説します。
Webサイトを運営する方やドメイン・DNS設定に携わる方にもきっと役立つ内容でしょう。
DNS TTLを正しく理解することで、サーバー移転時のトラブル防止と適切なDNS設定管理が実現できます。
DNSのTTLとは「DNSレコードのキャッシュが有効である時間を秒単位で指定する値」のこと
それではまず、DNS TTLの基本的な意味と役割について解説していきます。
DNSにおけるTTL(Time To Live)とは、DNSリゾルバがDNSレコードの情報をキャッシュとして保持する時間を秒単位で指定する値のことです。
「Time To Live(生存時間)」という名前の通り、取得したDNS情報がどのくらいの期間「生きている」かを示す値で、TTLが経過するとキャッシュが削除されて次回の問い合わせ時に権威DNSサーバーへ再問い合わせが行われます。
TTLを短く設定するとDNSの変更が素早く世界中に反映されますが、DNSサーバーへの問い合わせ頻度が増えるというトレードオフがあるでしょう。
逆にTTLを長く設定するとDNSサーバーへの負荷が減り名前解決が高速になりますが、DNSレコードを変更した際に古いキャッシュが残り反映に時間がかかるというデメリットが生じます。
TTLはDNSレコードごとに個別に設定できます。変更頻度の低いレコードには長いTTLを、変更頻度の高いレコードや近くサーバー移転を予定しているレコードには短いTTLを設定することがベストプラクティスです。
TTLの仕組みをわかりやすく説明すると
TTLの仕組みを図書館の本の貸し出し期限に例えると理解しやすいでしょう。
【TTLのわかりやすい例え】
図書館(権威DNSサーバー)で本(DNSレコード)を借りる
↓
本には返却期限(TTL)が設定されている
↓
期限内(TTL以内)は手元(キャッシュ)にある本を使う
↓
期限が切れたら図書館に本を返して最新の情報を再取得する
※TTL 3600 = 1時間 → 1時間ごとに図書館へ確認しに行く
この例えのように、TTLが短いほど最新情報への更新が頻繁になり、長いほど古い情報が残りやすくなるでしょう。
DNSキャッシュとTTLの関係
DNSキャッシュはDNSリゾルバ(プロバイダのDNSサーバーやOSのキャッシュ)に保存されます。
TTLが3600秒(1時間)に設定されているDNSレコードは、キャッシュに取得されてから最大1時間は権威DNSサーバーへの再問い合わせを行わず、キャッシュされた情報をそのまま使用するでしょう。
この仕組みによってDNSサーバーへの問い合わせ頻度を削減し、インターネット全体のDNSトラフィックを効率化しています。
TTLの設定値と意味
続いては、代表的なTTLの設定値とその意味を確認していきます。
適切なTTL値を選択することがDNS運用の質を大きく左右するでしょう。
代表的なTTL設定値の一覧
| TTL値 | キャッシュ有効期間 | 適した用途 |
|---|---|---|
| 60秒 | 1分 | テスト環境・頻繁な変更が必要な場合 |
| 300秒 | 5分 | サーバー移転直前・変更を急ぐ場合 |
| 900秒 | 15分 | 変更頻度が高いサービス |
| 3600秒 | 1時間 | 一般的なWebサイト・標準的な設定値 |
| 14400秒 | 4時間 | 比較的安定したサービス |
| 86400秒 | 24時間 | 長期間変更しない安定したレコード |
一般的なWebサイトではTTL 3600(1時間)が標準的な設定値として広く使われているでしょう。
TTL 3600の意味
TTL 3600は最もよく見かけるDNSの設定値です。
TTL 3600とは3600秒=1時間のキャッシュ有効時間を意味し、DNSリゾルバはこのレコードを取得してから1時間は権威DNSサーバーへ再問い合わせせずにキャッシュを使い続けます。
DNSサーバーへの負荷とDNS変更の反映速度のバランスが取れた値として多くのDNS管理サービスのデフォルト値に採用されているでしょう。
TTLと更新反映時間の関係
DNSレコードを変更した際に世界中のDNSキャッシュに変更が反映されるまでの時間を「DNS伝播(DNS propagation)」と呼びます。
【DNS変更後の反映時間のイメージ】
TTL 300秒(5分)の場合 → 変更後最大5分で反映が完了
TTL 3600秒(1時間)の場合 → 変更後最大1時間で反映が完了
TTL 86400秒(24時間)の場合 → 変更後最大24時間で反映が完了
※実際のキャッシュの残り時間によって反映時間は変わる
正確には変更時点でのキャッシュの残り時間分だけ古い情報が参照され続けるため、サーバー移転前にTTLを短縮しておくことでスムーズな移行が実現できるでしょう。
サーバー移転時のTTL設定の考え方
続いては、サーバー移転やIPアドレス変更を行う際のTTL設定の最適な考え方を確認していきます。
移転前後のTTL管理を適切に行うことでダウンタイムとユーザーへの影響を最小化できるでしょう。
サーバー移転時のTTL設定手順
【サーバー移転時の推奨TTL設定手順】
移転1週間〜数日前:
現在のTTLを確認し、長い場合はTTL 300〜600秒程度に短縮する
移転当日:
短縮したTTLが反映されたことを確認してから新しいIPアドレスへAレコードを変更する
移転後:
新しい設定が世界中に反映されたことを確認(DNSチェックツールを活用)
問題がなければTTLを通常値(3600秒など)に戻す
移転前にTTLを短縮しておかないと、移転後も古いIPアドレスへのアクセスが長時間続くため注意が必要でしょう。
DNSキャッシュのクリア方法
DNS変更後に自分の端末で古いキャッシュが残っている場合は手動でクリアすることで最新情報を取得できます。
| OS | コマンド |
|---|---|
| Windows | ipconfig /flushdns |
| macOS | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
| Linux | sudo systemd-resolve –flush-caches |
自分の端末でDNSキャッシュをクリアすることで最新のDNS情報を取得できますが、他のユーザーの端末では設定したTTLの時間が経過するまで古い情報が残る点を理解しておくでしょう。
TTL設定の確認方法
現在のDNSレコードのTTL値を確認する方法を把握しておきましょう。
【TTL値の確認コマンド】
Windows(コマンドプロンプト):
nslookup example.com
Linux・macOS(ターミナル):
dig example.com
dig +nocmd +noall +answer example.com → TTL値を含む回答セクションを表示
【出力例】
example.com. 3600 IN A 203.0.113.1
↑TTL値(秒)
digコマンドの出力でドメイン名の右に表示される数字がTTL値で、値が0に近いほどキャッシュの有効期限が近いことを示しているでしょう。
まとめ
本記事では、DNSにおけるTTLの仕組みと設定値の意味について、キャッシュ・名前解決・更新反映時間・サーバー移転時の活用方法を交えながら解説しました。
DNSのTTLとはDNSリゾルバがDNSレコードをキャッシュとして保持する時間を秒単位で指定する値で、TTL 3600は1時間のキャッシュ有効時間を意味する標準的な設定値です。
TTLを短く設定するとDNS変更の反映が速くなりサーバー移転時に有効ですが、TTLを長く設定するとDNSサーバーへの負荷が減り名前解決が効率化されるというトレードオフがあるでしょう。
サーバー移転時には事前にTTLを短縮しておくことでスムーズな移行が実現でき、移転完了後はTTLを通常値に戻すことがベストプラクティスとなっています。
本記事がDNS TTLへの理解を深め、ドメイン管理やサーバー移転の実践に役立てば幸いです。