2021/08/18

AWSのストリーミングソリューションとは?AWSを活用したストリーミングソリューションをご紹介!

 
  

AWSのサービスでストリーミング配信を実現するには


プロモーション用の動画配信や、ライブやイベント等のオンライン配信は広く行われていますが、こういったシステムを実現するには様々な課題があります。

例えば、動画データは容量が大きいため、世界中の視聴者に動画コンテンツを途切れることなく配信することは簡単ではありません。

また、視聴者数により必要なサーバーの負荷は大きく変わりますが、視聴者数をあらかじめ見積もることが難しい場合もあり、サーバー性能を必要以上に準備するとコスト面が問題になってきます。

AWSではストリーミングに対応したサービスが準備されています。AWSのサービスを組み合わせクラウド上でストリーミングを実現することで、効率よく、低コストで世界中にストリーミング配信を実現することができます。

使用リソース分のみの課金で済む点や、高可用性、世界中のサーバーを活用可能といったメリットがAWSにはありますが、これらのメリットは特にストリーミングでは有効です。

オンデマンドストリーミングとライブストリーミング


目的がオンデマンドか、ライブストリーミングかによってストリーミングを実現するサービスの組み合わせが変わります。以下でそれぞれ詳しく説明します。

オンデマンドストリーミング
オンデマンドストリーミングの場合、ビデオはすでに録画された動画がサーバーに保存され、ユーザーは自由なタイミングで視聴可能です。ユーザー側の端末が対応する動画フォーマットに合わせて、あらかじめビデオをAWS Elemental MediaConvert等でエンコードして、AWS S3に保存しておきます。その後CloudFront経由でユーザーに配信します。

ライブストリーミング
ライブストリーミングの場合は、オンデマンドとは異なりビデオはリアルタイムで配信されます。よってAWS Elemental MediaLive等のリアルタイム用のエンコーダを用いてストリーミングデータを作成します。その後、AWS Elemental MediaPackageでフォーマット変換等の各種処理を行い、最後にCloudFrontを経由してユーザーに配信します。

それぞれについて、次節で詳しく例を示します。

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

AWSサービスを組み合わせてオンデマンド配信を行う具体例を紹介します。

まず、一般的に使われる動画データからストリーミングで使われるフォーマットに変換する必要があります。具体的にはMP4などのフォーマットをHLS(HTTP Live Streaming)へ変換します。この変換にはAWS Elemental MediaConvertが利用可能です。

次に、この変換後のファイルをAmazon S3に格納します。そして、CDN(コンテンツデリバリネットワーク)であるAmazon CloudFrontを利用して各視聴者にオンデマンド配信を行うことができます。

アップロードしておきたい動画の数はユースケースによって異なりますが、例えばAWS Lamdba等でアップロード直後にAWS Elemental MediaConvertを起動させて変換後のファイルをS3に格納させるとスムーズです。

Amazon CloudFrontについては後の節で説明します。

ライブストリーミングの例

イベント等のライブ配信をAWSサービスを使って実現する構成例です。

動画のソースとしてイベント会場に設置したマイク・カメラからの音声と映像をエンコーダを経由して、AWS Elemental MediaLiveに送ります。ここで、ストリーミング用の動画フォーマットであるHLS(HTTP Live Streaming)に変換します。

次に、AWS Elemental MediaPackageへ送ります。

動画配信にはコンテンツの著作権保護処理(DRM)や、多数のトラフィックのスケーリング、ユーザーの操作処理(巻き戻しや一時停止等)といったさまざまな処理が必要ですが、AWS Elemental MediaPackageでこれらの処理を行います。

最後に 、オンデマンドストリーミングと同様に、Amazon CloudFrontを経由して視聴者のもとへ配信が行われます。

AWS CloudFrontとは

Amazon CloudFrontは、動画データ等を高速に世界中に配信するための、CDN(高速コンテンツ配信ネットワーク)サービスです。

動画データ等の大容量のデータを、世界中の視聴者に、しかも途切れることなく配信することは簡単ではありません。また、コストの制約がある中でもセキュリティについて十分な検討が必要です。

Amazon CloudFrontは以下の利点があり、ライブ配信に適するソリューションです。

まず暗号化やHTTPSサポートなどセキュリティ機能に対応しています。さらにAmazon S3、Amazon EC2との連携がとられており、S3においたデータを簡単に配信することが可能です。

また、世界中200以上の場所にPoC(Point of Contents)と呼ばれるキャッシュサーバーがあります。これらのキャッシュサーバーを利用して、世界中の視聴者の地理的に一番近い場所から動画を配信することができます。

これで、低レイテンシーのストリーミング配信が実現可能です。

AWSストリーミングにかかる費用


AWSストリーミングについて、オンデマンドストリーミング、ライブストリーミングのそれぞれの例を示しました。

AWSストリーミングにかかる費用は、それぞれのAWSサービスの合計金額です。ストリーミングで使用したAWSサービスごとに課金の基準は変わりますので注意しましょう。

一例として次の表に、オンデマンドストリーミングでの費用の考え方を示します。よって、ストリーミングにかかる費用は動画の長さや本数、対応フォーマットや視聴者数などによって大きく変動することになります。

オンデマンドの場合だと、S3とLambda、MediaConvertの料金については、掲載する動画の本数、時間、フォーマットによって変動しますので、CloudFrontの料金は視聴者数と動画の長さなどに依存すると考えてよいでしょう。

AWSの他のサービスと同じことですが、あらかじめ十分検討して見積もりをしておくとよいでしょう。

サービス 課金基準
CloudFront データ転送量あたりの課金、HTTPリクエストあたりの課金
MeidaConvert 動画の長さ(分)あたりの課金、フォーマットに依存
Lanbda リクエスト数および実行時間ごとに課金
S3 データ容量、アップロードリクエスト、ダウンロードリクエストあたりの課金

AWSサービスを活用してストリーミング配信を実現しよう


AWSサービスを活用したストリーミングの概要、方法について紹介しました。

イベントやセミナー、ライブなどの配信はよく行われていますが、動画データはサイズが大きいため、世界中の視聴者に動画コンテンツを途切れることなく配信することは簡単ではありません。

また視聴者数により必要なサーバーの負荷は大きく変わりますが、サーバー性能の見積もりが少なすぎると配信トラブルとなりますし、過大に見積もるとコスト面で問題です。

AWSではストリーミングに対応したサービスが準備されており、これを活用することで視聴者数に応じてスケール可能なストリーミング配信が実現できます。

ストリーミングはあらかじめ動画ファイルをおいておくオンデマンド配信と、実時間で配信を行うライブストリーミングの2つがありますが、それぞれ使うべきAWSのサービスが異なります。これら2つについて、それぞれシステムの構成例を紹介しました。

AWSサービスを組み合わせることで様々なメリットのあるストリーミング配信を実現できます。

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