AWS MediaConvert を使用したサーバーレス動画処理パイプライン
この動画プラットフォームは、アップロードが少ない閑散期から、数百のジョブが同時に発生するピーク時まで、変動するエンコードワークロードに対応できる、スケーラブルで費用対効果の高い方法を必要としていました。
プロジェクトを相談する
課題
固定容量のエンコードインフラは、過剰プロビジョニング(高コスト)か、不足プロビジョニング(低速)のいずれかでした:
- エンコードワークロードが非常に変動しやすく、予測不能だった
- コンテンツ公開時には、ピーク時に通常量の100倍のトラフィックが発生することがあった
- 閑散期に専用のエンコードサーバーを24時間365日稼働させるのは費用がかかりすぎた
- ジョブの失敗時には、手動介入なしに自動検出とリトライが必要だった
私たちのソリューション
私たちは、AWS Lambda トリガーと AWS MediaConvert を使用し、伸縮自在で従量課金制の動画処理を行うサーバーレスエンコーディングパイプラインを実装しました。
アーキテクチャ
- トリガー: S3 アップロードイベントを監視する AWS Lambda 関数
- エンコード: パートナー固有のジョブテンプレートを使用した AWS MediaConvert
- メッセージング: 非同期ジョブステータス更新のための ActiveMQ/STOMP
- 監視: ジョブの進捗状況を追跡する NestJS エンコーダーバックエンド
- ストレージ: 入出力アセット用の AWS S3
パイプラインフロー
- S3 イベント - 動画アップロードが Lambda 関数をトリガー
- ジョブ設定 - Lambda がパートナープロファイルを読み込み、MediaConvert ジョブを構築
- 送信 - 適切な出力設定で MediaConvert ジョブを送信
- 進捗追跡 - STOMP メッセージがエンコーダーバックエンドにステータスを中継
- 完了 - 出力アセットを S3 に保存、メタデータを MongoDB で更新
- エラー処理 - 失敗したジョブを指数関数的バックオフでリトライキューに追加
主な機能
- アイドルコストゼロ - Lambda と MediaConvert は実際の使用量に対してのみ課金
- 弾力的なスケーリング - 1から1000以上の同時エンコードジョブを処理
- パートナーテンプレート - パートナーごとに事前設定された MediaConvert ジョブテンプレート
- イベントドリブン - S3 イベントがエンコードワークフローを自動的にトリガー
- 包括的な監視 - ジョブステータス、期間、エラー追跡
成果
技術スタック
caseStudyDetail.more ケーススタディ
その他の技術実装事例をご覧ください
SCTE-35マーカー解析とマルチプラットフォームプレイヤー統合によるクライアントサイド広告挿入 (CSAI)
あるビデオストリーミングプラットフォームは、ウェブ、モバイル、コネクテッドTVアプリ全体でクライアントサイド広告挿入 (CSAI) を実装する必要がありました。これにより、サーバーサイド挿入では提供できない、完全な広告インタラクションサポート(クリック可能なオーバーレイ、コンパニオンバナー、スキップボタン)を備えた、パーソナライズされたデバイスレベルの広告体験が可能になります。
SCTE-35アドマーカーシグナリング&メディアトレーラー挿入パイプライン
あるストリーミングメディア企業は、SCTE-35アドマーカーをライブおよびVODストリームに挿入し、プロモーション用トレーラー(プレロール、ミッドロール、ポストロール)を正確なタイミングで挿入できる堅牢な自動化パイプラインを必要としていました。これにより、FASTチャンネル、ライブイベント、オンデマンドコンテンツライブラリ全体での収益化が可能になります。
よくある質問
MicrocosmWorksは、Step Functionsがパイプラインをオーケストレーションするセグメント化された処理アーキテクチャを設計しました。具体的には、Lambda関数がソースビデオをセグメントに分割し、AWS MediaConvertがLambdaのタイムアウト制約なしに実際のトランスコーディングを処理し、最終的なLambdaが出力を結合します。このハイブリッドアプローチは、サーバーレスなコストモデルを維持しつつ、あらゆる長さのビデオをサポートします。
MicrocosmWorksは、バースト性の高いビデオ処理ワークロードにおいて、専用のEC2エンコーディングインスタンスを実行する場合と比較して70-85%のコスト削減を測定しました。serverlessパイプラインはアイドル時にはコストがかからず、ピーク時には数百の同時実行ジョブにスケールし、AWS MediaConvertの分単位課金によりピーク容量のためにプロビジョニングする必要がなくなります。
MicrocosmWorks は、AWS Step Functions をステップごとの再試行ポリシーと指数バックオフで設定しました。これにより、失敗したトランスコードステップはパイプライン全体を再開することなく自動的に再試行されます。各ステージは中間出力を S3 に書き込むため、復旧はソースファイルから再処理するのではなく、最後の成功したチェックポイントから再開されます。
MicrocosmWorks は、重要な Lambda 関数にプロビジョンドコンカレンシーを使用し、MediaConvert の予約トランスコーディングスロットを活用することでコールドスタートを緩和し、パイプラインをニアリアルタイムのユースケース向けに最適化しました。ライブワークフローの場合、パイプラインはアップロードから配信まで2~5分のエンドツーエンド遅延を達成し、これはクリップの抽出やハイライトの配信に適しています。
MicrocosmWorks は、$25〜$45/時間の料金でサーバーレス動画インフラを構築しています。Step Functionsによるオーケストレーション、S3ライフサイクル管理、および監視を含む完全なMediaConvertベースのパイプラインは、通常250〜400時間の開発時間を要します。このアーキテクチャの従量課金モデルは、顧客が実際の処理量に比例したAWS費用のみを支払うことを意味します。