...

DNSのTTLが正しくないと世界中のウェブサイトが遅くなる理由

DNS TTL TTLは、リゾルバが世界中で古いレスポンスや新しいレスポンスをキャッシュする時間を決定するため、特に変更、フェイルオーバー、頻繁なIP変更の場合に、ページビューを大幅に遅くする可能性があります。不適切なTTLがどのように読み込み時間を増加させるか、異なる地域のユーザーが異なる影響を受ける理由、そして以下のことを実現するために適切な値を設定する方法について説明します。 レイテンシー とサーバーの負荷。.

中心点

以下の重要なポイントは、迅速な最適化のための簡単な概要と優先順位の設定です。 パフォーマンス を獲得した。.

  • TTL長短い値は更新を早め、長い値はキャッシュヒットを増やす。.
  • 伝播TTLが高いと、グローバルな切り替えが大幅に遅くなる。.
  • サーバー負荷短いTTLはクエリを増やし、待ち時間のピークを発生させる可能性がある。.
  • レコードの種類A/AAAのショート、MXのロング、TXT/SRVのミディアム。.
  • モニタリングクエリーレート、レイテンシー、キャッシュヒット率を定期的にチェックする。.

DNSのTTLとは何か?

TTLは „Time To Live “の略で、リゾルバが権威サーバーに再度問い合わせるまでのDNS応答をキャッシュに保持する時間を決定する。 実際 を保証します。ウェブサイトのIPを変更した場合、高いTTLは古い情報が配信され続ける時間窓のように機能する。ある地域のユーザーにはすでに新しいIPが表示され、他の地域のユーザーはまだ古いアドレスにアクセスし、エラーを受け取ることになります。 鈍化. .この効果は、世界中の何千ものリゾルバが独立してキャッシュし、同時に実行されないために生じる。TTLを無視すると、ロールアウト、障害シナリオ、知覚される速度のコントロールを失う。.

不正なTTLがグローバルパフォーマンスに与える影響

TTLが短すぎるとクエリの頻度が高くなり、権威ネームサーバーに負荷がかかる。 レイテンシー ピーク時の負荷20,000のリゾルバで、300秒のTTLは、応答時間に直接影響を与える1秒あたり平均約67のDNSクエリを提供します。非常に長いTTLは、これらのクエリを大幅に削減しますが、古いデータをより長くキャッシュに保持し、ロールアウトやフェイルオーバーを顕著に遅らせます。すべての遅延は主要な数値に反映されます:ユーザーの待ち時間が長くなり、セッションのキャンセルが増え、コンバージョンが減少します。 電子商取引. .したがって、低レイテンシ、高キャッシュレート、制御可能なアップトゥデートのバランスを達成することが目的である。.

ショートとロングのトレードオフ:数字、効果、賭け金

ダイナミックな環境では短いレスポンスタイムが必要であり、静かなシナリオではより多くのキャッシュヒットを達成し、サーバーの負荷を軽減します。核となるルールは、ターゲットが頻繁に変更されればされるほど、キャッシュの許容寿命は短くなります。 フェイルオーバー. .中程度の値を介した中間ステップは、俊敏性を失うことなく負荷を制限する。このトレードオフにより、往復回数の多いコンピューティング・パスのDNSレイテンシーを最大50パーセント削減するなど、顕著なロード時間短縮が実現します。構造化された測定と調整により ユーザー・エクスペリエンス 常に速い。.

TTL値 メリット デメリット 代表的なアプリケーション
300 秒(5 分) 高速アップデート、迅速なフェイルオーバー 高負荷、より多くのクエリー 動的アプリ、ロードバランシング
3,600 秒(1 時間) 適度な負荷 変更時の平均遅延 ウェブアプリ、API
86,400 秒 (24 時間) クエリが少なく、キャッシュヒットが多い 遅い伝播、遅いフェイルオーバー 静的なサイト、頻繁な変更

変更と移行前のベストプラクティス

