CDNとは?コンテンツ配信ネットワークの説明
インターネットの3大問題〈重い、遅い、止まる〉を解決
CDN(Content Delivery Network / コンテンツ・デリバリ・ネットワーク)とは、世界中に張り巡らされたCDN専用の配信ネットワークを利用し、Webサイトにアクセスしようとするエンドユーザに最も近いPoP(配信拠点)から効率的かつ高速にWebを配信するしくみです。
ユーザへのコンテンツ配信に依存度の高いビジネスにとって、CDNの利用は必須と言えます。
例えば以下のようなケースです:
- 世界中に読者を抱える人気のニュースサイト
- ユーザのフィードにマルチメディアコンテンツを配信し続けるソーシャルメディア
- 高解像度Webコンテンツをリアルタイム配信するエンターテインメントサイト(Netflixのような)
- 数百万規模の顧客を抱えるECプラットフォーム
- 世界中に分散したユーザからアクセスがあるグラフィックを多用したコンテンツ(ゲーム等)配信
これらの場合、コンテンツ配信の高速化、サービスの可用性、リソースの拡張性、そしてWebアプリケーションのセキュリティを万全に確保しなければなりません。そしてそれはすべて、CDNの利用により解決できます。
CDNの歴史
CDNは"ネット上のユーザに大量のデータを高速配信する"という課題に対処するため、約20年前に誕生しました。今日では、CDNはWebサイトにおけるコンテンツ配信の原動力の一つとなり、様々な開発者によって研究され、アップデートされ続けています。
最初のCDNは1990年代後半に構築され、現在でも世界のインターネットトラフィックの15~30%を占めています。その後、ブロードバンドコンテンツの成長、インターネット上でのオーディオ、動画、および関連データのストリーミングが増加し、より多くのCDNが開発されるようになりました。大まかに、CDNの進化期は下記のような4つの世代に分類できます:
1. 事前形成期:CDNが実際に作られる前は、必要とされる技術やインフラが開発されていました。この時期は、サーバファームの台頭、階層型キャッシング、Webサーバの改良、キャッシュプロキシの展開などが特徴的でした。ミラーリング、キャッシング、マルチホーミングもまた、CDNの開発と成長への道を切り開いたテクノロジーでした。
2. 第一世代: CDN の第一世代は、主に動的および静的コンテンツ配信に焦点を当てていました。これは、当時はWeb上には2つのコンテンツタイプのみであったためです。主要なメカニズムは、レプリカの作成と実装、インテリジェントルーティング、およびエッジコンピューティングの手法でした。そして、アプリや情報はサーバに分散されていました。
3. 第二世代:次に登場したのは、動画やオーディオコンテンツのストリーミングや、Netflix のようなビデオ・オン・デマンドのサービスをユーザやニュースポータルに提供することに焦点を当てた CDN です。この世代はまた、Webサイトのコンテンツをモバイルユーザに配信するための道を切り開き、P2Pやクラウド・コンピューティングの技術を利用するようになりました。
4. 第三世代:第三世代のCDNは、私たちが現在、新しい研究開発で進化し続けている場所です。将来的にCDNは、コミュニティ向けによりモデル化されていくことが予想されます。つまり、システムは平均的なユーザと一般の個人によって駆動されることになります。セルフ管理や自律的なコンテンツ配信と同様に、セルフ設定が新しい技術メカニズムとなることが期待されています。エンドユーザの体験の質が、今後の主要な推進力になると予想されます。
CDNは当初、CDNサービスプロバイダの数とともに動画ストリーミングの需要が高まっていたため、極端な帯域幅のプレッシャーに対処するために進化しました。世代ごとの接続性の進歩と新しい消費動向により、CDNサービスの価格は下落し、マス市場向けの技術となりました。また、クラウド・コンピューティングの普及により、CDNはビジネスのあらゆるレイヤで重要な役割を果たしています。 これは、SaaS(Software as a service:ソフトウェアサービス)、IaaS(Infrastructure as a service:インフラサービス)、PaaS(Platform as a service:プラットフォームサービス)、BPaaS(Business Process as a service:ビジネスプロセスサービス)などのモデルの鍵となります。
CDNのしくみ
CDN は、ユーザーとオリジン (Web またはアプリケーション サーバー) の間の物理的な距離を縮めることによって機能します。これには、オリジンよりもサーバーのはるかに近い場所にコンテンツを格納するサーバーのグローバルに分散されたネットワークが含まれます。これをよりよく理解するには、CDN の有無にかかわらず、ユーザーが Web サイトから Web コンテンツにアクセスする方法を調べることが役立ちます。
CDNを利用しない場合
ユーザーが Web サイトをブラウザーに入力すると、次の図のような接続が確立されます。 Web サイト名は、ローカル DNS または LDNS ( DNS サーバー ISP またはパブリック DNS 解決サーバーによって提供されます)。 DNS または LDNS が IP アドレスを解決できない場合、上流の DNS サーバーに解決を再帰的に要求します。最終的に、要求は、ゾーンがホストされている権限のある DNS サーバーに渡される場合があります。この DNS サーバーはアドレスを解決し、ユーザーに返します。
次に、ユーザーのブラウザーがオリジンに直接接続し、Web サイトのコンテンツをダウンロードします。後続の各リクエストはオリジンによって直接処理され、静的アセットはユーザーのマシンでローカルにキャッシュされます。同様の場所または別の場所から別のユーザーが同じサイトにアクセスしようとすると、同じシーケンスが実行されます。毎回、ユーザーのリクエストがオリジンに届き、オリジンはコンテンツで応答します。途中の各ステップは、遅延、つまり「レイテンシー」を追加します。オリジンがユーザーから遠く離れていると、応答時間に大きな遅延が生じ、ユーザー エクスペリエンスが低下します。
CDNを利用する場合
ただし、CDN が存在する場合、プロセスは少し異なります。ユーザーが開始した DNS 要求が LDNS によって受信されると、LDNS はその要求を CDN の DNS サーバーの 1 つに転送します。これらのサーバーは、グローバル サーバーの一部です。 ロードバランサー インフラストラクチャ (または「GSLB」)。 GSLB は、文字通りインターネット全体を測定し、利用可能なすべてのリソースとそのパフォーマンスに関する情報を追跡し続ける負荷分散機能に役立ちます。この知識に基づいて、GSLB は最もパフォーマンスの高いエッジ アドレス (通常はユーザーに近い) を使用して DNS 要求を解決します。 「エッジ」とは、Web コンテンツをキャッシュして配信する一連のサーバーです。
DNS 解決が完了すると、ユーザーはエッジに対して HTTPS 要求を行います。エッジがリクエストを受信すると、GSLB サーバーは、エッジ サーバーがオリジンへの最適なルートに従ってリクエストを転送するのを支援します。次に、エッジ サーバーは要求されたデータを取得し、それを要求したエンド ユーザーに配信し、そのデータをローカルに保存します。後続のすべてのユーザー リクエストは、ローカル データセットから提供され、クエリを実行する必要はありません。 オリジンサーバー また。オリジンが何らかの理由で利用できなくなった場合でも、エッジに保存されたコンテンツを配信できます。
なぜCDNを利用するのか
CDN は、遅延を最小限に抑え、Web サイトのパフォーマンスを向上させ、帯域幅のコストを削減することで、企業がコンテンツをエンド ユーザーに効果的に配信するのに役立ちます。
CDN のもう 1 つのユニークな機能は、エッジ サーバーが事前にコンテンツをプリフェッチできることです。これにより、配信するデータがすべての CDN データ センターに保存されます。 CDN 用語では、これらのデータセンターは Point of Presence (または「POP」) と呼ばれます。 PoP は、Web コンテンツを Web サイト訪問者に近づけることで、往復時間を最小限に抑えるのに役立ちます。
たとえば、広告キャンペーンを実施し、何百万人もの見込み顧客にサービスや製品を宣伝するとします。投稿を読んだ後、多数の顧客がサイトに殺到することが予想される場合があります。オーディエンスのエンゲージメント率が高いインフルエンサーと取引すると、トラフィック量がさらに急増する可能性があります。オリジンサーバーがこのボリュームの急増を一度に処理できると確信できますか?
このようなシナリオでは、CDN はエッジ サーバー間で負荷を分散するのに役立ち、全員が応答を受け取ることができます。ごく一部のリクエストのみがオリジンに到達するため、サーバーで大量のトラフィック スパイク、502 エラー、アップストリーム ネットワーク チャネルの過負荷が発生することはありません。
CDNを利用するメリット
ビジネスの規模とニーズに応じて、CDN の利点は 4 つの異なるコンポーネントに分類できます。
Webサイトページの読み込み速度の改善
近くの CDN サーバーを使用して Web コンテンツを Web サイト訪問者の近くに配信できるようにすることで (他の最適化の中でも)、訪問者は Web ページの読み込み時間が短縮されます。通常、訪問者は、ページの読み込み時間が長い Web サイトをクリックしたり、そこから離れたりする傾向があります。これは、検索エンジンでの Web ページのランキングにも悪影響を及ぼす可能性があります。そのため、CDN を使用すると、直帰率を減らし、ユーザーがサイトに費やす時間を増やすことができます。言い換えれば、読み込みが速いウェブサイトは、より多くの訪問者をより長く維持します。
帯域幅コストの削減
オリジンサーバーがリクエストに応答するたびに、帯域幅が消費されます。帯域幅消費のコストは、企業にとって大きな出費です。キャッシングやその他の最適化により、CDN はオリジン サーバーが提供する必要のあるデータ量を削減できるため、Web サイト所有者のホスティング コストを削減できます。
コンテンツの可用性と冗長性の向上
大量の Web トラフィックまたはハードウェア障害により、通常の Web サイト機能が中断され、ダウンタイムが発生する可能性があります。分散型の性質のおかげで、CDN は多くのオリジン サーバーよりも多くの Web トラフィックを処理し、ハードウェア障害に耐えることができます。さらに、1 つまたは複数の CDN サーバーが何らかの理由でオフラインになった場合、他の稼働中のサーバーが Web トラフィックを取得し、サービスが中断されないようにすることができます。
Webサイトのセキュリティの向上
CDN がトラフィック スパイクを処理するのと同じプロセスにより、DDoS 攻撃を緩和するのに理想的です。これらは、悪意のあるアクターが大量のリクエストを送信して、アプリケーションまたはオリジン サーバーを圧倒する攻撃です。ボリュームが原因でサーバーがダウンすると、ダウンタイムが顧客の Web サイトの可用性に影響を与える可能性があります。 CDN は基本的に、GSLB とエッジ サーバーがネットワークの容量全体に均等に負荷を分散する DDoS 保護および軽減プラットフォームとして機能します。 CDN は、証明書の管理と自動証明書の生成と更新も提供できます。
CDNは他にどのように役立つか
CDN は、上記で説明した利点に限定されません。最新の CDN プラットフォームは、ビジネス チームとエンジニアリング チームにさらに多くの利点をもたらします。
地球上のさまざまな地域からのアクセスを管理するために使用できます。一部のリージョンへのアクセスを許可する一方で、他のリージョンへのアクセスを拒否できます。
アプリケーション ロジックをエッジや顧客の近くに簡単にオフロードできます。リクエスト/レスポンスのヘッダーと本文を処理して変換したり、リクエスト属性に基づいて異なるオリジン間でリクエストをルーティングしたり、認証タスクをエッジに委任したりできます。
大量のトラフィックには、ログの収集と詳細な分析のための処理のためのインフラストラクチャが必要です。 CDN はログを収集し、訪問者によって生成されたデータを便利に分析するためのインターフェイスを提供します。
慣れれば使いやすくなるのは当然です。そのため、CDN Pro エッジは NGINX ベースです。これは、標準の NGINX ディレクティブを使用してタスクを実行できることを意味します。
当社のエンジニアリング チームは、NGINX の拡張に何千時間も費やしました。
データセキュリティとCDN
情報セキュリティは、CDN の不可欠な部分です。 CDN は、次の方法で Web サイトのデータを保護するのに役立ちます。
TLS/SSL証明書の提供
CDN は、高水準の認証、暗号化、整合性を確保するトランスポート レイヤー セキュリティ (TLS)/セキュア ソケット レイヤー (SSL) 証明書を提供することで、サイトの保護に役立ちます。これらは、ユーザーと Web サイト間のデータ転送で特定のプロトコルが守られていることを保証する証明書です。
データがインターネット経由で転送されると、悪意のあるアクターによる傍受に対して脆弱になります。これは、意図した受信者だけが情報をデコードして読み取ることができるように、プロトコルを使用してデータを暗号化することで対処されます。 TSL と SSL は、インターネット経由で送信されるデータを暗号化するプロトコルです。これは、Secure Sockets Layer (SSL) のより高度なバージョンです。 Web サイトが http:// ではなく https:// で始まる場合、Web サイトが TLS/SSL 証明書を使用しているかどうかがわかります。これは、ブラウザーとサーバー間の通信に十分安全であることを示しています。
DDoS攻撃からの防御
CDN はネットワークのエッジに展開されるため、Web サイトや Web アプリケーションへの攻撃に対する高度なセキュリティ フェンスとして機能します。分散したインフラストラクチャとオンエッジの位置により、CDN はDDoS フラッドのブロックにも最適です。これらのフラッドはコア ネットワーク インフラストラクチャの外部で軽減する必要があるため、CDN は送信元に応じて異なる PoP で処理し、サーバーの飽和を防ぎます。
Botやクローラーをブロック
CDN は、脅威をブロックし、不正なボットやクローラーが帯域幅やサーバー リソースを使い果たすのを制限することもできます。これにより、他のスパムやハッキング攻撃を制限し、帯域幅のコストを抑えることができます。
Webパフォーマンス向上
静的コンテンツとは、エンドユーザーに配信する前に生成、処理、または変更する必要のないアセットを指します。これらは、画像やその他のメディア ファイル、あらゆる種類のバイナリ、またはアプリケーションの静的部分 (HTML、CSS、JavaScript ライブラリ、JSON、HTML、または頻繁に変更されないあらゆる種類の動的応答など) である可能性があります。前述のように、そのようなコンテンツを事前にプリフェッチできます。次に、そのようなコンテンツを無効にしてエッジ サーバーから削除する必要がある場合は、必要なパスを消去できます。
動的アクセラレーションは、動的な性質のためにエッジにキャッシュできないものに適用されます。サーバーまたは API エンドポイントからのイベントをリッスンする WebSocket アプリケーションを想像してみてください。その応答は、資格情報、地理的な場所、またはその他のパラメーターによって異なります。静的コンテンツをキャッシュするのと同じように、エッジでキャッシュ機構を活用するのは困難です。場合によっては、アプリと CDN の緊密な統合が役立つことがあります。ただし、場合によっては、キャッシング以外のものを使用する必要があります。動的な高速化のために、CDN の最適化されたネットワーク インフラストラクチャと高度な要求/応答ルーティング アルゴリズムが使用されます。
課金モデル:何にお金を払うのか
従来、CDN では、エンドユーザーが消費したトラフィックとリクエストの量に対して料金を支払います。さらに、HTTPS 要求は HTTP 要求よりも多くのコンピューティング リソースを必要とするため、CDN プロバイダーの機器により多くの負荷がかかります。このため、HTTPS リクエストには追加料金が発生しませんが、HTTPS リクエストには追加料金が発生する場合があります。
演算がエッジに移行すると、CPU が課金の対象になります。リクエストにはさまざまな処理パイプラインが含まれている可能性があり、その結果、さまざまな量の CPU 時間が必要になります。リクエスト数で請求するのは現実的ではありません。トラフィック量 + CPU 使用時間で請求する方が実用的です。
CDN コンポーネントの説明
さまざまな要素が CDN を構成し、CDN が本来のパフォーマンスを発揮できるようにします。
ここでは、3 つの主要コンポーネントの役割について簡単に説明します。
ポイント オブ プレゼンス (PoP) – PoP は、ユーザー間の通信を高速化するために戦略的に配置されたデータ センターです。 Web サイトのコンテンツと訪問者の間のギャップを埋めることで、ユーザー エクスペリエンスが大幅に高速化され、中断が少なくなります。
キャッシュ サーバー – これらは、キャッシュされたファイルの保存と配信を担当するコンポーネントです。それらの主な機能は、ウェブサイトの読み込み時間を短縮すると同時に、帯域幅の消費を削減することです.
ストレージ(SSD/HDD + RAM) – 検索されたすべてのデータは、SSD (ソリッド ステート ドライブ)、HDD (ハードディスク ドライブ)、または RAM (ランダム アクセス メモリ) にあります。最も一般的に使用されるこれらのファイルは、通常、最も高速なメディアである RAM に保持されます。
さまざまな種類の CDN
すべての CDN が同じように動作するわけではなく、特定の種類のコンテンツを提供するのに適した CDN もあります。選択できる 3 種類の CDN は次のとおりです。
ピアツーピア CDN
以前に torrent を使用したことがある場合は、ピアツーピア CDN のしくみを既に知っている可能性があります。
この CDN は、ピア ツー ピア プロトコルを使用して機能します。ピア ツー ピア CDN では、コンテンツはエッジ サーバーにキャッシュされません。代わりに、コンテンツにアクセスするネットワーク内のすべてのユーザーもコンテンツを共有します。
したがって、たとえば、ユーザーが torrent から映画をダウンロードすると、その映画の一部がバックグラウンドで他のユーザーと共有されます。これは、高価なハードウェアを必要としないため、非常に費用対効果が高くなります。
CDN をプッシュ
プッシュ CDN では、ウェブサイトの所有者または開発者としてのあなたが単独で責任を負います。
リクエストが行われたときに PoP サーバーが Web ページ データをプルするのを待つ代わりに、リクエストが行われる前であっても、必要なコンテンツを PoP サーバーにプッシュしています。この情報とそれに関連する要素は、削除またはパージされるまでキャッシュに保存されます。
プッシュ CDN を使用すると、完全に制御できます。 PoP サーバーにプッシュする内容は、Web 訪問者が Web リクエストを行ったときに Web 訪問者のデバイスに表示されるものです。
元のプル CDN
オリジン プル CDN は、その名前が示すように、オリジン サーバーから Web ページ データやその他の要素をプルする PoP サーバーを含みます。
CDN は、リクエストを受信したときに Web ユーザーに提供する情報を決定します。
たとえば、クライアントが CDN から静的アセットをフェッチする必要があるリクエストを送信した場合、CDN に静的アセットがない場合は、オリジン サーバーから新しく更新されたアセットをフェッチし、そのキャッシュにこの新しいアセットを入力します。次に、この新しいキャッシュされたアセットをユーザーに送信します。
プッシュ CDN とは対照的に、CDN ノードのキャッシュ更新はクライアントからオリジン サーバーへの要求に基づいて実行されるため、メンテナンスが少なくて済みます。
誰が CDN を使用しますか?
CDN は、ネットワークのプレゼンスと可用性を最適化し、顧客に優れたユーザー エクスペリエンスを提供するために、さまざまな規模の企業で使用されています。 CDN は、次の業界で特に人気があります。
- 広告
- デジタルパブリッシング
- オンライン ビデオ & オーディオ
- ゲーム CDN
- 教育関連
- 電子商取引
- 公的機関
- 政府
- 銀行および金融サービス
- SaaS
CDNetworks を選ぶ理由
CDNetworks は、完全に統合されたクラウドおよびエッジ コンピューティング ソリューションを備えた、世界をリードするコンテンツ配信ネットワーク (CDN) です。
2,800 を超える PoP とテラビット レベルの帯域幅容量を備えた当社のソリューション CDN Pro は、すべての主要ネットワークの世界中の ISP プロバイダーとピアリングし、低レイテンシと最適なパフォーマンスでコンテンツを配信します。