Azure Content Delivery Network による動的サイト アクセラレーション

ソーシャル メディア、電子商取引、高度にパーソナライズされた Web の爆発的な普及に伴って、リアルタイムでエンドユーザーに対して生成されるコンテンツの割合が急増しています。 ユーザーは、ブラウザー、場所、デバイス、ネットワークに依存しない、高速で信頼性の高いパーソナライズされた Web エクスペリエンスを求めています。 ただし、これらのエクスペリエンスを実現できる新技術は非常に魅力的ですが、ページのダウンロード速度が遅く、コンシューマー エクスペリエンスの質を低下させるリスクがあります。

Content Delivery Network の標準機能には、エンド ユーザーの近くにファイルをキャッシュして、静的ファイルの配信を高速化する機能が含まれます。 ただし、動的な Web アプリケーションでは、サーバーがユーザーの行動に応答してコンテンツを生成するため、コンテンツを特定の場所にキャッシュすることはできません。 このようなコンテンツの配信速度を向上させることは、従来のエッジ キャッシュよりも複雑であり、その発端から配信までのデータ パス全体で各要素を微調整するエンド ツー エンド ソリューションが必要です。 Azure Content Delivery Network の動的サイト アクセラレーション (DSA) の最適化を使うと、動的コンテンツを含む Web ページのパフォーマンスが明らかに向上します。

Azure CDN from Edgio では、エンドポイント作成中の [最適化の対象] メニューを通して、DSA の最適化が提供されます。 Microsoft の動的サイト アクセラレーションは、Azure Front Door によって提供されます。

重要

Azure CDN from Edgio プロファイルでは、コンテンツ配信ネットワーク エンドポイントの作成後にその最適化を変更することはできません。

動的ファイルの配信を高速化するコンテンツ配信ネットワーク エンドポイントの構成

動的ファイルの配信を最適化するようにコンテンツ配信ネットワーク エンドポイントを構成するには、Azure portal を使用でき、REST API またはいずれかのクライアント SDK を使うとプログラムでも同じことができます。

Azure Portal を使用して、DSA 最適化を使用するように CDN エンドポイントを構成するには

  1. [CDN プロファイル] ページで、[エンドポイント] を選択します。

    新しいコンテンツ配信ネットワーク エンドポイントの追加のスクリーンショット。

    [エンドポイントの追加] ウィンドウが表示されます。

  2. [最適化の対象][動的サイトの高速化] を選択します。

    DSA での新しいコンテンツ配信ネットワーク エンドポイントの作成のスクリーンショット。

  3. [プローブのパス] にファイルの有効なパスを入力します。

    プローブのパスは DSA に固有の機能であり、エンドポイントを作成するには有効なパスが必要です。 DSA は、配信元サーバーに配置された小さな "プローブ パス" ファイルを使って、コンテンツ配信ネットワークのネットワーク ルーティング構成を最適化します。 プローブ パス ファイルについては、サンプル ファイルをダウンロードしてサイトにアップロードすることも、配信元にあるサイズが約 10 KB の既存の資産を使用することもできます。

  4. 他の必要なエンドポイント オプションを入力して (詳しくは、「新しい CDN エンドポイントの作成」を参照)、[追加] を選びます。

    コンテンツ配信ネットワーク エンドポイントは、作成された後、特定の条件に一致するすべてのファイルに DSA 最適化を適用します。

Azure Content Delivery Network を使用した DSA の最適化

Azure Content Delivery Network の動的サイト アクセラレーションは、次の手法を使って動的資産の配信を高速化します。

ルートの最適化

インターネットは動的な環境であり、トラフィックと一時的な停止によってネットワーク トポロジが常に変化しているため、ルートを最適化することが重要です。 インターネットのルーティング プロトコルは Border Gateway Protocol (BGP) ですが、中間のポイント オブ プレゼンス (POP) サーバーを経由するもっと高速なルートが存在する可能性があります。

ルートの最適化では、サイトに継続的にアクセスでき、候補の中で最も高速かつ最も信頼性の高いルート経由でエンドユーザーに動的なコンテンツを配信できる、配信元にとって最も最適化された経路が選択されます。

Edgio ネットワークは、Anycast DNS、大容量をサポートする PoP、正常性チェックの組み合わせを使って、クライアントから配信元にデータをルーティングするのに最適なゲートウェイを決定します。

その結果、完全に動的なトランザクション コンテンツが、コンテンツをキャッシュできない場合でも、短時間で確実にエンドユーザーに配信されます。

TCP の最適化

伝送制御プロトコル (TCP) は、IP ネットワーク上のアプリケーション間で情報を配信するために使われる標準的なインターネット プロトコル スイートです。 既定では、TCP 接続の確立には複数の双方向要求が必要です。 さらに、ネットワークの輻輳を防ぐための制限が設けられており、大規模の運用ではそのために非効率になる可能性があります。 Azure CDN from Edgio では、次の 3 つの領域を最適化して、この問題に対処します。

