TTL とは何をするものですか?
ユーザーがブラウザにドメイン名を入力すると、ローカルなリゾルバに対し、そのドメインの IP アドレスの问い合わせが行われます。
このリクエストが行われた时点で、そのリクエストの関连情报がリゾルバにキャッシュ、すなわち保存されていれば、リゾルバから结果を速く受け取ることができます。情报がキャッシュ内に存在しなければ、リゾルバはさらにいくつかの手顺を踏んで、そのドメインについて権威ネームサーバーに问い合わせます。
情报が得られたのがキャッシュからであれ、権威ネームサーバーからであれ、その情报はリゾルバに保存されるので、次回同じリクエストが行われたときには短时间で解决することができます。
TTL はどのような仕組みになっているのですか?
TTL は分や時間ではなく、秒で測定します。たとえば、TTL を 30 分に設定するのであれば、30 分を秒に変換し、TTL を 1800 とします。
TTL の値を小さくすると、クライアントがネームサーバーへの問い合わせを頻繁に行わなければならなくなるので、ドメイン名問い合わせのトラフィックが増加します。一方、TTL の値を大きくすると、IP アドレスを切り替える必要が生じたときに、ダウンタイムを引き起こすおそれがあります。
TTL の初期値を設定する際には、変更が可能であることを覚えておきましょう。IP アドレスの変更を予定している場合、変更の数時間前に TTL を小さい値に変更すれば、ダウンタイムを回避することができます。IP アドレスの変更が済めば、TTL を再度大きくすることができます。
どのような TTL 値を選択したらいいですか?
TTL の推奨値はレコードタイプによって異なります。
A レコード(フェイルオーバー有)
A レコード(フェイルオーバー有)の場合は、TTL を 180 以下にすることをお勧めします。なぜなら、プライマリ IP アドレスがサービス停止状態になっている間、そのレコードの IP アドレスは変わるので、TTL 値を小さくしておけば、停止している IP アドレスへのアクセスを回避できるからです。
A レコード(フェイルオーバー無)
A レコード(フェイルオーバー無)の場合、TTL は 1800 から 3600 がお勧めです。このレコードには頻繁に問い合わせがあるので、TTL を大きくした方が大量の問い合わせが行われるのを防げます。しかし、TTL を 3600 以下にしておけば、レコードを変更したとき妥当な時間内に反映されます。
バニティネームサーバーの A レコード
バニティネームサーバーの A レコードでは、TTL を 86400 にすることをお勧めします。なぜなら、レコードの変更は行われませんが、そのバニティネームサーバーを使用しているドメインに対する新しい問い合わせが行われれば、そのサーバーに問い合わせが来るからです。
CNAME/ANAME/MX/HTTP リダイレクトレコード
CNAME/ANAME/MX/HTTP リダイレクトレコードの場合、TTL は大きくすることが望ましく、1800 から 3600 がお勧めです。なぜなら、これらは変更が行われる別のレコードを指すレコードであり、これらのレコード自体が変更されることは稀だからです。けれども、これらのレコードへの問い合わせは極めて頻繁に行われるので、TTL を大きくすることで問い合わせの回数を減らすことができます。
TXT (SPF)/DMARC/DKIM/CAA レコード
TXT (SPF)/DMARC/DKIM/CAA レコードの場合、TTL は 1800 から 3600 がお勧めです。頻繁に変更する必要がないのであれば、TTL は大きい値を選びましょう。これらのレコードは主に静的な照合のために利用されるので、それで十分です。
NS レコード
ネームサーバーレコードの場合、TTL を 86400 にすることをお勧めします。なぜならこのレコードタイプは問い合わせが非常に多く、変更の頻度は低いからです。NS レコードの問い合わせは、ドメインのレコードの問い合わせのたびに毎回行われるので、TTL を大きくすることで問い合わせの回数を減らすことができます。
PTR レコード
ポインタレコードの場合、TTL は 1800 から 3600 がお勧めです。なぜならこのレコードは、利用の仕方によっては、ある程度頻繁に変更が行われる可能性があるからです。もしもあまり頻繁に変更する予定がないのであれば、TTL を大きくすることをお勧めします。