計画的なコンバージョンの前には、少なくとも24~48時間前にTTLを300秒に下げておく。 伝播 はすぐに効果を発揮する。切り替え後、すべてが安定したら、クエリを減らすために値を3,600秒以上に再び増やす。リスクの高いデプロイメントでは、エラーが発生した場合にすぐにロールバックできるように、数時間は短い値を維持します。その後、TTLを正規化し、コストとエネルギー要件を削減し、多くのクエリーによって引き起こされるアタックサーフェスを減らしている。1つ 詳しい説明 を危うくすることなく、ステップをきれいに刻み、副作用を避けることができる。 空室状況 リスクに対して。.

レコードタイプを意味のある方法で区別する

ダイナミックな環境では、AレコードとAAAAレコードを300秒から1,800秒程度の短い時間に設定することが多い。 フェイルオーバー が有効になります。私はMXレコードをもっと長く、たとえば43,200秒から86,400秒にしているが、これはメールルートを一定に保つ必要があり、不必要なDNSクエリを避けたいからである。TXTレコードとSRVレコード(SPF、DKIM、サービス)はほとんど変更しないので、3,600秒から43,200秒の間の値を選ぶことが多い。また、親DNSのNSとGlueの値を高くして、責任が常にクエリされないようにしています。この差別化によって 敏捷性 クリティカル・パス.

DNA伝播の理解と促進

新しい値がどこにでも現れるまでの時間は、チェーンの中で最も高いTTLに、不正解の場合の負のキャッシュを加えたものにほぼ対応する。 待ち時間 を拡張した。私は、世界中の拠点で『dig』などのツールを使って進捗状況をチェックし、どのリゾルバがまだ古いデータを配信しているかを調べている。プロバイダーのキャッシュは手動で空にできることもあるが、すべてのノードがこの衝動をすぐに受け入れるわけではない。SOAのパラメータを不利に選択すると、キャッシュ時間がマイナスになり、迅速な修正ができなくなる。クリーンなプランニングと明確なステップによって、異常値を防ぎ ダウンタイム 最小限。.

DNSアーキテクチャとルーティング戦略の巧みな組み合わせ

私はTTLダイアルとエニーキャストDNS、ジオ・ルーティング、CDNを組み合わせ、リゾルバがユーザーの近くで応答を受け取れるようにしている。 往復 ドロップします。エニーキャストはリクエストを自動的に最も近いPoPに分散し、ルックアップあたりの基本コストを削減し、ボトルネックを緩和します。Geo-routingは、ユーザーが地域のインフラに縛られることを確実にし、レイテンシーとキャパシティをさらに向上させます。CDNはオリジンレイヤーから静的コンテンツをカプセル化し、DNSは最速のエッジアクセスのみを表示する。このガイドでは、アーキテクチャの詳細を要約する: DNSアーキテクチャ, このアプローチは、明確な ターゲット.

永久に短いTTLのリスク

非常に短い値は、クエリーレートを著しく増加させ、それによってエネルギー消費と コスト. .DDoS負荷下では、より多くのリソースが使用されるため、多くのクエリが状況を悪化させます。同時に、運用上のリスクも増大します。設定エラーはより早くグローバルに影響を及ぼし、監視やアラートへの負担も重くなります。ここで注意を怠ると、ピーク時にあらゆるリザーブを食いつぶしてしまう自業自得の負荷が発生する。そのため、私は保守的な計画を立て、ステップ・バイ・ステップでテストし、非常に短い時間しか選択しないようにしている。 価値観.

重要なモニタリングと指標

クエリーレート、レスポンスタイム、エラーレート、キャッシュヒット率をゾーンとロケーションで別々に監視し、パターンを素早く認識できるようにしている。 ボトルネック をオフにする。また、更新の時間配分もチェックし、プレイアウトがトラフィックのピークとぶつからないようにしている。TLSハンドシェイク・プロファイルと接続統計は、DNSルックアップとその後のHTTPステップをきれいに分離するのに役立ちます。そして、ルーティングが柔軟性を保ち、コンテンツがエッジから効率的に配信されるように、DNSとは独立してコンテンツ・キャッシュを最適化する。ルックアップとオブジェクト・キャッシュの複雑さをより深く知りたい場合は、次のサイトで実用的なヒントを見つけることができる。 DNSキャッシュの最適化 その結果 ローディング時間 目につく。

