ウェブサイトにアクセスした人には、常に最新の情報を届けたいものです。

一方でサイトの高速読み込みも無視できません。表示の遅いサイトには、すぐにユーザーがあきらめてサイトを離れてしまう「直帰のリスク」がつきまといます。

そこで、ウェブサイトのTTL(Time to Live、生存期間)を調整して、このバランスを取るのがおすすめです。TTLを使用して、サイトの表示速度を改善しつつ、同時に、情報を最新の状態に保つことができます。

この記事では、TTLとは何か、どのように機能するのかを見ていきます。また、TTLを使用する目的と、サイトに適切なTTL値を選択する方法を説明します。

TTL(Time to Live)とは

TTLとは、前述のとおり「Time to Live」の略です。ルーターでクリアされるまでの間、ネットワーク内でパケット形式のデータが「生存する」期間を意味します。

これは「ホップ」と呼ばれることもあり、ルーターの経由回数を表します。

TTLの有効期限が切れると、ルーターはその更新を行います。つまり、再度、情報を取得することになります。

TTLは、コンテンツデリバリネットワーク(CDN)のデータのキャッシュにも使用されます。CDNは、静的ファイルをホストする世界規模のサーバーネットワークです。サイトの訪問者は、自分に最も近いサーバーから情報を受け取ります。

TTLは、CDNが更新情報を新たに取得するまでの、データ保持期間です。

TTLの機能については、後ほど具体的に詳しく見ていきます。まずは、ドメインネームシステム(DNS)サーバー、ping、インターネットプロトコル(IP)ヘッダの面から、TTLとは何かを考えてみましょう。TTLは、それぞれのアプリケーションで異なる機能を果たすため、その違いを理解することが重要です。

DNSのTTLとは

DNSサーバーは、ウェブサーバーとドメイン名の橋渡し役です。たとえばドメイン名「Kinsta.com」を入力しても、サーバーはこの情報を解釈できません。サーバーは、IPアドレスとして知られる数字でデータを読み取ります。

DNSは、ドメイン名とIPアドレスの変換を行い、ユーザーがウェブサイトにアクセスできるようにします。

橋渡し役のDNSサーバー
橋渡し役のDNSサーバー

DNSサーバーとTTLの関係を理解するには、まずキャッシュについて理解する必要があります。ここでいうキャッシュとは、ウェブサイトのドメイン名をIPアドレスに変換する際に使用される記憶域のことです。

ユーザーがウェブサイトにアクセスするたびに、変換が必要です。この変換がキャッシュに保存されていれば、DNSレコードが存在するため、高速に接続できます。実際、サーバーはほぼ瞬時にレコードを引き出します。

ここでのTTLは、DNSサーバーが再び情報を要求する前の、DNSレコードを保持する時間を決定します。TTLは、DNSが更新されるまでの時間を決定する「DNSプロパゲーション」(伝播)を制御する1つの要素になります。

pingのTTLとは

pingは、接続の反応時間を測定します。例えば、送信したリクエストが戻ってくるまでの時間を測定します。このping測定は、ネットワークの遅延を測定する方法の1つで、接続の応答と遅延のための一般的な用語です。

pingテストを実行すると、レポートにTTLが含まれる場合があります。このTTLの値から、接続が完了するまでの時間について、より詳細な情報を得られます。

pingテストの実行
pingテストの実行

このテストでは、pingは4つの別々のデータのパケットから結果を記録し、要した時間と、データのパケットが何回「ホップ」したかを示すTTLを表示します。

しかし、このレポートでは、相手のウェブサイトのサーバーで設定されているTTLは表示されません。このため、実際のTTLを計算するには、その値を知る必要があります。

TTL値とは

ウェブサイトのTTL値は、秒単位で指定します。例えば、TTL値600は、600秒または10分に相当します。

利用可能な最小のTTLは通常30で、これは30秒に相当します。理論的には、1秒という低いTTLを設定することも可能ですが、ほとんどのサイトでは、デフォルト値の3600(1時間)を使用しています。適用可能なTTL最大値は、86400(24時間)です。

技術的には、最小と最大のパラメータ間で任意のTTL値を設定できます。この記事の後半で、サイトに最適なTTL値を選択する方法について説明します。

IPv4とIPv6

IPv6とIPv4は異なる種類のIPです。どちらも一連のルール(またはプロトコル)を通じてデータのパケットをルーティングします。IPには、データを意図した宛先に届けるための情報が含まれています。

IPヘッダは、データのパケットの先頭にある情報です。例えば、送信元と送信先のIPアドレスなどの詳細な情報が含まれます。

IPv4は1984年から利用されています。数字とピリオドで構成された32ビットのアドレスを持ちます。IPv6はより新しいIPで、文字と数字からなる128ビットのアドレス形式を採用しています。

IPv4ヘッダではTTLフィールドを使用しますが、IPv6にはありません。IPv6ヘッダには、ホップリミット(Hop Limit)というTTLと似た働きをするフィールドがあります。ここで、2つのIPヘッダを比較してみましょう。

IPv6ホップリミット
IPv6ホップリミット

ホップリミットは、ルーターがデータパケットを破棄するまでに移動する「ホップ」数を決定します。

TTLの仕組み

では、実際にTTLがどのように機能するのか、もう少し詳しく見てみましょう。これまで見てきたようにTTLの値は、ルーターがデータパケットを拒否する(中継終了)までの時間、またはホップ数を決定します。しかし、この機能の仕組みは、今、あなたが想像しているよりも少し複雑です。

パケットデータにTTLを付与すると、パケットはこれを秒単位で指定された数値として保持します。パケットがルーターに到達するたびに、ルーターはTTL値から数字を1つ減らし、次のステップに渡します。

