TTL(Time To Live)とは、データがどれだけの期間または回数だけ有効かを示す値である。日本語では生存時間と訳され、この値が尽きるとデータは破棄されるか、無効なものとして扱われる。ネットワークのパケット、DNSの名前解決の結果、キャッシュされた内容など、さまざまな場面で使われるが、いずれも「いつまで有効とみなすか」を定める点で共通している。情報には鮮度がある。一度取得した内容をいつまでも使い続ければ、変更が反映されず古い情報に基づいて動くことになる。かといって毎回取得し直せば、通信も処理も無駄が多い。またネットワーク上では、経路の設定を誤ったパケットが永遠に回り続ける危険もある。TTLは、こうした「いつ捨てるか」という判断を数値として明示することで、鮮度と効率の釣り合い、そして無限ループの防止という役割を担っている。
TTLの仕組み
TTLは、時間または通過回数を表す数値を付与し、それが尽きた時点でデータを無効とすることで機能する。
- 時間による有効期限
- 通過回数による制限
- 期限切れ後の再取得
有効期限を過ぎたデータは破棄され、必要なら改めて取得される。これにより変更が反映され、情報の鮮度が保たれる。
- 提供側による指定
多くの場合、データを提供する側が値を設定する。運用者は用途に応じて、長さを調整できる。
TTLを適切に設定するメリット
TTLの値を用途に合わせて調整することは、性能と柔軟性の両面に効いてくる。得られる利点を見ていく。
- 通信量と負荷の削減
値を長くすれば問い合わせの回数が減る。提供側の負荷が下がり、利用者側の応答も速くなる。
- 変更の迅速な反映
短く設定すれば、内容の変更が速やかに行き渡る。切り替えを予定している場面では重要な性質となる。
- 応答速度の向上
キャッシュが有効な間は問い合わせが不要になり、即座に結果が得られる。利用者の体感速度が大きく改善する。
- 無限ループの防止
パケットにおいては、経路の設定誤りによる永久循環を確実に止められる。ネットワーク全体を守る安全装置となる。
- 障害時の切り替え
短く設定しておけば、障害発生時に別の宛先へ素早く誘導できる。復旧までの時間を短縮できる。
TTL設定の注意点
TTLの設定は、長短どちらに振っても弊害がある。注意点を押さえておきたい。
- 長すぎる場合の弊害
変更が反映されるまで時間がかかる。移転や障害時の切り替えが遅れ、利用者に古い情報が届き続ける。
- 短すぎる場合の弊害
問い合わせが頻発し、提供側の負荷と通信量が増える。応答も毎回待つことになり、速度が犠牲になる。
- 変更前の事前調整が必要
切り替えの直前に短くしても、既に配布された古い値が期限切れになるまで効果が出ない。前もって短くしておく必要がある。
- 設定が尊重されない場合がある
中継する機器やソフトが独自の判断で保持期間を変えることがある。指定どおりに動くとは限らない点に注意したい。
TTLの活用例
TTLは、さまざまな技術のなかで異なる役割を担っている。代表的な場面を紹介する。
- DNSレコードの管理
- IPパケットの生存管理
ルーターを通過するたびに減算し、循環を防ぐ。経路調査の道具でも、この仕組みを利用して経路を可視化する。
- Webキャッシュの制御
ブラウザや中継サーバーが内容をどれだけ保持するかを指定する。更新頻度に応じた設定が、表示速度と鮮度を両立させる。
- CDNでの配信制御
配信網の各拠点が内容を保持する期間を定める。長くすれば効率がよく、短くすれば更新が速く反映される。
- データベースの自動削除
一定期間で不要になるデータに期限を設け、自動的に消す用途にも使われる。手動の整理作業が不要になる。
用途によるTTLの違い
同じTTLでも、使われる場面によって意味と単位が異なる。主な違いを整理する。
- DNSにおける意味
名前解決の結果を保持してよい秒数を表す。長さが、変更の反映速度と問い合わせ負荷の釣り合いを決める。
- IPパケットにおける意味
時間ではなく、通過できるルーターの数を表す。循環を防ぐための安全装置として働く。
- キャッシュにおける意味
保存した内容を再利用してよい期間を表す。鮮度と応答速度のどちらを優先するかの設定となる。
- 共通する考え方
いずれも「いつまで有効とみなすか」を定める点で共通する。単位と目的は異なるが、根底の発想は同じである。
TTLを扱う際のポイント
TTLを適切に運用するには、変更の予定を見越した設計が重要になる。実務で意識したい要点を挙げる。
- 変更予定の前に短くする
移転や切り替えを行う数日前から値を短くしておく。当日に慌てて変えても、効果が出るまで時間がかかる。
- 用途ごとに値を変える
頻繁に変わる内容は短く、安定した内容は長くする。一律に設定せず、性質に応じて調整したい。
- 切り替え後は元に戻す
作業のために短くした値は、完了後に適切な長さへ戻す。短いままでは、恒常的に無駄な負荷がかかり続ける。
まとめ
TTLは、データがどれだけの期間または回数だけ有効かを示す値であり、DNSやキャッシュでは秒数、IPパケットでは通過できるルーターの数として使われる。適切に設定すれば通信量の削減と応答速度の向上、変更の迅速な反映、無限ループの防止といった効果が得られる。一方で長すぎれば変更が届かず、短すぎれば負荷が増すという両面の弊害があり、用途に応じた調整が欠かせない。変更予定の前に短くしておき、作業後は元に戻すという運用が実務での定石となる。目立たない数値だが、切り替え作業の成否を左右する重要な設定である。自社のDNS設定の値を、一度確認してみるとよいだろう。
