TTLとは
TTL(Time To Live)はDNS設定で、リゾルバー、ブラウザ、その他のシステムがDNSレコードをキャッシュする期間(秒単位)を指定してから、権限あるネームサーバーから新しいコピーをリクエストする必要があります。TTL値はDNS変更の高速伝播(低TTL)と削減されたサーバー負荷と改善されたパフォーマンス(高TTL)のバランスをとります。TTLの仕組み
TTLを使用したDNSクエリフロー:
1. クライアントがリゾルバーに対してexample.comをクエリ
2. リゾルバーキャッシュをチェック - 見つからない
3. リゾルバーが権限サーバーをクエリ
4. サーバーは192.0.2.1とTTL 3600を返す
5. リゾルバーは3600秒(1時間)キャッシュ
6. 後続クエリはキャッシュから提供される
7. 3600秒後、キャッシュが期限切れ、サイクルが繰り返される
一般的なTTL値
| TTL(秒) | 期間 | ユースケース |
|---|---|---|
| 60-300 | 1-5分 | DNSスイッチ中、フェイルオーバー |
| 300-900 | 5-15分 | 動的サービス |
| 3600 | 1時間 | 標準ウェブサイト |
| 14400 | 4時間 | 安定したレコード |
| 86400 | 24時間 | めったに変わらないレコード |
DNSレコード内のTTL
レコード形式
example.com. 3600 IN A 192.0.2.1
│
└── 秒単位のTTL
レコード別の異なるTTL
; 安定したネームサーバー - 高いTTL
example.com. 86400 IN NS ns1.example.com.
; ウェブサーバー - 中程度のTTL
www.example.com. 3600 IN A 192.0.2.1
; 動的コンテンツ - 低いTTL
api.example.com. 300 IN A 192.0.2.50
TTL戦略
DNS変更の前に
これらの計画的な変更の前にTTLを低下させます:
タイムライン:
日-2: TTLを86400から300に低下
日0: DNSを変更
日0+: 変更は5分以内に伝播
日+1: TTLを86400に戻す
トレードオフ
| 低TTL(60-300) | 高TTL(3600以上) |
|---|---|
| 高速伝播 | 遅い伝播 |
| より多くのDNSクエリ | より少ないDNSクエリ |
| より高いサーバー負荷 | より低いサーバー負荷 |
| フェイルオーバーに最適 | 安定性に最適 |
| より高いレイテンシ | より低いレイテンシ |
TTLとDNS伝播
TTLは伝播時間に直接影響します:
最大伝播時間≈最も高いキャッシュされたTTL
TTL = 86400(24時間)の場合:
- 一部のユーザーは最大24時間古いIPを見る
- グローバル伝播: 最大24-48時間
TTL = 300(5分)の場合:
- ほとんどのユーザーは5-10分以内に新しいIPを見る
- グローバル伝播: 1時間以下
現在のTTLをチェック
digを使用
dig example.com A
;; ANSWER SECTION:
example.com. 3542 IN A 192.0.2.1
│
└── キャッシュが期限切れになるまでの残り秒数
nslookupを使用
nslookup -debug example.com
ベストプラクティス
1. 適切な値を使用: TTLをレコード変動性に一致させる
2. 変更前に低下: 変更24-48時間前にTTLを低下
3. キャッシング層を考慮: CDN、ブラウザが遅延を追加
4. バランスを取る: 不要に低くしないで負荷対速度
5. 変更後に監視: 伝播が完了したことを確認
6. 標準を文書化: TTLポリシーを確立
TTLは基本的なDNS概念で、DNS変更がインターネット全体でどのくらい速く有効になるか、およびネームサーバーがどの程度の負荷を処理するかに直接影響します。