TTLの実際の選び方
DNS TTLとは?最適な値の選び方
TTL は Time To Live(生存時間)の略です。すべてのDNSレコードに付く秒数で、リゾルバーがこの答えを、再度問い合わせずにどれだけ使い回してよいか、という1つの問いに答えます。
DNSの設定の中で、最も軽視されがちな項目です。多くの人は、プロバイダーが設定した既定値をそのまま受け入れ、その存在に気づくのは緊急の移行作業のときで、有効に変更するには手遅れになっています。
TTLの実際の選び方
トレードオフ
| 高いTTL(86400) | 低いTTL(300) | |
|---|---|---|
| 検索の速さ | 速い。多くの場合キャッシュされている | 遅い。頻繁に再問い合わせされる |
| クエリ量 | 少ない | 多い |
| 変更が反映されるまで | 最大24時間 | 最大5分 |
| 自社のDNSが障害を起こしたときの耐性 | 高い。キャッシュが守ってくれる | 低い。キャッシュがすぐに切れる |
| 最も適したケース | 安定したレコード | まもなく変更されるレコード |
重要なポイント
高いTTLは、速度と耐障害性に最適化します。低いTTLは、機動性に最適化します。どちらが常に正しいということはなく、正解は、そのレコードがまもなく変更されるかどうかで決まります。
実際のTTLの見え方
example.com. 3600 IN A 93.184.216.34
example.com. 86400 IN NS ns1.example.com.dig で問い合わせると、設定されたTTLではなく、残りのTTLが表示されます。同じクエリを数秒あけて2回実行し、数字が減っていく様子を見てください。それは、リゾルバーのキャッシュがカウントダウンしていくのをリアルタイムで見ているということです。
dig +noall +answer example.com
# wait 10 seconds, then
dig +noall +answer example.comレコードタイプ別の推奨値
| レコード | 推奨TTL | 理由 |
|---|---|---|
A / AAAA | 3600(1時間) | 適切な既定値です。ミスを修正できる程度に速く、効率的である程度に長い値です。 |
移行中の A | 300(5分) | 変更がすぐに反映されるよう、1日前に設定します。 |
MX | 3600-14400 | メールはキューに入れられて再試行されるため、速度はそれほど重要ではありません。 |
TXT(SPF/DKIM/DMARC) | 3600 | 変更はまれで、変更するときには十分な速さです。 |
NS | 86400+ | 委任はほとんど変更されず、キャッシュすることでTLDの負荷が減ります。 |
CNAME | 指す先に合わせる | 指す先より早く期限切れにしても、メリットはありません。 |
移行のパターン
これは、覚えておく価値のある唯一のTTLのワークフローです。丸1日の停止のリスクを、5分のリスクに変えられるからです。
変更の少なくとも古いTTL1周期分前に、TTLを下げる
現在のTTLが3600なら、300に変更し、少なくとも1時間は待ちます。ほかのものは何も変えません。
短いTTLが配信されていることを確認する
レコードを問い合わせ、TTLが300からカウントダウンしていることを確認します。これで、あなたのレコードを保持しているすべてのキャッシュが、5分のタイマーで動いています。
実際の変更を行う
アドレスを更新します。誰にとっても、待ち時間は最大5分になります。
確認してから、TTLを元に戻す
トラフィックが新しいサーバーに移ったら、TTLを3600に戻して、クエリのコストを払い続けないようにします。
TTLと耐障害性
高いTTLには、ほとんど語られない利点があります。DNSプロバイダーが障害を起こしても、あなたのレコードをキャッシュしているリゾルバーは、それを返し続けることです。24時間のTTLなら、数時間に及ぶDNS障害の間も、ほとんど気づかれずにドメインを維持できる可能性があります。60秒のTTLでは、ほぼ即座にドメインが見えなくなります。
安定したレコードのTTLを十分高く保つこと、そして低いTTLを既定の姿勢ではなく、一時的な移行用のツールとして扱うことには、確かな根拠があります。レコードを変更したときに何を待っているのかについては、DNS伝播 で説明しています。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
このテーマの無料ツール
よくある質問
関連記事
「伝播」の正体は、キャッシュの有効期限切れ
0分
変更を保存
0-5分
DNSホストが更新
TTLまで
古い回答がまだキャッシュ中
TTL後
全員に新しい回答が表示
どこにも何も送られず、各キャッシュがコピーの再利用をやめるだけ
DNS伝播とは?変更の反映に時間がかかる理由
実際には、何も伝播していません。待っている間に何が起きているかが分かれば、どのくらいかかるのか、どう短縮できるのかが正確に分かります。
ほぼすべてのゾーンで出会うレコード
DNS Aレコードとは?AAAAが必要になる場面
ドメインを実際にサーバーへ向けるレコードです。その構造、対となるAAAAレコード、サイトが最も壊れやすい4つの間違いを解説します。
TTLの実際の選び方
DNSキャッシュをフラッシュする方法
あらゆるプラットフォーム向けのコピペ用コマンドに加えて、フラッシュが効くかどうかを事前に見分ける診断方法も紹介します。