「Amazon Prime Video」が監視ツールをマイクロサービスからモノリスに移行 “やむにやまれぬ”理由とは?:90%のコスト削減とスケールアップを実現
Amazon.comは、同社が提供する「Amazon Prime Video」の監視ツールをマイクロサービスアーキテクチャからモノリシックなアーキテクチャに移行したと明らかにした。
Amazon.comは2023年3月22日(米国時間)、同社が提供する「Amazon Prime Video」(以後、Prime Video)の監視ツールをマイクロサービスアーキテクチャからモノリシックなアーキテクチャに移行したと明らかにした。
Prime Videoでは、視聴者がコンテンツをスムーズに受信できるように、全てのストリームを対象としたオーディオ/ビデオ品質の監視ツールを構築している。同ツールで視覚的な品質の問題(ブロックの破損や音声と映像の同期の問題など)が自動的に特定され、修正プロセスが開始される仕組みになっている。
当初、Prime Videoのビデオ品質分析(VQA)チームが所有していた監視ツールは、スケーラビリティが求められることを意図して設計されたものではなかった。そのため、Prime Videoのサービス規模が拡大し、監視ツールのITインフラも大きくなる中で、高いコストがかかるようになってしまった。同時にスケーリングのボトルネックも見つかったため、既存サービスのアーキテクチャを見直し、コストとスケーリングのボトルネックに焦点を当てることにした。
分散システムのオーバーヘッドが課題に
初期バージョンの監視ツールは、「AWS Step Functions」「AWS Lambda」を活用した分散システムとして構成されていた。主に3つのコンポーネントから構成される。
- メディアコンバーター:入力のオーディオ/ビデオストリームをフレームまたは複合されたオーディオバッファーに変換し、それを検出器に送信
- ディフェクト検出器:フレームとオーディオバッファーをリアルタイムで解析し、ビデオのフリーズ、ブロックの破損、オーディオ/ビデオの同期の問題などの欠陥を検出し、欠陥が見つかるたびにリアルタイムの通知を送信
- 第3のコンポーネント:サービス内のフローを制御するオーケストレーションを提供
一部のコンポーネントの使用方法により、予想される負荷の約5%でスケーリングの制限に達することがあった。また、全体的なコストも非常に高く、大規模なスケールが難しい課題があった。コスト面で最も高価な操作は、オーケストレーションのワークフローと分散システム間でのビデオフレーム(画像)の受け渡しの2つだった(受け渡しのためにAmazon Simple Storage Service〈Amazon S3〉を利用していた)。
分散型マイクロサービスからモノリスアプリケーションへ
こうしたボトルネックに対処するため検討した結果、インフラストラクチャを再設計することにした。このユースケースでは、マイクロサービスアーキテクチャの分散アプローチによるメリットが少ないことが分かり、全てのコンポーネントを単一のプロセスに統合し、データ転送をプロセスのメモリ内で行うようにした。これにより、ビデオフレームの中間ストレージとしてのS3バケットは不要になる。また、単一のインスタンス内でコンポーネントを制御するオーケストレーションを実装した。
概念的には、初期の設計とシステムの構成要素(メディア変換、検出器、オーケストレーションなど)は同じだ。多くのコードを再利用し、新しいアーキテクチャへの迅速な移行ができた。
初期設計では、各検出器が個別のマイクロサービスとして実行されていたため、複数の検出器を水平方向にスケーリングできた(新しい検出器の追加は、新しいマイクロサービスを作成し、それをオーケストレーションに接続する形だ)。しかし、新しいアプローチでは、全ての検出器が同じインスタンス内で実行されるため、検出器の数は垂直方向にしかスケーリングできない。チームは定期的にサービスに新しい検出器を追加しており、単一のインスタンスの容量を既に超えていた。この問題を解決するために、サービスを複数のインスタンスにクローンし、それぞれのコピーを異なる検出器のサブセットでパラメーター化した。また、カスタマーリクエストを分散するための軽量なオーケストレーションレイヤーも実装した。
移行の成果と教訓
マイクロサービスアーキテクチャからモノリシックなアーキテクチャへの移行で、インフラコストを90%以上削減でき、スケーリングの能力も向上したという。現在は数千のストリームを処理でき、サービスをスケーリングする余裕もある。Amazon Elastic Compute Cloud (Amazon EC2)とAmazon Elastic Container Service(Amazon ECS)に移行することで、Amazon EC2のコンピュート節約プランを活用することも可能になり、さらなるコスト削減が期待できるとしている。
Prime VideoでSenior SDE(Software Development Engineer)のマーシン・コルニー氏は、監視ツールのアーキテクチャ移行を通じて「マイクロサービスとサーバレスコンポーネントは、スケーリングが求められるワークフローにおける解決策の一つだが、モノリシックなアーキテクチャの代わりに使用すべきかどうかはケースバイケースの判断が必要だ」と述べている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 分散型データベース「Datomic」がライセンス料なしで利用可能に
Nubankは、傘下のCognitectが手掛けるクラウド対応の分散型データベース「Datomic」の全てのエディションをライセンス料なしで利用できるようにする。 - AWS、ソフトウェア開発サービス「Amazon CodeCatalyst」の一般提供を開始
Amazon Web Services(AWS)はソフトウェア開発サービス「Amazon CodeCatalyst」の一般提供を開始した。 - クラウドネイティブで変わる「NewSQL」の意味――地球規模でデータ分散を可能にする合意プロトコルの仕組みと課題
クラウドネイティブ時代に求められるデータベースの3要件を満たすべく開発が進められているNewSQLの基本概念と、データの可用性を高める仕組みを解説する。