【レポート】ServerlessなVideo Workflowsの構築 #reinvent #CTD405

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

清水です。AWS re:Invent2017のブレイクアウトセッション「CTD405 - Building Serverless Video Workflows」を聴講してきたのでレポートします。

セッションの概要は以下になります。

If you want to deliver videos to all consumers on all devices, building such workloads is complex, time consuming, and expensive. Now, it is fast and easy to implement video-on-demand workflows on AWS and distribute video content to a global audience. Companies, small or large and in various industries, can deliver streaming video without complex professional video tools. In this session, learn how to build complex video workflows entirely in code using AWS services.

スピーカーは以下のお二人です。

  • Usman Shakeel - WW Tech Leader M&E
  • Tom Nightingale - Solution Architect, Solution Builder, Amazon Web Services

レポート

イントロダクション/カスタマーの声

コンテンツとデバイスの爆発

  • 皆がビデオを作成できるようになり、コンテンツが豊富に
  • 世界中16億人の人々が接続されたデバイス上でオンラインビデオを視聴している、どこにでもデバイスがある
  • 2016年末には4900万以上の家庭でOTTサービスに接続している
  • TVも有料ストリーミングに移行している

しかし、OTTは複雑である

  • だからこそ、複雑さを取り除き顧客を支援する機会がある

関連するAWSサービスについて

Video Workflow

  • Ingest/Acquire, Store/Mange, Process, Origin/Deliver, Analyseで構成される
  • ビジネスプランによりAnalyse結果をSotre/MangeとProcessにフィードバック
  • Store Once Deliver Anywhereの考え

メディアストリーミングワークフローにおけるAWSスタック

  • Store Once Deliver Anywhereの考えを適用
  • 先日された新サービスAWS Media Servicesを利用
    • AWS Elemental Media Store
    • AWS Elemental Media Convert
    • AWS Elemental MediaLive
    • AWS Elemental MediaPackage
    • AWS Elemental Media Tailor

AWS Elemental Media Convertの紹介

  • プロ級のビデオ機能と品質へのアクセス
  • 管理するソフトウェアやハードウェアインフラストラクチャはなし
  • ジョブの処理能力、入力するビデオの量に応じて自動的にスケールする
  • ジョブの処理能力と管理能力
  • 複雑なワークフローでLambdaやServerless Functionsと統合するAPIインターフェース

AWS Elemental Media Convertの基本要素

  • Job
    • 主な作業単位
    • インプット、アウトプットを指定
  • Output Preset
    • 1つの出力を作成する設定
  • Job Template
    • 一般的に使用されるジョブ設定のテンプレート
  • Queue
    • すべてのジョブがキューに登録されます。
    • ユーザーは処理のためにジョブを分離またはグループ化可能

AWS Media Convertを含めたビデオワークフロー

カスタマーの声からの逆向き解決法

AWS Answers

Live Streaming Solution

これまでの構成
  • AWS Elemental Cloudを使った方式。
  • Live ContentをAWS Elemental LIVEで受付、AWS Elemental DELTAからNginx cache clusterを通してCloudFrontで配信。

Live Streaming Solutionの改革
  • マネージドサービスであるAWS Elemental Media Live と Media Pakage、Media TailorからCloudFrontで配信
  • EC2やELBが不要に

File-Based Streaming Solution

  • データセンターの物理サーバからクラウドへ移行することで、拡張可能なリソースなど多様な利点がある。
  • しかし、クラウド上の仮想サーバ利用でも課題点はある
    • 容量と利用率の管理
    • ワークロードサイズ
    • 可用性、フォールトトレランスの管理
    • 断続的なジョブを実行する場合、比較的費用がかかる
  • ビデオワークフローにおけるロータッチ、高いデヴェロッパの生産性にServerlessが適している
サーバレスとは
  • サーバのプロビジョニングや管理をしない
  • 使用量に応じてスケールする
  • アイドル状態には費用を払わない
  • 可用性とフォルトトレランスが組み込まれている
サーバレスではメソッドの呼び出し順序をコーディネートする必要がある
  • function chaining
  • データベース
  • キュー
アプリケーションライフサイクル管理としてAWS Step Functionが利用可能
  • JSON定義
  • コンソールで視覚化
  • 実行モニタリング
Video on Demand (VOD) on AWS
  • サーバレスで実現
  • ワークフロー
    • Ingest Step Functions
    • Process Step Functions
    • AWS Elemental MediaConvert
    • Publish Step Functions

Ingest Step Functions
  • Start
  • Validata Source
    • ソースとなる動画ファイルと、ウォータマークファイルの確認
  • Mediainfo
    • MediaInfoプロセスを実行、メディアファイルのバリデーション
  • Dynamo
    • GUIDとDynamoDGテーブルへのエントリを作成
  • SNS
    • Eメールで通知
  • Process Execute
    • GUIDとプロセス処理を実行
  • End
Content Delivery
  • CloudFrontを利用
    • キャッシュの最適化
    • クエリストリング、クッキーのホワイトリスト
    • 大規模利用にはReserved Capacity価格もあり
  • CloudFrontアクセスログを解析するアーキテクチャ
    • GlueやRedshift、AthenaやQuckSightの連携も

ソリューションの進化

2017年版VOD開発のマイルストーン

  • Version1
    • 最低限の機能を実装
  • Version2
    • ワークフローの切り離し
    • エラーハンドリング
    • メディア変換とメタデータ

Version1

構成

Version2

ワークフローの切り離し
  • IngestのStep Functionsを変更
    • ソースファイルのバリデーションを実施
    • プロセス処理段階でプロフファイル、エンコード、DynamoDBへの登録を実施
エラーハンドリング
Version1
  • SNS通知のみ

Version2
  • SNS通知をLambdaに発火させ、エラーハンドリング、SNS PublishまたはDynamoDBの登録へ

メディア変換とメタデータ
  • S3のイベントトリガでLambdaを発火
  • エンコード処理をAWS Elemental Media ConvertRegional/Account API Endpointへ
Version2の構成

今後の計画

3rdパーティーによるインテグレーション

  • 例えば、以下の3rdパーティソリューションと連携ができる
    • Venera TechnorogiesのQC system
    • verimatrixのDRM管理
  • AWS Answerを有効に活用してほしい

感想

ServerlessなVideo Workflowsということで、当初はLambdaやStep Functionsのみを想定していたのですが、先日発表された新サービスのAWS Media Sevicesの使いどころもふんだんに盛り込まれていました。これまでライブ配信を行うにはEC2などサーバが必要だった認識ですが、AWS Media Servicesによってライブ配信もマネージドサービスのみで構築できそうですね。またVOD配信についてもこれまでElastic TranscoderとStep Functions、Lambdaという組み合わせだったものにAWS Media Servicesを組み合わせることでより幅が広がっていくと思います。引き続きAWS Media Servicesについては調査を続けていきたいと思います。