データパケットが何度もルーターを通過すると、数値は0になります。0に達すると、ルーターはこれを破棄します。

この結果、エラーメッセージの一種であるInternet Control Message Protocol(ICMP、インターネット制御通知プロトコル)が表示されます。データのTTLが300の場合、ルーターを最大300回までしか中継できません。

TTLを使用するメリット

ここまで、TTLには様々な用途があることを見てきました。ウェブサイトを運営しているならば、表示速度には、常に注意を払っているはずです。コンテンツの読み込みが遅いと、訪問者や潜在顧客を失うことになり兼ねません。加えて、読み込みの遅いサイトは、検索エンジン最適化(SEO)の面でも不利です。

そこで、キャッシュの観点でTTLを分析してみましょう。ウェブサイトは、一連のページ、コード、画像、その他コンテンツで構成され、読み込みに時間がかかることがあります。ユーザーごとにすべてのコンテンツを再読み込みすると、サイトのスピードは著しく低下する恐れがあります。

TTL値を上げると、キャッシュしたサイトデータがより長く「生存」することになります。結果、サイトの表示が速くなり、サーバーの負荷が軽減できます。

しかし、TTL値を低くすることも、特定の局面では有効です。たとえば、頻繁に更新されるウェブサイトが考えられます。Xeのようなサイトは、リアルタイムの為替レートを使用しており、TTL値を高くすると、新鮮なデータが表示されなくなってしまいます。

Xeのウェブサイト
Xeのウェブサイト

さらに、TTLを短く設定し、DDoS(Distributed-Denial-of-Service、分散型サービス妨害)攻撃からサイトを保護することもできます。DDos攻撃では、短期間に、様々な場所から何千ものリクエストが送られ、これがサイトを圧迫します。そんな事態であっても、TTLが短いと、頻繁にDNSを更新することができるので効果的です。

また、新しいウェブサイトの追加や、サーバーのIPアドレスの更新など、サイトに変更を加える際には、DNSのTTLを調整しておくと便利です。TTLの期間だけ古い情報がキャッシュとして保持されるため、必要に応じてTTLを短くする必要があるかもしれません。

TTLの選択方法

TTL値の決定は簡単ではありません。しかし、参考となるガイドラインがいくつかありますので、それに従って、サイトに最も適した値を選択することをおすすめします。

ほとんどのサイトでは、TTLを1〜24時間に設定することを推奨します。TTL値は秒単位で計測されるため、これは3,600〜86,400秒に相当します。

このTTL値によって、表示速度が上がり、訪問者のユーザーエクスペリエンスも向上し、結果的に直帰率減少が期待できます。一般には、長ければ長いほど良いですが、ウェブサイトのメンテナンスとの兼ね合いもお忘れ無く。

レジストリのウェブサイトを所有している場合は、1時間(3,600秒)程度のTTLを選択すると良いでしょう。一般的にはドメインが「.org」や「.com」で終わります。たとえば、Verisignなどがあります。

Verisignレジストリホームページ
Verisignレジストリホームページ

特にDNSに影響を与える変更を加える場合には、事前にTTLを300秒(5分)程度にしておくことをお勧めします。TTLが長いと、変更内容が即座に反映されない可能性があります。

また、DDoS攻撃を受けやすいサイトでは、TTLを300秒にすることを推奨します。ビジネス上、激しい競争がある場合、競合他社のウェブサイトがDDoS攻撃を使用して活動停止に追い込もうとする可能性がゼロとは言えません。さらに、物議を醸す類いのウェブサイトや、内部告発を支援するようなウェブサイトも、DDoSのターゲットとなり得ます。

最後に、DNSベースのロードバランシングについても、300秒程度の短いTTLをおすすめします。サーバーリクエストに対して、複数のサーバーがさまざまなIPアドレスを用いることで、1台のサーバーにかかる負担を軽減できます。

TTLの変更方法

ここまでで、サイトに必要なTTL値についての目処が立ったのではないでしょうか。次に、Kinstaのサイトでこの値を変更する方法を見ていきましょう。

Kinstaでは、DNSレコードのTTLを非常に簡単に変更できます。Kinstaのサイト管理画面「MyKinsta」にアクセスし、サイドバーにある「Kinsta DNS」に移動します。

MyKinstaの「Kinsta DNS」
MyKinstaの「Kinsta DNS」

「Kinsta DNS」をクリックしたら、まだの場合にはドメインを追加します。希望のドメインを選択して、「DNSレコードを追加」をクリックします。

MyKinstaの「DNSレコードを追加」>「TTL」
MyKinstaの「DNSレコードを追加」画面(「TTL」のドロップダウンメニューに注目)

ドロップダウンメニューを使って、TTLを1時間から4週間の範囲で選択できます。デフォルトは1時間です。DNSの変更や更新頻度が非常に少ない場合を除き、24時間を超える設定はお勧めしません。

この画面では、DNSレコードを細かく調整できます。KinstaのDNSでDNSレコードを設定する方法はこちらをご覧ください。Kinsta以外のホスティングをご利用の場合は、ご利用のホスティング会社に問い合わせてみてください。

まとめ

TTLは、サーバーがサイトの情報を保存する期間を制御する重要な設定です。TTL値を増減することで、ページの表示速度を引き上げ、データを最新の状態に保ちながら、一種のDDoS攻撃対策を講じることができます。

TTLは30秒から24時間までで設定できます。ただし、一般的なサイトでは、TTLを1時間から24時間の間に設定するとちょうど良いバランスになります。

サイトの表示速度を高速化するなら、Kinstaのアプリケーションホスティングデータベースホスティング、およびWordPress専用マネージドホスティングをぜひご利用ください。すべてのKinstaのホスティングプランにて、高速化&最適化を徹底した強力なインフラをご利用いただけます。