Amazon CloudFront メディアストリーミングチュートリアル

Amazon CloudFront を利用すべき理由

Amazon CloudFront では、HTTP 上に実装するさまざまなプロトコルを使用して、世界中の視聴者に動画をストリーミングします。

コンテンツ配信ネットワーク (CDN) は AWS Elemental メディアサービスとともに使用でき、2 種類の異なる動画ストリーミングを実行することができます。最初に、Amazon Simple Storage Service (Amazon S3) に保存されているコンテンツのオンデマンドストリーミングについて説明します。その後、イベントや 24 時間年中無休のチャネルのライブストリーミングについて取り上げます。

ベストプラクティスについては、メディア向けの Amazon CloudFront のホワイトペーパーをご覧ください。

Building Serverless Video Workflows

オンデマンドストリーミング

オンデマンドストリーミングでは、動画コンテンツを Amazon S3 に保存します。視聴者が希望する時間にいつでも好きな動画を視聴できるため、オンデマンドという名称になっています。オンデマンドストリーミングの包括的なソリューションでは、通常、ストレージに Amazon S3 を、ファイルベースの動画処理に AWS Elemental MediaConvert を、配信に Amazon CloudFront をそれぞれ使用します。

Amazon S3 は動画アセットの保管場所に最適です。無制限にスケーラブルで、冗長性が組み込まれており、従量課金制で利用できます。S3 には、さまざまな方法でコンテンツをアップロードできます。ボリュームが少ないときには AWS マネジメントコンソールを使用してサービスを開始し、ボリュームが増えたら、さらに自動化されたシステムに移行できます。コンソールから S3 を使用するのはとても簡単です。AWS アカウントの作成後、ログインして S3 バケットを作成するだけで、コンテンツをアップロードできるようになります。自動化されたシステムを導入する場合は、スクリプトで AWS コマンドラインインターフェースを使用するか、コードで Amazon S3 API を使用することができます。

アップロード後に、特定のテレビや接続デバイスに合わせてサイズ、解像度、形式で動画を変換する必要が生じる場合があります。AWS Elemental MediaConvert を使用すると、こうした処理を行うことができます。MediaConvert では、S3 から取得したコンテンツをリクエストに基づいて変換し、その後、変換したコンテンツを S3 に保存し直すことができます。変換では、動画ファイルが処理され、サイズの縮小、形式の変換、再生デバイスとの互換性向上のためにオリジナルコンテンツの圧縮版が作成されます。この処理についても、AWS マネジメントコンソール、コマンドライン、MediaConvert API を使用して管理することができます。

ここまでで、コンテンツを安全に保存し、ユーザーの希望する形式で利用できるようになりました。次のステップは、Amazon CloudFront を使用してグローバルな配信を行うことです。アマゾンコンテンツ配信ネットワークでは、エッジでコンテンツをキャッシュすることで、低レイテンシーで高スループットな動画配信を実現します。CloudFront のスケーラビリティにより、必要に応じていくらでも動画を提供できます。従量課金制であるため、予期できない需要の急増に簡単に対応できます (詳細については、CloudFront の料金表を参照してください)。

ここから、2 つの配信方法に分けて説明します。動画ファイル全体を再生前にデバイスに配信する方法と、動画ファイルをデバイスにストリーミングする方法があります。

最初の方法は、導入が簡単で、ほとんどのモバイルデバイスやデスクトップでサポートされています。この方法は、コンテンツを S3 バケットに保存し、CloudFront ディストリビューションを作成してバケットを指定するだけで導入できます。ユーザーが動画プレーヤーで CloudFront URL (ディストリビューションの一部としてアクセス可能) を使用すると、動画ファイルがリクエストされます。そのリクエストは、ユーザーの位置に最適なエッジロケーションに送信されます。リクエストされた動画は、CDN によってキャッシュから提供されます。その動画がキャッシュされていない場合は S3 バケットから取ってきます。この方法には、いくつかの欠点があります。この方法では、視聴者の帯域幅の使用効率が悪くなります。ユーザーが動画をすべて見ない場合でも、視聴されないコンテンツがダウンロードされるため、料金が発生します。

