AWS でライブストリーミングを実現するには ?
稲葉 智子
AWS ウェブサイトには AWS ソリューションというページがあるのをご存知ですか ? このページでは、現在 60 を超えるさまざまなソリューションが公開されています。多数あるソリューションの中から、社外への情報発信や社内向けのコミュニケーションなどにも活用できるライブ動画の配信機能を持つ「AWS でのライブストリーミング」ソリューションをご紹介します。
AWS ソリューションでは、ソリューションごとにランディングページというものが用意されています。このページには、ソリューションに関する次のものが提供されています。
- 概要とよくある質問
- アーキテクチャ図
- ソースコード (GitHub)
- AWS CloudFormation テンプレート (自動デプロイ用)
- 実装ガイド (PDF)
ソリューションに関するリソースが 1 か所にまとめられているので、必要なものがすぐ揃うようにページ構成されています。このページ内には「このソリューションを評価する」ボタンもあり、みなさんにソリューションに対する評価もしていただけるようになっています。
それでは、「AWS でのライブストリーミング」がどんなソリューションなのか見ていきましょう。
「AWS でのライブストリーミング」ソリューションとは ?
「AWS でのライブストリーミング」は、AWS クラウド上で AWS サービスを使用して、ライブ動画を費用対効果の高い方法で世界中の視聴者に配信したい方向けに提供しているソリューションです。必要なリソースは自動でプロビジョニングするよう設計されていますので、このソリューションを独自にカスタマイズしてそのままご利用いただくこともできます。
このソリューションには、次の 2 つのソリューションがあり、同じランディングページ内で公開されています。(タブでソリューションの表示が切り替え可能です)
- MediaStore を使用した AWS でのライブストリーミング
- AWS でのライブストリーミング
今回は、ランディングページと全く同じ名称で、Youtube の動画でも取り上げられている「AWS でのライブストリーミング」ソリューションをご紹介します。
使用している AWS サービスは ?
「AWS でのライブストリーミング」ソリューションでは、主に次の AWS サービスを組み合わせて構築されています。(これらのサービスは東京リージョンでご利用可能です)
- AWS Elemental MediaLive (取り込んだライブ動画を処理するライブエンコーダーです)
- AWS Elemental MediaPackage (MediaLive からの出力を視聴端末に合わせてパッケージします)
- Amazon CloudFront (ライブ動画を大勢のお客様へ配信するコンテンツデリバリーネットワーク (CDN) 機能を提供します)
- AWS Secrets Manager (このソリューションで使用する AWS サービスの秘密情報を保護します)
- Amazon Simple Storage Service (プレビュー用のデモ Player UI を格納します)
注意:このソリューションの実行中に使用した AWS サービスのコストは、お客様の負担となります。ご自身でデプロイされる場合は、ご了承のうえ、ご利用ください。コストに関する詳細は、AWS でのライブストリーミング実装ガイドの「コスト」セクション、または上記 AWS サービスの製品ページにある各「料金」ページでご確認いただけます。
AWS CloudFormation テンプレートの入手
このソリューションは、テンプレート (live-streaming-on-aws.template) により約 20 分程度でお客様の AWS アカウントに構築可能です。このテンプレートは、次の 2 つの方法で入手できます。
<ランディングページから入手してデプロイする場合>
ランディングページ内にはこちらの図の情報が記載されています。「CloudFormation テンプレート」、「AWS コンソールで起動する」、「AWS IQ エキスパートでデプロイする」からお好きなデプロイ方法を選択できます。
今回、ランディングページから入手してデプロイする場合は、「CloudFormation テンプレート」または「AWS コンソールで起動する」をご選択ください。
<実装ガイドから入手してデプロイする場合>
実装ガイド内の「スタックを起動する」セクションにある「ソリューションの起動」ボタンからテンプレートを起動できます。
上記の方法を使用する場合は、事前に AWS アカウントにログインしておくと、AWS CloudFormation コンソールのスタック作成用の画面が自動で開くので便利です。
テンプレートをお手元にダウンロードした場合は、手動で AWS CloudFormation コンソールからスタックの作成を行い、ダウンロードしたテンプレートを指定してください。
AWS CloudFormation テンプレートで自動デプロイ
前述のいずれかの方法でテンプレートを入手したら、AWS CloudFormation でスタックを作成します。スタックの作成画面に表示される設定項目の詳細な説明は実装ガイドに記載されていますので、ご自身でこのソリューションをデプロイする場合は、そちらを参照しながら設定してください。また、「AWS でのライブストリーミング」ソリューションでは次の項目が入力必須のため、事前に入力内容を準備しておくと良いです。
- スタックの名前 (ご自身が後で判別つきやすい、任意の名前を設定できます)
- Input CIDR Block (RTMP などの PUSH 入力タイプの設定が含まれる場合は必須です)
上記以外の項目をデフォルト設定のままでスタックを作成すると、約 20 分程度でデプロイが完了します。(デフォルト設定のままでスタックを作成すると、このソリューションは AWS Elemental MediaLive の入力タイプを URL_PULL タイプでデプロイし、サンプルの動画ファイルを再生します)
デプロイ完了後は、AWS CloudFormation コンソールの「スタック」一覧で、このソリューションのスタック名をクリックすると次の詳細画面が表示されます。
クリックすると拡大します
この詳細画面は、7 つのタブ (スタックの情報、イベント、リソース、出力、パラメータ、テンプレート、変更セット) に情報が分けられています。このソリューションでデプロイした設定情報をそれぞれのタブで確認していただけるようになっています。
補足: AWS CloudFormation テンプレートを使用してデプロイしているので、このソリューションが不要になった場合は、AWS CloudFormation コンソールで該当スタックを削除するだけで、このソリューションで使用している全てのリソースを削除できます。
デモ UI を起動してみよう !
このソリューションでは、デモ用の UI と動画が提供されています。
デモ UI 用の URL は、このソリューション用スタックの詳細ページにある「出力」タブに表示されています。「出力」タブの一覧に「DemoConsole」と表記されているキー項目の右横に値として表示されている URL をクリックすると、次のデモ UI が起動されます。(デモ UI は英語版のみです)
このデモ UI では 3 つのプレビュー用ボタン (HLS, DASH, CMAF 出力) が機能として提供されています。
プレビューボタンをクリックするとこのデモ用に用意されている動画が開始されるシンプルな作りになっているので、デプロイ後すぐに動作確認できるようになっています。
クリックすると拡大します
プレビュー機能を使用する前に、念のため、AWS Elemental MediaLive の「チャンネル」で、AWS CloudFormation で作成したスタックと同じ名前のチャンネル名の「状態」が「Running」になっていることを確認してください。
クリックすると拡大します
デモ UI のプレビューボタンをクリックすると、次の図のようなデモ動画が流れます。
クリックすると拡大します
選択したプレビューボタンの情報が動画表示部分の下部に表示され、どの出力のプレビューを見ているのかわかるようになっています。動画表示部分は、Youtube などと同様に画面拡大や音声調節などの機能がご利用いただけます。
AWS サービスを使って簡単にライブ動画配信を行いたい方には、AWS CloudFormation テンプレートのパラメータをカスタマイズしていただくだけで、例えば RTMP 出力可能な携帯アプリケーションやご自身のパソコンからライブ配信が可能な仕組みを、そのままご自身の AWS アカウント環境に構築できます。
「AWS でのライブストリーミング」ソリューション、いかがでしたか? これをきっかけに、このソリューションに少しでもご興味を持っていただけますと幸いです。
前述にあるようにこのソリューションをご自身の AWS アカウントにデプロイされる場合は、実装ガイドに記載の注意事項を必ずご一読していただき、ご納得のうえ、ご利用ください。このソリューションの実行中に使用された AWS サービスのコストはお客様負担になりますので、ご利用の際はご注意ください。
筆者紹介
稲葉 智子
アマゾン ウェブ サービス ジャパン合同会社
技術統括部 テクニカルライター
AWS クラウドのサービスに関しては入社と同時に勉強開始。好きな AWS サービスは、ローカリゼーションも担当しているので、Amazon Translate。AWS DeepRacer や AWS DeepComposer にも興味があります。趣味は習い事のハープとカフェ巡り。AWS では猫好きが多いのですが、私は犬好きで、ウェルシュ・コーギー・ペンブローク Lover です。
AWS を無料でお試しいただけます