Home 技術記事 ライブストリーミング用にCDNを最適化する
Applications

ライブストリーミング用にCDNを最適化する

About The Author

Outline

フラッシュクラウドとライブストリーム

ストリーミングサービスが限られた視聴者を獲得し、注目度が低下する中、ライブイベントは視聴者エンゲージメントの原動力となっており、パブリッシャーのコンテンツ戦略において重要な要素となっている。 しかし、ライブストリーミングが確実に視聴者を配信できるだけでなく、大規模なライブイベントの確実なストリーミングにはいくつかの課題がある。 コンテンツ配信ネットワーク(CDN)はオンデマンドの拡張性を提供するのに役立つが、CDNでさえライブストリーミング用に最適化する必要がある。 おそらく最も明白なライブストリーミングの課題は、「フラッシュクラウド」である。これは、多くの視聴者が一度にライブストリームに入るときに発生する現象であり、キックオフや残業のアクションをキャッチすることに飢えている。 10万以上のスポーツイベントをストリーミングして観察した典型的な視聴者行動に続き、NBAファイナルゲーム6では、視聴者数がほぼゼロだった第3四半期には視聴者数がピークの204万人に急増した。 視聴回数は1万回未満から1時間で100万回以上、半時間後には150万回に急増し、時には1分あたり10万回以上の視聴者を獲得した。 この種の急速な規模はあらゆるCDNに圧力をかける。 しかし、ライブビデオの配信はさらに困難である。 中断は再生の中断につながる可能性がある。

このネットワーク上の最近のライブイベントの例が示すように、「フラッシュクラウド」現象は、通常のコンテンツバイトを提供するよりもCDNを介したビデオの提供を困難にする。

この記事では、フラッシュクラウドやその他の課題を取り上げ、Verizon MediaがCDN分野における長年の経験を活用して、顧客の共通の問題点を解決し、高品質のライブイベントを配信するための正しい選択をしている方法を探る。スポーツ、コンサート、政治など、あるいは火星への最初の着陸。

ライブストリームキャッシュが異なる理由

インターネット経由でライブイベントを配信するには、MPEG-DASH、Apple HLS、Adobe HDS、Microsoft Smooth Streamingなど、1つ以上のABR(アダプティブビットレート)ストリーミング形式を使用する必要がある。 通常、コンテンツを大規模に配信するために、オリジンとして標準のHTTP Webサーバに依存し、CDNに依存する。

Verizon Media(現在Edgio)の大規模なグローバルCDNは、多くのPoPと250 Tbps以上の容量を備えているため、大規模なトラフィックスパイクやフラッシュクラウドに対応するために簡単に拡張できる。 しかし、容量と規模は方程式の一部に過ぎない。 ライブストリーミングで特に重要なのは、CDNがオリジンサーバーとクライアントとうまくやり取りしながら、同時に大量の視聴者に合わせてスケーリングできるかどうかである。

ライブトラフィックプロファイルは他のものとは異なり、VODからであっても明らかに異なる。ライブイベント中、エンコーダは継続的に新しいメディアセグメントをオリジンサーバーに発行し(通常は2~10秒)、CDNは常に新しくリリースされたコンテンツを取得してネットワークを介して伝播するからである。 この処理にはゼロではない時間がかかるため、ある程度の遅延は避けられない。 しかし、CDNがキャッシュを満たし、キャッシュを埋めるプロセスを開始する前に、さらに重要なことに、キャッシュを埋めるプロセスを開始する際に、キャッシュを埋めることとクライアント要求を処理することについて非常に効率的で賢いことが重要である。 理想的には、CDNはオリジンサーバーの負荷を最小限に抑えつつ、メディアパイプライン全体に余計なレイテンシーを追加しないようにする必要がある。 これにより、クライアント側のエンドユーザーはスムーズで継続的な再生を楽しむことができる。

弊社のCDNには、オリジンオフロードを最大化し、キャッシュフィルプロセスの完了前、実行中、完了後にエンドユーザーエクスペリエンスを向上させる幅広い機能がある。

ライブストリームキャッシュの最適化

下の図に示すように、当社のメディアプラットフォームは、ライブストリーミングのための高速で信頼性の高い配信を実現するために、一連の調整可能な最適化を採用している。 以下のセクションでは、それらが重要である理由とそれらがどのように機能するかを説明する。

オリジン・シールド

