Amazon Prime Video
Prime Videoの品質監視ツール、サーバーレス分散構成からモノリスへ移行しコストを90%削減
Step FunctionsとLambdaによる分散処理がステート遷移課金とS3経由のデータ受け渡しでコスト増大を招き、ECS上のモノリスに統合して90%のコスト削減を達成した。
課題
Step Functionsの状態遷移課金とS3経由のデータ受け渡しでコストが増大していた
アプローチ
Media ConverterとDefect DetectorをECS上の単一プロセスに統合
効果
インフラコストを90%削減、同時実行数の上限も解消
背景
Prime Videoの音声/映像品質監視システムは当初、Media ConverterとDefect DetectorをそれぞれAWS Lambda関数として分離し、AWS Step Functionsでオーケストレーションするサーバーレスアーキテクチャで構築されていた。個々のコンポーネントを独立してスケールできる利点があった一方、Step Functionsはステートマシンの状態遷移ごとに課金される仕組みのため、大量の音声/映像ストリームを処理する中で遷移回数が膨大になりコストが積み上がった。さらにMedia ConverterとDefect Detectorの間でフレームデータを受け渡す際にAmazon S3を経由する必要があり、S3への読み書きコストも重なった。加えてアカウントレベルの同時実行数上限にも達しており、スケーラビリティの面でも限界が見えていた。
移行のプロセス
チームはこの構成を見直し、Media ConverterとDefect Detectorという2つの主要コンポーネントをAWS ECS上で動作する単一プロセスのアプリケーションに統合した。これによりコンポーネント間でネットワーク越しに大容量のフレームデータをやり取りする必要がなくなり、S3への中間データ保存も不要になった。分散システムとして各機能をマイクロサービス的に分離する設計から、処理をモノリシックな1つのサービス内にまとめる方向へ舵を切ったことで、オーケストレーションのオーバーヘッドとデータ転送コストの両方を同時に削減する狙いだった。
移行前後の変化
| 指標 | Before | After | |
|---|---|---|---|
| インフラコスト | 基準値 | 90%削減 |
結果
この移行により、Prime Videoの音声/映像品質監視サービスはインフラコストを90%削減することに成功した。同時に、従来ボトルネックとなっていたアカウントレベルの同時実行数上限の問題も解消され、スケーラビリティも向上した。
