DNSのTTLとは?変更が反映されるまでの仕組みと切替前の確認

DNSのTTL(Time to Live)は、DNSレコードをキャッシュして利用する時間を示す値です。IPアドレスを変更しても、利用者が参照するキャッシュに古い答えが残っていれば、すぐには新しい接続先へ向かいません。

TTLは「管理画面で変更してから全員の接続先が切り替わる時間」の保証ではありません。移行担当者は、設定値だけでなく、どこでどの答えを確認したかを分けて記録する必要があります。

TTLとキャッシュの関係

DNSでは、ドメイン名に対応する情報を持つ権威DNSと、その情報を問い合わせて利用者へ返すリゾルバーを区別します。リゾルバーは取得した答えを一定時間保持し、同じ問い合わせに再利用します。

AWSの公式説明では、TTLは秒単位で、再問い合わせをせずレコードをキャッシュできる時間を判断する値です。短くすると変更を認識しやすくなる一方、問い合わせが増えます。Amazon Route 53のTTLに関する説明

たとえばTTLが3,600秒なら1時間です。ただし、これは「毎時0分に全利用者が更新する」という意味ではありません。取得のタイミングが異なれば、古い答えが残る時間も異なります。

変更直前に短くしても古いキャッシュは別に考える

説明用に、あるリゾルバーが9時にTTL3,600秒の答えを取得したとします。9時10分に権威DNS側でTTLを300秒へ変更しても、そのリゾルバーが新しい設定をすぐ問い合わせるとは限りません。すでに持っている答えの扱いを考える必要があります。

このため、切替計画では次の順を検討します。実際の待機時間や設定可能な範囲は、利用サービスの仕様に合わせて決めてください。

  1. 変更対象のレコード名・種類・値・現在のTTLを控える。
  2. 必要なら、接続先変更より前にTTLを短くする。
  3. 旧TTLと変更時刻を踏まえて待機し、対象の答えを確認する。
  4. 接続先を変更し、名前解決とアプリケーションの両方を確認する。
  5. 安定後にTTLを見直す。

AWSも重要なDNS変更前の一時的なTTL短縮を説明しています。すべてのレコードを常に最短へ変えることが目的ではありません。

推奨値は変更頻度と運用条件から決める

一律に「300秒が正解」と決めると、サービス固有の制限や運用目的を見落とします。次のように条件を整理すると判断しやすくなります。

確認する条件 判断で考えること
接続先を変える予定 変更と確認を行う時間帯、旧TTL
問い合わせ量 短縮による問い合わせ増加と費用への影響
レコードの種類 A・AAAA・CNAMEなど、変更する情報の違い
DNSサービスの制約 設定可能な値、固定値、プロキシの有無
切り戻し 戻した後もキャッシュが残る前提での確認

たとえばCloudflareのプロキシ対象レコードはTTLがAutoの300秒で、編集できないと説明されています。また、ローカルキャッシュの影響で変更の体感に5分を超える場合もあるとしています。これはCloudflareの仕様例です。Cloudflare「Time to Live」

確認結果には問い合わせ先と時刻を残す

「新しいIPが出た」だけでは、どこまで切り替わったか判断できません。権威DNSへの確認と、利用者が使うリゾルバー経由の確認を区別します。

確認記録には、対象名・レコード種類・問い合わせ先・回答値・確認時刻・観測したTTLを残すことを勧めます。キャッシュから返る残り時間と、管理画面に設定した値を混同しないようにします。

DNSが正しくても、接続先の証明書やアプリケーションが正しいとは限りません。名前解決の後に、実際のURLで必要な画面や機能を確認します。移行全体はクラウド移行の切替計画と合わせて整理してください。

まずは対象レコードの現在値と、誰がどの経路で確認するかをそろえるところから始めましょう。基盤の変更準備や運用体制については、インフラサポートをご覧ください。

記事一覧へ戻る

ITの困りごとを、
まずはご相談ください。

何から手をつけるか決まっていない段階でも構いません。ご相談内容に応じて、担当者からご連絡します。

まずは相談する

採用へのご応募は採用エントリーからお願いします。