CDNの主なメリットは、コンテンツを迅速かつ効率よく配信できることです。CDNパフォーマンスの最適化は、3つのカテゴリーに分類できます。CDNガイドをご覧ください。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
インターネットに接続するほぼ全員が、コンテンツ配信ネットワーク(CDN)のメリットを享受しています。Google、Apple、Microsoftなどを含むテクノロジー企業の大半は、CDNを使用してWebページのコンテンツを読み込む際の遅延を低減しています。
通常、CDNはさまざまなネットワークの相互接続点にサーバーを配置します。こうしたインターネットエクスチェンジポイント(IXP)は、ネットワーク上のリソースへの相互アクセスを提供するために、さまざまなインターネットプロバイダーが相互に結び付く主要な場所です。IXPに加えて、可能な限り迅速にトラフィックを転送できるように、CDNは全世界のトラフィックの多い地域や戦略的な場所にあるデータセンターにサーバーを配置します。
CDNの主なメリットは、コンテンツを迅速かつ効率よく配信できることです。CDNパフォーマンスの最適化は次の3つのカテゴリーに分類できます:
CDNを使用するメリットを理解するために、CDNを使用しない通常のクライアント/サーバー間のデータ転送を見ていきましょう。
ニューヨークにいる誰かがシンガポールのサーバー上でホストされているWebサイトにアクセスする必要があると想像してみてください。この2都市間の物理的な距離は大きく、15,321キロほど離れています。
Webサイトのコンテンツをホストするサーバー(オリジンサーバー)がシンガポールにある場合、各Webサイトのアセットに対する各リクエストはニューヨークとシンガポール間を行き来しなければなりません。これは多くの乗り継ぎがある国際便を利用するようなもので、各リクエストはA地点からB地点までの長距離移動で一連のルーターを経由しなければなりません。
コンピューターが現在の場所から特定のWebサービスに到達するまでに、いくつの接続(ホップ)を経由するかについて、実例をみるには、デスクトップコンピューターでTraceroute(トレースルート)を使用してネットワークの経路情報を調べることができます。
ニューヨークからシンガポールまでのリクエストはルーターのある各地点を通過する必要があるため、各ルーターがリクエストを処理するのに要する距離の合計と時間の両方によって所要時間(遅延)が増加します。オリジンサーバーがリクエストを処理してリクエストの送信元であるクライアントに応答すると、同様のルーター経路を使ってニューヨークに情報を送信します。この往復時間の測定を通信業界では「ラウンドトリップタイム(RTT)」と呼んでいます。可用帯域幅と潜在的なネットワーク輻輳は無視して、遅延要因の例を見てみましょう。
ここでは説明のために、次のように仮定します:
このWebページを読み込むのにどれくらいの時間がかかるかを見てみましょう:
この単純な例では、このWebページを読み込むための合計転送時間は約3000ミリ秒です。
ご覧のとおり、リクエストが実行されてレスポンスが送信されるたびに、ニューヨークのクライアントとシンガポールのオリジン間のパス全体を横断することになります。Webサイトが大きくなるにつれて、必要となるアセットの数が増え、A地点とB地点の間の遅延は増加し続けます。
ニューヨークのクライアントに提供されるシンガポールでホストされているコンテンツの例に戻りましょう。ただし、今度はシンガポールのサイトでCDNを使用していて、静的Webサイトのキャッシュされたコピーを含むサーバーがアトランタにあるとします:
CDNを使用してこのWebページを読み込むのにどれくらいの時間がかかるかを見てみましょう:
このWebページを読み込むための合計転送時間は約1100ミリ秒です。
この例では、クライアントとコンテンツ間の距離の減少により静的コンテンツの遅延が1900ミリ秒短縮されます。ロード時間では約2秒の短縮です。
移動する必要のあるすべてのトラフィックの合計距離を減らすことで、そのWebサイトの各ユーザーはロード時間を短縮することができます。ユーザーは、待ち時間が長くなるとサイトを瞬時に去る(直帰する)ため、このロード時間の短縮は、ユーザーエクスペリエンスの向上とページにおけるユーザーの滞在時間の増加につながります。
前述のように、通常、クライアントがオリジンサーバーにファイルを要求すると、そのリクエストはクライアントとサーバー間を往復する必要があります。CDNは、キャッシングというプロセスで、オリジンサーバーから静的コンテンツファイルを取り出して分散したCDNネットワーク上で配信することで遅延を低減します。一部のCDNには、動的コンテンツの選択的なキャッシングを可能にする高度な機能もあります。データがキャッシュされると、CDNは、最も近いCDNデータセンターからコンテンツをクライアントに提供します。
TCPハンドシェイクが確立されると、クライアントマシンはCDNネットワークにHTTPリクエストを実行します。コンテンツがまだキャッシュされていない場合、CDNはオリジンサーバーとCDNのエッジサーバー間で追加のリクエストを実行することで、まずオリジンからコンテンツをダウンロードします。
典型的なCDNキャッシングにおける4つの手順は以下のとおりです:
CDNとクライアントの距離が縮まることで価値が生まれるのは、オリジンサーバーへの最初のリクエストが行われた後です。データがオリジンサーバーからCDNのネットワークにキャッシュされると、クライアントから出た後続の各リクエストは、最も近いエッジサーバーまで行くだけで済みます。これは、最も近いエッジサーバーがオリジンサーバーより近ければ、レイテンシーを低減でき、コンテンツは飛躍的に速く提供できることを意味します。
アセットをダウンロードしてリクエストとレスポンスを処理するのに必要な時間は現在含まれていないことに注意することが重要です。これまでのところ、この2地点間で情報を転送するのに必要な移動時間のみが計算されています。ほかに考慮すべき重要な遅延の要因には、データの削減、ハードディスクの速度、ネットワーク輻輳などがあります。
ページのロード時間を短縮するために、CDNはCDNのキャッシュサーバーとクライアント間の全体的なデータ転送量を削減します。転送されるデータの全体量が減少すれば、遅延と必要な帯域幅の両方が低減します。その結果、ページの読み込みが速くなり、帯域幅コストが下がります。この現象には2つの主要コンポーネントが関わっています:
縮小 - 縮小とは、コードブロックのサイズを縮小するために、人間が起きていることを理解するのに役立つすべてのコンポーネントを削除するプロセスのことです。エンジニアは、コードブロックを判読可能かつ管理可能にするために、概念を適切な変数名、スペース、コメントに分割する必要がありますが、コンピューターはそうした文字が削除されてもコードを正常に実行できます。
これが縮小前と縮小後のコードブロックです:
縮小前:8行のコード
縮小後:1行のコードに縮小
コードスニペットが8行から1行に縮小されたので、ファイルサイズ全体も縮小されました。つまり、ファイルの転送時間が短縮され、遅延が低減し、コンテンツの読み込み速度の短縮につながります。
ファイル圧縮 - ファイル圧縮は、インターネット経由でデータを転送するときに遅延と必要な帯域幅の消費を低減するための不可欠な構成要素です。GZipは、一般的な圧縮方法であり、Webページを転送するときに使用するのが最善であるとされています。多くのCDNプロバイダーはデフォルトでGZipを有効にしています。GZip圧縮によってサイズはどの程度縮小されるのでしょうか?通常、圧縮されたファイルは、元のファイルサイズの約50%~70%です。
CDNハードウェアの最適化に関して言えば、従来のハードディスクドライブ(HDD)よりもソリッドステートハードドライブ(SSD)の方が大きなメリットがあります。ソリッドステートドライブは、従来のハードディスクドライブよりも最大30%速くファイルを開くことができ、より高い復元性と信頼性を備えています。
レコードプレイヤーのように、従来のハードディスクドライブは、データを保管する磁気コーディングが施された回転する円形の金属ディスクで構成されています。アームの読み取り/書き込みヘッドは、ディスクがその下で回転するときに情報にアクセスします。このプロセスは機械的であり、ディスクの回転速度に影響されます。ソリッドステートドライブの出現により、旧式のハードドライブはあまり使用されなくなりましたが、現在でも製造されていて、多くのコンピューターシステムで広く使用されています。
ソリッドステートドライブ(SSD)は永続ストレージの一形態でもありますが、機能はUSBサムドライブやデジタルカメラのようなデバイスでよく見られるようなメモリーカードの形態に近く、可動部分はありません。通常のハードディスクが回転していて、システムが拮抗している場合、HDDはスキップして、読み取り/書き込みエラーや潜在的なダウンタイムが発生する可能性があります。SSDのもう1つの重要なメリットは、断片化したファイルにアクセスすることです。ファイルの断片化とは、ファイルの一部がディスクのあちこちに分散していて、HDDドライブのアクセスを遅くする状態のことを言います。SSDは不連続のメモリー箇所に効率よくアクセスできるので、断片化はパフォーマンスにとって脅威になりません。
初期のCDNでは、データはハードディスクドライブに保存されていました。現在、一部のCDNサービスでは、すべてのエッジ側のキャッシングがソリッドステートドライブ上で処理されています。SSDの欠点は費用です。SSDは従来のメディアより最大で5倍以上高額になる場合があります。そのため、CDNサービスの中にはSSDを使用することを避けて、古いテクノロジーを選択することも多いです。Cloudflare CDNはSSDのみを使用します。