プロジェクトでよく見かける間違い

多くのチームは、移行前にTTLを変更するのが遅すぎた。 トラフィック は何も起こらない。また、よくあるのが、変更に成功した後にTTLを再度増加させず、不必要な負荷を発生させることです。最短のTTLがCNAMEチェーンで支配的であり、CDNのセットアップでリクエストが爆発的に増加することを忘れている人もいる。また、作業負荷や地域、変更頻度が大きく異なるにもかかわらず、やみくもにデフォルト値を受け入れる人もいる。そこで私は、バインディング・ランブックを設定し 価値観 サービスごとに。.

実践チェック:チームのためのリーンステップ

レイテンシ、クエリレート、キャッシュヒット率の目標値を設定し、各調整の前に測定することで、次のことが可能になります。 効果 明確に。立ち上げ、リリースの波、インフラの変更の前にTTLを下げ、最も重要なメトリクスを監視し、安定した後に再びTTLを上げる。ユーザーの混乱を最小限に抑えるため、ピーク時以外のTTLウィンドウを意図的に計画する。CNAMEチェーンとCDNパスを最小のリンクまでテストし、予期せぬクエリストームが発生しないようにする。調査結果を文書化することで、将来の変更をより早く、より少ない混乱で行うことができます。 リスク 走る。

リゾルバが実際にTTLをどのように扱うか

すべてのリゾルバが公表されたTTLを厳守しているわけではない。私はこのことを実際によく目にする:

  • TTL-床・天井公開リゾルバーの中には、最小値(例えば60秒)や最大値(例えば1-24時間)を設定するものがある。公開TTLが5秒の場合、追加的な利益は得られませんが、不必要な負荷が発生します。.
  • プリフェッチ繰り返しリクエストされる名前は、有効期限が切れる直前にバックグラウンドで更新される。これは応答時間を改善しますが、多くのリゾルバが同時にプリフェッチしている場合、権威サーバの負荷ピークを増加させる可能性があります。.
  • サーブステールネットワークに問題がある場合、いくつかのリゾルバーは一時的に期限切れ(stale)の応答を配信し続ける。これは可用性を高めますが、目に見える変更を最小限に遅らせます。.
  • ジッター群れ効果」を避けるために、リゾルバは内部実行時間をわずかに変化させる。その結果、クエリーはより均等に分散され、測定された残余TTLは場所ごとに変動することがある。.

そのため、私は安全マージンを考慮したTTLを計画し、測定点を用いて実際の残留TTLを観察し、床やタイルを考慮に入れている。 キャパシティ・プランニング.

クライアントとOSのキャッシュ:アプリケーションがTTLを無視する場合

DNSキャッシュはエンドデバイスでも機能する。ブラウザ、オペレーティングシステム、ランタイムは、リゾルバとは無関係にキャッシュすることがある:

  • OSリゾルバ (Windows DNS Client、macOS mDNSResponder、systemd-resolved)は応答をキャッシュし、フラッシュを遅らせることができる。.
  • プログラミング言語Javaは、セキュリティ・プロパティが設定されていないと、ホスト名を必要以上に長くキャッシュしてしまうことがある。HTTPスタックの中には、コネクションを再利用可能に保つものがあります。.
  • サービス・デーモン nscdやdnsmasqのアグリゲートクエリーなど - 内部ネットワークには便利だが、非常に短いTTLでは厄介だ。.

そのため、私はアプリケーションがTTLとドキュメントフラッシュコマンド(OS、ブラウザ、ランタイム)を尊重しているかどうかをチェックしている。そうでなければ、適切に計画されたDNSの変更が トラフィック.

DNSSEC、ネガティブキャッシュ、SOAパラメータを正しく設定する