まず第一に、Origin ShieldはCDNエッジサーバーとオリジンの間の追加のキャッシュレイヤーである。 PoPの1つに仮想オリジンを作成し、他のすべてのPoPロケーションからのすべてのリクエストを管理する。 CDNエッジサーバーがユーザーからリクエストを受け取り、キャッシュからリクエストを満たすことができない場合、エッジサーバーは顧客オリジンから直接プルするのではなく、シールドポップからオブジェクトをフェッチする。 グローバルCDNとして、地域ごとに1つのPopをシールドまたはシールドPopとして割り当てるオプションを提供(米国、EU、アジアなど)。

Origin Shieldは、トラフィックスパイクやフラッシュクラウドが発生した場合にオリジンサーバを保護するのに役立つ。 しかし、ライブストリーミングのユニークなトラフィックプロファイルに対処するだけでは十分ではないかもしれない。

部分的なキャッシュ共有

ライブストリーミングでは、複数のクライアントがストリームのうち、キャッシュに入っていないセグメントを要求するのが典型的なパターンである。 CDNがこれらの要求に対処する方法はいくつかある。 まず、オリジンに複数の同時キャッシュフィルリクエストを送信できる(新しいクライアントのリクエストごとに1つ)。これにより、レイテンシを最小限に抑え、エンドユーザーエクスペリエンスを最適化することができる。 2つ目のオプションは、遅延なく最初のクライアントにサービスを提供するが、他のクライアントはキャッシュにファイルが完全にロードされるまで待機する(この方法はオリジンの負荷を最小化することを目的としている)。

残念ながら、これらのオプションのどちらも特に優れた解決策を表す。

代わりに、我々のアプローチは、すでに実行中の単一のキャッシュフィルを、すでにキャッシュ内に部分的に存在する同じコンテンツを要求する複数のクライアント間で共有できるようにすることで、これら2つのオプションのバランスを取る。 部分キャッシュ共有により、他のクライアントは既存のキャッシュをピギーバックしてキャッシュにロードし始めると同時に複数のクライアントにビデオコンテンツを同時に配信できる。 その結果、起動時間の短縮、レイテンシの低減、オリジン負荷の低減が実現した。

キャッシュ充填待機時間

クライアントがビデオファイルを要求してからCDN Popへのロードを開始するまでの間には、時間がある。 この時点は非常に小さい(数ミリ秒で起こるかもしれない)が、ライブストリーミングのフラッシュクラウドは、数百から数千のリクエストで構成される可能性があるため、非常に重要な課題となっている。 この場合、上記の部分キャッシュ共有機能はまだ開始されていない。 通常、これはコーナーケースと考えられているが、フラッシュクラウドのためにライブストリーミングで発生する可能性が高い。 この重要な時点で、CDNは一度に多すぎるリクエストを渡すことでオリジンを圧倒する可能性がある。

この問題を防ぐため、同じファイルに対する複数の要求がプールされ、オリジンに対しては1つの要求のみが行われる。 Cache Fill Wait Timeは、オリジンのオフロードを改善し、フラッシュクラウドに対処するための仮想待合室である。 単一リクエストのHTTPレスポンスヘッダが到着し、あるリクエストがオリジンからファイルを受け取り始めると、キャッシュは待機しているすべてのユーザーと共有できる。 実際の「待ち時間」(ミリ秒)は高度に設定可能であり、オリジンの特定の機能と顧客のニーズに基づいて微調整できる。

Spawnサブ-ミスのリクエスト

前述のように、複数のユーザーが同じキャッシュされていないコンテンツを要求すると、最初のクライアントが3G接続のスマートフォンのように遅いデバイス上にあるリスクがある。 これは、通常、クライアントがコンテンツを吸収できる速度でキャッシュがいっぱいになるため、他のすべてのクライアントを傷つける。 このシナリオを回避するために、潜在的に遅い/失敗した最初のクライアントからキャッシュフィルを切り離し、オリジンからより速く(最大速度で)フィルすることができる。 この機能はまた、初期クライアントが切断した場合や、何らかの原因で接続が切断された場合でもキャッシュがいっぱいになるため、信頼性が高い。 我々はこの振る舞いをMiss.のSpawn Sub-Requestとして記述する。 この機能はまた、コンテンツ全体のキャッシュフィルをトリガーし、オリジンサーバへの1回のトリップで異なるバイト範囲の要求を満たす。 Spawn Sub-Request for Miss and Cache Fill Wait Time(ミスとキャッシュの充填待機時間のためのSpawnサブリクエスト)は、使用において相互に補完し合い、ライブストリーミングを高速化し、ビデオの開始時間や再バッファリングなどのメトリックを改善する

