動的サイトアクセラレーション

動的サイトアクセラレーション(DSA)は、動的なウェブサイトの配信をより効率的にする一連の技術です。[ 1 ]アプリケーション配信コントローラコンテンツ配信ネットワーク(CDN)のメーカーは、動的なサイトを高速化するために、次のようなさまざまな技術を使用しています。

テクニック

TCP多重化

ADCまたは CDN のいずれかのエッジ デバイスはTCP 多重化が可能で、Web サーバーとクライアントの間に配置してオリジン サーバーの負荷を軽減し、コンテンツ配信を高速化できます。

通常、クライアントとサーバー間の各接続には、接続期間中オリジンサーバー上で稼働する専用プロセスが必要です。クライアントの接続速度が遅い場合、サーバーがリクエストの完了を待機している間、このプロセスは稼働し続けなければならないため、オリジンサーバーの一部が占有されます。TCP多重化では状況が異なります。デバイスはクライアントから完全かつ有効なリクエストを取得し、リクエストが完全に到着した時点でオリジンサーバーに送信します。これにより、ADCやCDNと比較して速度が遅く、コストも高いアプリケーションサーバーやデータベースサーバーの負荷が軽減されます。[ 2 ]

動的キャッシュ制御

HTTPには、 ETag 、expires、last modificationなどのヘッダーを用いたキャッシュ制御システムが組み込まれています。DSAを謳う多くのCDNやADCは、これを独自のシステムに置き換え、ダイナミックキャッシングまたはダイナミックキャッシュ制御と呼んでいます。これにより、標準的なHTTPキャッシュ制御よりも多くのオプションでキャッシュを無効化およびバイパスできます。[ 3 ]

動的キャッシュ制御の目的は、ウェブサイトのキャッシュヒット率、つまりキャッシュによって処理されるリクエストと通常のサーバーによって処理されるリクエストの比率を高めることです。[ 4 ]

Web 2.0ウェブサイトは動的な性質を持つため、静的なウェブキャッシュを使用することは困難です。動的なサイトは、その定義上、ユーザーや地域ごとにコンテンツがパーソナライズされているためです。例えば、モバイルユーザーに表示されるコンテンツはデスクトップユーザーに表示されるコンテンツと異なる場合があり、登録ユーザーに表示されるコンテンツは匿名ユーザーに表示されるコンテンツと異なる場合があります。登録ユーザー間でも、ソーシャルメディアウェブサイトのようにコンテンツが大きく異なる場合がしばしばあります。

動的なユーザー固有のページを静的にキャッシュすると、キャッシュ システムがコンテンツを区別できるようにする識別子 (URL/GET リクエスト) が、ユーザー固有のトークン/キーを追加することによって正しく変更されない場合、無関係なコンテンツやサードパーティのコンテンツが間違ったユーザーに提供される潜在的なリスクが生じます。

動的キャッシュ制御には、 Cookieベースのキャッシュ制御など、キャッシュを構成するためのオプションがさらに多くあります。Cookieベースのキャッシュ制御では、特定のCookieの有無に基づいてキャッシュからコンテンツを提供できます。Cookieは、ログインしたユーザーのデバイス上の一意の識別子キーを保存し、セッションを開くページを実行する際にユーザーを認証するために既に実装されています。動的キャッシュシステムでは、キャッシュはCookieキーだけでなくURLでも参照されるため、匿名ユーザーにはデフォルトのキャッシュを、ログインユーザーにはパーソナライズされたキャッシュを提供するだけで済みます(静的キャッシュシステムのように、URLにユーザー識別子を追加するためのコード変更は必要ありません)。

プリフェッチ

パーソナライズされたコンテンツがキャッシュできない場合、エッジデバイス上でキューイングされる可能性があります。これは、システムが将来必要になる可能性のあるレスポンスのリストを保存し、すぐに提供できるようにすることを意味します。これはキャッシュとは異なり、プリフェッチされたレスポンスは一度しか提供されないため、広告などのサードパーティAPIのレスポンスを高速化するのに特に役立ちます。 [ 5 ]

ルート最適化

ルート最適化(「レイテンシベースルーティング」とも呼ばれる)は、クライアントと複数のオリジンサーバー間のトラフィックのルートを最適化し、レイテンシを最小限に抑える手法です。ルート最適化は、DNSプロバイダー[ 6 ]またはCDN [ 7 ]によって実行できます。

ルート最適化とは、クライアントとオリジンサーバー間の複数のパスを測定し、それらの間の最速パスを記録することです。このパスは、特定の地理的ゾーンのクライアントからのリクエスト時にコンテンツを提供するために使用されます。[ 8 ]

フロントエンド最適化との関係

フロントエンド最適化(FEO)とDSAはどちらもオンラインコンテンツ配信を改善するための一連の技術群を指しますが、その対象は異なります。オンザフライデータ圧縮やキャッシュ制御の改善など、重複する部分もありますが、主な違いは次のとおりです。

  • FEO は実際のコンテンツの変更に重点を置いているのに対し、DSA はコンテンツに触れることなくコンテンツ配信を改善することに重点を置いています (つまり、DSA はコンテンツを逐語的に配信します)。DSA はコンテンツを変更せずにネットワーク全体のビット配信を最適化することに重点を置いているのに対し、FEO は Web サイトのダウンロードに必要なオブジェクトの数を減らしトラフィックの総量を減らすことを目指しています。これは、デバイス認識型コンテンツ提供 (画像の品質を落とすなど)、縮小リソース統合、インライン化によって実現できます。FEO は実際のトラフィックを変更するため、誤って変更されたコンテンツを提供することでユーザー エクスペリエンスに影響を与えるリスクがあり、構成がより困難になる傾向があります。
  • DSAは、特に動的サイトにおいて、ページの読み込み時間の短縮ウェブサーバーの負荷軽減に重点を置いています。FEOは、主にページの読み込み時間の短縮と帯域幅の削減に重点を置いています。FEOを導入することで、コードの書き換えなしにページの読み込み時間を短縮できるため、オリジンサーバーのコスト削減にもつながります。その結果、通常はコードの最適化に必要な工数が削減されます。また、ページの読み込み時間の短縮によって収益増加も期待できます。

参考文献

  1. ^ 「How Dynamic Site Acceleration Works? - GlobalDots」www.globaldots.com。 2013年1月21日時点のオリジナルよりアーカイブ。
  2. ^ 「TCP多重化を使用すべき3つの理由 | F5 DevCentral」 。 2014年2月26日時点のオリジナルよりアーカイブ。 2014年5月1日閲覧
  3. ^ 「IBM Knowledge Center」 . www.ibm.com . 2018年11月14日閲覧
  4. ^ 「What is Dynamic Caching | section.io」 . www.section.io . 2018年11月14日閲覧
  5. ^ 「Cloudflareはプリフェッチを実行しますか?」Cloudflareサポート2018年11月14日閲覧
  6. ^ 「Amazon Route 53 がレイテンシー ベースのルーティングを追加」
  7. ^ 「SureRoute」(PDF)www.akamai.com 2003年。2015年4月21日時点のオリジナル(PDF)からアーカイブ。 2026年1月29日閲覧
  8. ^ 「ルーティングポリシーの選択 - Amazon Route 53」 . docs.aws.amazon.com . 2018年11月14日閲覧