多くの場合、2 番目の方法が適しています。Apple の HTTP Live Streaming (HLS)、Dynamic Adaptive Streaming over HTTP (DASH)、Microsoft の Smooth Streaming (MSS)、Adobe の HTTP Dynamic Streaming (HDS) といった動画ストリーミングのプロトコルファミリーでは、視聴中に動画を配信し、通常、必要になる数秒前にコンテンツを取り込ませることで、ユーザーエクスペリエンスを向上させています。動画がすばやく再生され、効果的に早送りできるため、操作性における全体的なユーザーエクスペリエンスが向上します。この方法では、視聴した分のみの料金が発生し、ユーザーの帯域幅を無駄にすることがなく、ユーザーは希望するコンテンツをすばやく視聴できます。

2 番目の方法を導入するには、少しの追加作業が必要です。まず、MediaConvert を使用して、動画ファイルを HLS 形式 (最も広くサポートされているストリーミングプロトコル) に変換します。動画を短いセグメントに分割して、マニフェストファイルを作成します。その後、マニフェストで CloudFront ディストリビューションを指定します。最後に、ライブストリームを再生するために、ユーザーがライブストリームの再生に使用するプレーヤーにマニフェスト URL を埋め込みます。例えば、マニフェストファイルが myStream/playlist.m3u8 で、CloudFront ディストリビューションが d111111abcdef8.cloudfront.net のライブストリームを再生するには、プレーヤーに http://d111111abcdef8.cloudfront.net/myStream/playlist.m3u8 という URL を埋め込みます。

Video on Demand on AWS」ページでは、AWS クラウドでビデオオンデマンドのワークフローを導入するときに考慮するベストプラクティスとガイダンスが提供されています。また、動画コンテンツの取り込み、保存、処理、配信を行う、スケーラブルな分散アーキテクチャの構築に必要なサービスを自動的にプロビジョニングする AWS ソリューションも紹介されています。

ライブストリーミング

ライブストリーミングは、ライブイベントでのコンテンツ配信、または 24 時間年中無休のライブチャネルでのコンテンツ配信に使用されます。ライブイベントを配信する事例としては、スポーツトーナメント、受賞式、基調講演、大勢が視聴するその他のライブイベントをストリーミングする放送局やコンテンツアグリゲーターなどを挙げることができます。ライブチャネルを配信する事例としては、サードパーティのディストリビューションプラットフォームを使用せずに、常時放送のチャネルをパッケージングしてインターネット経由で視聴者に直接配信するスタジオ、放送局、有料テレビサービス事業者などを挙げることができます。

AWS を使用すると、以下の簡単なステップで、世界中の視聴者にライブコンテンツをコスト効率良く配信できます。

最初のステップは、ライブ動画の処理です。AWS Elemental MediaLive を使用して、ライブ動画ストリームをリアルタイムでエンコードし、サイズが大きいライブ動画のソース (AWS Elemental Live のようなオンプレミスのエンコーダーから送信されるソースなど) を取得して、視聴者への配信用に小さいサイズに圧縮します。次のステップでは、ユースケースに応じた 2 つの方法があります。AWS Elemental MediaPackage のようなジャストインタイムのパッケージングを使用し、単一の形式から複数の形式に動画コンテンツを変換して、さまざまなデバイスのタイプに合わせて安全にパッケージングすることができます。MediaPackage を使用すると、多くの DVR にあるような、視聴者にとって一般的な動画機能 (最初から再生、一時停止、巻き戻しなど) を簡単に実装できます。また、デジタル著作権管理 (DRM) を使用してコンテンツを保護することもできます。一方で、エンドの視聴者の対象デバイスすべてに対応する形式にエンコーダーが既にコンテンツを変換している場合は、AWS Elemental MediaStore のような、高いパフォーマンスを提供するスケーラブルなオリジンを使用できます。MediaPackage や MediaStore で Amazon CloudFront にコンテンツを配信して、ライブイベントを視聴中の視聴者にルーティングします。

ソリューションを準備して運用すると、スケーラブルかつコスト効率の良い方法でライブイベントを世界中に配信できます。CDN は視聴者数の変動に合わせて運用できるため、「スラッシュドット効果」に対応できます。

Live Video Streaming」ページでは、AWS クラウドでのライブ動画ストリーミングのワークフローを選択するときに考慮するベストプラクティスとガイダンスが提供されています。また、非常に優れたリアルタイムの視聴環境を実現する、可用性が高くコスト効率の良いアーキテクチャの構築に必要なサービスを自動的にプロビジョニングする AWS ソリューションも紹介されています。