署名(RRSIG)と鍵(DNSKEY/DS)にはそれぞれ有効期限がある。長い鍵のTTLは負荷を軽減するが、鍵のロールオーバーを遅くする可能性がある。そのため エラー訂正 ネガティブキャッシュ(RFC 2308)は重要です:NXDOMAINレスポンスはSOA値を使ってキャッシュされる。私は、タイピングエラーや短期的な設定ミスが永遠に引っかからないように、これらの時間を適度な時間(例えば300-3,600秒)に保っている。SOAでは、セカンダリが障害に過剰反応することなく確実に更新されるように、refresh/retry/expireを現実的に維持しています。.

現代のレコード・タイプと特殊なケース

A/AAAのほかに、TTL戦略を特徴づけるタイプがある:

  • 頂点のALIAS/ANAME多くのプロバイダーは外部宛先を「フラット化」する。その場合、Apexレコードの公開TTLが決め手となる。内部での更新サイクルは異なるかもしれない。内部での更新サイクルは異なる場合があります。高速なCDNの変更のために、私はここで中程度のTTLを計画しています。.
  • SVCB/HTTPSこれらのレコードはプロトコルのプロパティ(HTTP/3など)を制御する。クライアントの能力とルートを柔軟に保つために、私は短~中程度のTTL(300~1,800秒)を選んでいる。.
  • CAA証明書発行時やCA変更時には、CAAのTTLを一時的に短くして、失効を迅速に伝播するようにしている。.
  • CNAMEチェーン最も短いTTLがチェーンに沿って勝つ。私は深さを低く保ち、最初のリンクだけでなく、解像度の終わりで有効な残留TTLをテストする。.

負荷の平準化:TTLのずらし、プリフェッチ、キャッシュのプリウォーミング

多くの人気のある名前が同時に期限切れになると、「雷の群れ」が生まれる。私は次のような対策をしている:

  • TTLスタッギング (例えば、480/540/600秒を関連ホスト名で)同時に期限が切れないようにする。.
  • プリフェッチ・ウィンドウ そして、リゾルバが新鮮な状態でキャッシュできるように、ピーク時の数分前に計画的なアップデートを展開する。.
  • キャッシュの予熱 コアリージョンからの合成ヘルスチェックは、頻繁に使用される名前を温かく保つ。.

計算例:12,000のアクティブなリゾルバと600秒のTTLで、平均20QPSを期待する。10個のセントラルレコードが同時に落下した場合、最大200QPSの追加ピークが短時間に発生する。TTLをずらすことで、このようなピークは顕著に減少する。.

地域差とモバイルネットワークに注目

キャリアのリゾルバは独自のTTL制限を設定することがあり、キャプティブポータルは応答を注入し、CGNATの背後にあるモバイルネットワークは固定ネットワークとは異なる方法でリクエストをバンドルする。WLANとモバイルネットワーク間のユーザーの変更は、ローカルキャッシュを予測不可能に無効にする。そのため、私は分散した場所(クラウド地域や外部の見晴らしの良い場所など)で測定し、残存TTLを比較し、異常とISPの特異性を比較します。エニーキャストDNSは地域的な遅延を軽減しますが、TTLの物理的な変化はありません。.

マイクロサービスとハイブリッド・クラウドのための社内DNS戦略

サービスメッシュやKubernetes環境では、短いライフサイクルが主流だ。ヘッドレスサービス、SRVレコード、内部ゾーンは多くのルックアップを生成する。お勧めは

  • ローカル・キャッシング (サイドカー/ノード・キャッシュ)により、おしゃべりなワークロードを軽減する。.
  • 適度なTTL (極端な1~5秒ではなく、10~60秒)を動的終点に設定することで、制御の俊敏性を維持し、負荷が制限内に収まるようにしている。.
  • 個別方針 グローバルTTLの変更が内部パスを不安定にしないように、内部では東西トラフィック用に、外部では南北トラフィック用に使用する。.

ハイブリッド・セットアップの場合、私はスプリット・ホライゾン・ゾーンを明確に分け、どちらがどちらのTTLプロファイルを使用しているかを文書化する。.

