DNS TTL値の理解

DNS TTL(Time to Live)の値がキャッシュ、伝播速度、パフォーマンスにどう影響するかを解説します。レコードタイプごとの推奨TTLを確認しましょう。

SOAService

Zone File Entry

example.com.    86400    IN    SOA    ns1.example.com. admin.example.com. (
                    2024010101 ; Serial
                    3600       ; Refresh
                    900        ; Retry
                    1209600    ; Expire
                    86400      ; Minimum TTL
)

詳細な説明

DNS TTLとは?

TTL(Time to Live)は、DNSリゾルバが権威サーバーに再度問い合わせるまでレコードをキャッシュし続ける時間を秒単位で指定する値です。TTLはDNS変更の伝播速度と、ネームサーバーが受けるクエリ負荷に直接影響します。

ゾーンファイルレコードにおけるTTL

; TTLは2番目のフィールド(秒単位)
example.com.    3600     IN    A       203.0.113.50    ; 1時間
example.com.    86400    IN    NS      ns1.example.com. ; 24時間
example.com.    300      IN    TXT     "v=spf1..."     ; 5分

; ゾーンのデフォルトTTL(明示的なTTLのないレコードに適用)
$TTL 3600

TTLがDNS伝播に与える影響

DNSレコードを変更しても、古い値は以前に設定されたTTLの期間中、世界中のリゾルバにキャッシュされたままです。これがDNS変更が即座に反映されない理由です:

  • TTL = 86400(24時間):変更が完全に伝播するまで最大24時間かかる
  • TTL = 3600(1時間):変更は1時間以内に伝播
  • TTL = 300(5分):変更は5分以内に伝播
  • TTL = 60(1分):ほぼ即時の伝播だが、ネームサーバーへの負荷が増加

推奨TTL値

レコードタイプ 推奨TTL 理由
NS 86400(24時間) ネームサーバーはめったに変更されない
MX 3600(1時間) メールルーティングには適度な安定性が必要
A / AAAA 3600(1時間) キャッシュと柔軟性の良いバランス
CNAME 3600(1時間) Aレコードと同様
TXT(SPF/DKIM/DMARC) 3600(1時間) 変更頻度が低い
CAA 3600(1時間) 変更頻度が低い
SRV 3600(1時間) サービスエンドポイントは比較的安定
SOA Minimum 300〜3600 ネガティブキャッシュ(NXDOMAIN)を制御

移行時のTTL戦略

DNS移行(例:新しいサーバーへの移行)を計画する場合:

  1. 48時間前:TTLを300秒に下げる
  2. 待機:古いTTLが期限切れになるのを待つ(すべてのキャッシュが新しい低TTLでリフレッシュされるように)
  3. 変更の実施:レコードを新しいIPに更新
  4. 変更後:5分以内にほとんどのリゾルバが新しい値を取得
  5. 確認後:TTLを3600以上に戻す

トレードオフ

低いTTL

  • 変更の伝播が速い
  • フェイルオーバーシナリオに適している
  • ネームサーバーへのクエリ量が増加
  • 初回ルックアップのレイテンシがわずかに増加

高いTTL

  • クエリ量とネームサーバーの負荷が低い
  • ユーザー体験が高速(キャッシュヒットが多い)
  • 変更の伝播が遅い
  • 設定ミスからの回復が困難

SOAレコードとネガティブTTL

SOA(Start of Authority)レコードのMinimum TTLフィールド(最後の数値)は、ネガティブキャッシュ、つまりリゾルバがレコードの不存在(NXDOMAIN)をキャッシュする期間を制御します。訪問者が存在しないサブドメインを問い合わせた場合、リゾルバはこの期間中ネガティブレスポンスをキャッシュします。

よくある間違い

  • 移行前にTTLを高く設定したまま:86400から下げる場合、低いTTLが有効になる前にキャッシュが期限切れになるまで24時間待つ必要がある
  • 本番環境で非常に低いTTL:60秒のTTLは、すべてのDNSクエリがネームサーバーにヒットすることを意味し、レイテンシとコストが増加
  • 移行後のTTL引き上げ忘れ:TTLを300のまま永久に残すとリソースの無駄になる

ユースケース

DNSレコードに適切なTTL値を理解・設定して、変更の高速伝播と効率的なDNSキャッシュパフォーマンスのバランスを取ります。

試してみる — DNS Record Generator

フルツールを開く