その他のライブストリーミングCDN最適化

ホットファイリング
ライブ配信の視聴者数が急速に拡大する中、これまで500K視聴者の負荷を容易に処理していたキャッシュサーバーは、数分で視聴者数が3倍または4倍になると突然圧倒される。 加えて、視聴者は特定の地理的エリアに集中することがあり、一般的に人気のあるスポーツや政治的なイベントのために。 多くのスポーツ中継や大会では、参加チームを取り巻く市場で視聴者の集中度が大幅に高くなる可能性が高い。

これが発生した場合、負荷を分散させるために、影響を受けるPOP内の他のサーバーにライブストリームセグメントを迅速に複製する必要がある。

ホットファイリングは、ライブストリームセグメントなどの非常に人気のあるコンテンツを自動的に検出し、POP内の複数のキャッシュサーバーに複製して、大きな需要に対応するプロセスである。 これはコンテンツ配信ネットワーク間では一般的な慣行であるが、これらの伝播が起こり得る速度は最終的に重要である。 これはエドジオが現在も取り組んでいる分野である。 最近、レプリケーション速度を5秒から約1~2秒に下げた。 ライブストリームとは別に、ライブストリーム内で広告などの他のコンテンツをホットにすることもできる。

容量と帯域幅
キャパシティと帯域幅とは、ライブストリームの予測不可能な要求を満たすためのTAP上の追加キャパシティを指す。 マッスルカーのための立方インチの代わりがないように、CDNの帯域幅の代わりはない。 これらや他のキャッシュ最適化戦略を実行するには、ネットワークが大規模なライブストリーミングを処理するための容量と帯域幅を持ち、他のユーザーの負荷のバランスをとる必要がある。

現在、ネットワーク上のコンテンツの80%以上が動画であり、そのトラフィックのかなりの部分がライブストリームに費やされている。 ネットワーク上で125,000以上のマネージドライブイベントを配信。 ライブストリームの人気の高まりに伴い、コンテンツの品質が向上し続けているため、2019年末までにネットワーク容量が100 Tbpsに達する見込みだ。 当社のネットワークは140を超えるグローバルPOPと5,000を超える相互接続またはラストマイル接続を備えている。

すべてが連携して

ライブストリーミングの厳しい要求は、あなたの技術を限界に押し上げるだろう。 数千、数百万にもスムーズなストリームを配信するには、特別なキャッシング設定が必要である。 Origin Shield、部分キャッシュ共有、キャッシュ充填待ち時間、ミスのスポーンサブリクエスト、ホットファイリングの組み合わせは、独自のライブストリーミングインフラストラクチャと需要に合わせて調整できる強力な機能である。 オブジェクトがすでにキャッシュ内にあるか、キャッシュ内に部分的にしかないか、キャッシュフィルがまだ開始されておらず保留中であるかにかかわらず、また、リクエストが本当に最初のクライアントのユニークなコンテンツに対するリクエストである場合でも、ライブストリーミングイベントに対して可能な限り最高のパフォーマンスを提供するようCDNを強化する。

CDNは、ライブビデオインフラストラクチャに不可欠なコンポーネントである。 分散サーバーシステムは、地理的およびネットワーク上の場所とオリジン自体の両方を考慮して、コンテンツをユーザーに配信するため、コンテンツを可能な限り最速で最も信頼性の高い方法で配信する。 しかし、ライブ配信用にCDNを最適化する技術は、ビデオオンデマンド(VOD)など、CDNの恩恵を受ける他のアプリケーションとは大きく異なる。 適切なキャッシュ最適化と十分なヘッドルームを備えたCDNは、ライブストリーミングに固有の変動と変動性に対処する以上のことができる。

AkamaiのCDNは、成熟した実績のあるコンテンツ配信機能と最適化機能を提供し、オリジンサーバーの負荷を最小限に抑えながら、大規模な視聴者にライブストリームを配信する。 ライブビデオキャッシュの最適化は、個々の顧客に合わせて調整可能であり、視聴者の需要をビデオインフラストラクチャの圧倒から保護するために連携する。