DNSの設定を行っていると、必ず目にする項目が「TTL」です。
TTLはキャッシュの保持期間を決める値であり、設定次第でWebサイトの表示速度やDNS変更の反映速度に大きく影響します。
この記事では、TTLの意味・キャッシュへの影響・適切な設定方法について、保持期間・更新・浸透・レコードといったキーワードを交えながらわかりやすく解説していきます。
DNS設定を正しく管理したい方にとって、ぜひ押さえておきたい内容です。
TTLとはDNSキャッシュの保持期間を指定する値のこと
それではまず、TTLの基本的な意味と役割について解説していきます。
TTLは「Time To Live(タイム・トゥ・リブ)」の略であり、DNSレコードがキャッシュサーバーやクライアントに保持される時間を秒単位で指定する値です。
たとえばTTLが3600に設定されている場合、そのDNSレコードは最大3600秒(1時間)キャッシュに保存され、その間は再度DNSサーバーへの問い合わせが行われません。
TTLが経過すると、キャッシュが破棄されて再びDNSサーバーへ問い合わせが発生します。
TTLはすべてのDNSレコード(Aレコード・MXレコード・CNAMEレコードなど)に個別に設定できます。
レコードの種類や用途に応じてTTLを使い分けることが、安定したDNS運用の鍵となります。
TTLとキャッシュの関係
DNSキャッシュとは、一度解決したドメイン名とIPアドレスの対応情報を一時的に保存しておく仕組みです。
キャッシュがある間は権威DNSサーバーへの問い合わせが省略されるため、名前解決が高速化されます。
TTLはこのキャッシュの有効期限であり、TTLを長くするほどキャッシュが長く保持され、DNSサーバーへの問い合わせ頻度が下がります。
逆にTTLを短くすると問い合わせ頻度が増える一方、DNSレコードの変更が素早く反映されるようになります。
TTLの単位と一般的な設定値
TTLは秒単位で指定し、用途によって適切な値が異なります。
| TTL値 | 時間換算 | 主な用途 |
|---|---|---|
| 300 | 5分 | DNSレコード変更前・障害対応時 |
| 900 | 15分 | 変更頻度が高いレコード |
| 3600 | 1時間 | 一般的なWebサーバー・メールサーバー |
| 86400 | 24時間 | 変更頻度が低い安定したレコード |
多くのDNSサービスではデフォルトのTTLとして3600(1時間)が設定されていることが一般的でしょう。
TTLが短すぎる・長すぎる場合の問題点
TTLを極端に短く設定すると、DNSサーバーへの問い合わせ頻度が増加し、サーバーへの負荷が高まります。
一方、TTLを極端に長く設定すると、DNSレコードを変更した際に古いIPアドレスがキャッシュに残り続け、ユーザーが正しいサーバーに接続できない状態が長引くことがあります。
TTLは短すぎず長すぎず、運用の目的に合わせて適切な値を選ぶことが大切です。
TTLとDNS浸透(DNSプロパゲーション)の関係
続いては、TTLがDNS浸透にどのように影響するかを確認していきます。
DNS浸透の仕組みを理解することで、レコード変更時のトラブルを未然に防げます。
DNS浸透とは何か
DNS浸透(DNSプロパゲーション)とは、DNSレコードを変更した際に、その変更がインターネット全体のキャッシュDNSサーバーに反映されるまでの過程のことです。
世界中に無数のキャッシュDNSサーバーが存在し、それぞれが独自のキャッシュを保持しているため、変更が一斉に反映されるわけではありません。
各サーバーがキャッシュのTTLを消費して再問い合わせを行うまで、古い情報が返され続けます。
DNS浸透にかかる時間とTTLの関係
DNS浸透にかかる時間は、変更前のレコードに設定されていたTTLに大きく左右されます。
例:変更前のAレコードのTTLが86400(24時間)だった場合
→ 最悪のケースで変更反映まで24時間かかる可能性があります。
例:変更前のAレコードのTTLが300(5分)だった場合
→ 変更反映まで最大5分程度で済みます。
このため、IPアドレスの変更やサーバー移行を予定している場合は、事前にTTLを短縮しておくことが強く推奨されます。
作業の1〜2日前にTTLを300〜600程度に下げておくと、変更後の浸透時間を大幅に短縮できるでしょう。
DNS浸透の確認方法
DNS浸透の状況は以下の方法で確認できます。
| 確認方法 | 概要 |
|---|---|
| digコマンド | Mac・Linuxで特定のDNSサーバーへの問い合わせ結果を確認できる |
| nslookupコマンド | WindowsでDNSの名前解決結果を確認できる |
| DNS Checker(オンラインツール) | 世界各地のDNSサーバーでの反映状況を一覧で確認できる |
| WhatsMyDNS | 複数リージョンのキャッシュDNSへの反映状況を視覚的に確認できる |
オンラインツールを使うと、地域ごとのDNS浸透状況が一目でわかるため便利でしょう。
TTLの適切な設定戦略
続いては、TTLをどのように設定・運用すべきかという戦略について確認していきます。
通常運用時のTTL設定
通常の運用時には、用途に応じたTTLを設定することが基本です。
変更頻度が低く安定しているAレコードやMXレコードには、3600〜86400程度のTTLが適しています。
一方、CDNやクラウドサービスと連携しているCNAMEレコードは、サービス側の推奨値に従うことが多く、比較的短いTTLが設定されるケースもあります。
安定性と柔軟性のバランスを取ることが、TTL設定の基本方針といえるでしょう。
サーバー移行・IPアドレス変更時のTTL戦略
サーバー移行やIPアドレス変更を行う際の推奨手順は以下のとおりです。
①作業の1〜2日前にTTLを300〜600秒に短縮する
②短縮したTTLが浸透するまで待機する(現在のTTL分の時間が必要)
③IPアドレスやレコードの変更を実施する
④新しいDNSレコードへの浸透が完了したことを確認する
⑤問題がなければTTLを元の値(3600〜86400)に戻す
この手順を踏むことで、変更後の浸透時間を最小化しつつ、問題発生時の切り戻しも素早く行えます。
SOAレコードのデフォルトTTLとの関係
DNSゾーンにはSOA(Start of Authority)レコードというものがあり、ゾーン全体のデフォルトTTLを定義しています。
個々のレコードにTTLが設定されていない場合、このSOAレコードのデフォルトTTLが適用されます。
SOAレコードのTTL設定がゾーン全体のキャッシュ動作に影響するため、ゾーン設計の際には合わせて確認しておくことが重要でしょう。
まとめ
この記事では、DNSのTTLの意味・キャッシュへの影響・DNS浸透との関係・適切な設定戦略について解説しました。
TTLはDNSレコードのキャッシュ保持期間を秒単位で指定する値であり、設定次第で名前解決の速度やDNS変更の反映時間が大きく変わります。
サーバー移行やIPアドレス変更の際は事前にTTLを短縮しておくことで、DNS浸透にかかる時間を短縮しトラブルを防ぐことができます。
TTLの仕組みを正しく理解し、用途に応じた適切な値を設定することが、安定したDNS運用の基本です。
ぜひ本記事を参考に、自身のDNS設定を見直してみてください。