TCP スロー スタートの排除

TCP スロー スタートは、ネットワーク経由で送信されるデータの量を制限することでネットワークの輻輳を回避する TCP プロトコルのアルゴリズムです。 スロー スタートでは、送信側と受信側の間で小さな輻輳ウィンドウ サイズから始めて、最大サイズに達するかパケットの消失が検出されるまで送信量を増やしていきます。

Azure CDN from Edgio プロファイルは、次の 3 つのステップで TCP スロー スタートを排除します。

  1. 正常性と帯域幅の監視を使って、エッジ POP サーバー間の接続の帯域幅を測定します。

  2. メトリックはエッジ POP サーバー間で共有されるので、各サーバーは、周囲にある他の POP サーバーのネットワークの状態とサーバーの正常性を認識できます。

  3. コンテンツ配信ネットワーク エッジ サーバーは、近接する他のコンテンツ配信ネットワーク エッジ サーバーと通信するときに、最適なウィンドウ サイズなどの一部の伝送パラメーターを推測します。 このステップは、コンテンツ配信ネットワーク エッジ サーバー間の接続の状態が、高いパケット データ転送に対応できる場合は、最初の輻輳ウィンドウ サイズを大きくできることを意味します。

永続的な接続の使用

コンテンツ配信ネットワークを使っている場合、配信元サーバーに直接接続されるユーザーの数よりも少ない数の一意のコンピューターが配信元に直接接続されます。 また、Azure Content Delivery Network は、配信元との間に確立する接続の数を減らすため、ユーザーの要求をまとめてプールします。

前述のように、TCP 接続を確立するには、複数のハンドシェイク要求が必要となります。 Keep-Alive HTTP ヘッダーによって実装される永続的な接続では、複数の HTTP 要求に既存の TCP 接続を再利用することで、ラウンド トリップ時間を短縮し、配信を高速化します。

Azure CDN from Edgio では、TCP 接続経由で定期的にキープアライブ パケットを送信して、開いている接続が閉じられるのを防ぎます。

キャッシュ

DSA では、配信元の応答に Cache-Control または Expires ヘッダーが含まれている場合でも、コンテンツ配信ネットワークのキャッシュは既定で無効になります。 通常、DSA は、各クライアントに固有であるためにキャッシュする必要のない動的資産に使用されます。 キャッシュによって、この動作が壊れる可能性があります。

静的資産と動的な資産が混在している Web サイトがある場合は、最高のパフォーマンスを得るために複数の方法を使用することをお勧めします。

Azure CDN Standard from Edgio プロファイルでは、キャッシュ規則を使って、特定の DSA エンドポイントのキャッシュを有効にできます。

キャッシュ規則にアクセスするには:

  1. [CDN のプロファイル] ページの設定で、[キャッシュ規則] を選びます。

    コンテンツ配信ネットワークの [キャッシュ規則] ボタンのスクリーンショット。

    [キャッシュ規則] ページが開きます。

  2. グローバル キャッシュ規則またはカスタム キャッシュ規則を作成して、DSA エンドポイントのキャッシュを有効にします。

Azure CDN Premium from Edgio プロファイルの場合のみ、ルール エンジンを使って、特定の DSA エンドポイントのキャッシュを有効にすることができます。 作成されたルールは、プロファイルの DSA に最適化されているエンドポイントにのみ影響します。

ルール エンジンにアクセスするには:

  1. [CDN プロファイル] ページで、 [管理] を選択します。

    コンテンツ配信ネットワーク プロファイルの [管理] ボタンのスクリーンショット。

    コンテンツ配信ネットワーク管理ポータルが開きます。

  2. コンテンツ配信ネットワーク管理ポータルで、[ADN] を選んでから、[ルール エンジン] を選びます。

    DSA のルール エンジン

2 つのコンテンツ配信ネットワーク エンドポイントを使うこともできます。DSA を使って最適化された一方のエンドポイントでは動的資産を配信し、静的な最適化 (一般的な Web 配信など) を使って最適化されたもう一方のエンドポイントではキャッシュ可能な資産を配信します。 Web ページの URL を変更して、使う予定のコンテンツ配信ネットワーク エンドポイントの資産に直接リンクします。

例: mydynamic.azureedge.net/index.html は動的ページであり、DSA エンドポイントから読み込まれます。 この HTML ページは、静的なコンテンツ配信ネットワーク エンドポイント (mystatic.azureedge.net/banner.jpgmystatic.azureedge.net/scripts.js など) から読み込まれる JavaScript ライブラリや画像などの複数の静的資産を参照しています。