TTLによる予測とキャパシティ・プランニング

私はいくつかのサイズだけで容量を定義している:

  • リゾルバ人口 N:期間ごとの異なるリクエストリゾルバの数。.
  • 有効TTL T:床/天井とCNAMEチェーンに従って測定。.
  • 人気 p:ホスト名/ゾーンごとのトラフィックのシェア。.

大まかな期待値:QPS≈Σ(pi - N / Ti)全ての重要な名前に渡って、プリフェッチ係数とネガティブキャッシュによって修正される。タイプミスとスキャンがクエリの数パーセントを占めるため、NXDOMAIN予算を追加します。これに基づいて、ネームサーバー、レート制限、アップストリームの帯域幅を設定し、TTL削減のための予備も用意しています。.

典型的なマイグレーションのプレイブック

私は、繰り返し起こるシナリオのために標準化された手順を設定した:

  • CDN変更Apex/WWW/CNAMEsのTTLが300~600秒になる48時間前に、ヘルスチェックを作動させ、ピークの外側に切り替え、2~4時間観察した後、3,600~7,200秒に増加させる。.
  • メール移行MX/Autodiscoverは徐々に新しい宛先を指し示し、SPF/DKIM/DMARCを時間遅れで更新し、より長いTTL(12-24時間)を維持し、一方メールホストのA/AAAは適度に短いままである。.
  • IPローテーション複数のA/AAAAエントリーで予備的な並行運用を行い、TTLウィンドウが1-2回経過した後に古いIPを削除し、残りのエントリーのログをチェックする。.
  • ネームサーバーの変更注: 親ゾーンファイル内のNS/DS - これらのTTLが実際の切り替え時間を決定する。親ゾーンの更新は自由に高速化することができないため、このために追加のバッファを計画しています。.

トラブルシューティング:TTLがうまくいかない場合

計画的な変更がうまくいかない場合、私は構造的なアプローチを取る:

  • チェーン内で最小のTTL解決策(CNAME/ALIAS)の最後にドミナント値をチェックする。.
  • レゾルバ-床/天井 を識別する:複数のネットワークをテストして残留TTLを比較する。.
  • OS/アプリキャッシュ ローカルの永続性を除外するために、リスタートを空にするかテストする。.
  • ネガティブキャッシュ (NXDOMAIN):SOAの値をチェックし、不正確なエントリーを修正し、期限切れに備えて忍耐を計画する。.
  • HTTP/トランスポートの混同 避けてください:持続的接続、Alt-SvcまたはCDNキャッシュは、IPの変更をマスクすることができます - DNSは原因ではありません。.

これらのポイントが処理されて初めて、私は再びTTLを調整する。こうすることで、TTLを調整することなく負荷を増加させるような、やみくもなアクションを避けることができる。 原因 を排除する。.

簡単な要約:正しいTTLトラックを見つける

私は、計画的な変更には短いTTLを使用するが、必要な時間だけ保持し、その後、次のように適度な値まで増加させる。 負荷 時間を節約するためだ。私は、ルーティングが柔軟性を保ち、メールルートが常にアクセスできるように、レコードタイプごとに異なるライフタイムを選択しています。エニーキャストDNS、ジオルーティング、CDNは経路を減らし、モニタリングはクエリーレート、レスポンスタイム、キャッシュヒット率がグリーンゾーンを維持することを保証する。数を追跡し、チェーンをチェックし、SOAを適切にパラメータ化すれば、SOAを加速させることができる。 伝播 そしてブラインド・フライトを回避する。こうしてDNS TTLは、スピード、コスト管理、信頼性のテコとして、その効果を測定可能な形で世界中に展開するのである。.

現在の記事

高速データ接続によるサーバーパフォーマンスの最適化
ワードプレス

WordPressでリダイレクトが多いと速度が低下する理由

ワードプレスのリダイレクトがパフォーマンスに与える影響と、リダイレクト管理を最適化することでウェブサイトの速度を向上させる方法をご紹介します。.