当社の動画処理プラットフォームが成長するにつれて、コンピューティング負荷の高いワークロードを処理する複雑さも増していきました。動画の正規化、音声抽出、文字起こし、オーバーレイ生成、レンダリングといったタスクは、特に複数のプロジェクトを同時に処理する場合、かなりのCPUとmemoryリソースを消費する可能性があります。
これらのワークロードを主要なアプリケーションインフラストラクチャ内で直接実行すると、リソースの競合、処理時間の遅延、およびスケーラビリティの制限につながる可能性があります。需要が増加するにつれて、コアアプリケーションサービスのパフォーマンスに影響を与えることなく、処理ワークロードを管理するためのより柔軟で効率的な方法が必要になりました。
これらの課題に対処するため、当社はコンテナオーケストレーションプラットフォームとしてAWS Elastic Container Service (ECS)を導入しました。
AWS ECSを使用することで、バックグラウンド処理活動を効果的に管理し、需要に応じてリソースをスケーリングし、処理ワークロードを個別のコンテナで実行できます。これにより、当社のプラットフォームは、パフォーマンス、信頼性、および運用効率を維持しながら、さまざまなワークロードを処理できるようになります。
このブログでは、AWS ECSとは何か、なぜ当社がそれを選んだのか、そしてそれが当社の動画処理インフラストラクチャをスケーリングするのにどのように役立つかを探ります。
動画処理のスケーリングにおける課題
動画処理ワークロードは、本質的にリソース集約型であり、非常に変動性が高いです。
単一のプロジェクトには、以下が含まれる場合があります。
- 動画の正規化
- 音声抽出
- 音声テキスト変換(文字起こし)
- オーバーレイ生成
- 複数の出力バリエーションのレンダリング
- 高解像度メディアアセットの処理
プロジェクトの数が増加するにつれて、インフラストラクチャの要求も急速に増大する可能性があります。
当社には、以下のことができるソリューションが必要でした。
- 必要に応じて処理リソースをスケーリングする
- 複数のタスクを同時に管理する
- リソース集約型タスクをユーザー向けサービスから隔離する
- ピーク需要時の信頼性を向上させる
- インフラストラクチャの利用を最適化する
- 運用オーバーヘッドを削減する
ワークロードが増大するにつれて、長時間稼働するサーバーのみに依存する従来のアプローチは非効率になる可能性があります。当社は、実際の需要に基づいてリソースを動的に割り当てることができるシステムを求めていました。
AWS ECSとは?
AWS Elastic Container Service (ECS)は、組織がコンテナ化されたアプリケーションを大規模に実行および管理できる、フルマネージドのコンテナオーケストレーションサービスです。
ECSは、以下の自動化を支援します。
- コンテナデプロイメント
- タスクスケジューリング
- リソース割り当て
- サービス管理
- ワークロードのスケーリング
- ヘルスモニタリング
サーバーやアプリケーションプロセスを手動で管理する代わりに、ECSはコンテナ化されたワークロードを効率的に実行するための集中型プラットフォームを提供します。
なぜ当社がAWS ECSを選んだのか
オンデマンドのスケーラビリティ
ECSの最大の利点の一つは、需要に基づいてワークロードをスケーリングできることです。
動画処理の要件は、一日を通して大きく変動する可能性があります。一部の期間では少数の処理ジョブしか含まれない場合がありますが、他の期間では大量のレンダリングやメディア処理タスクを同時に処理する必要がある場合があります。
ECSを使用すると、需要が増加したときに動的に追加の処理タスクを起動し、ワークロードが減少したときにスケールダウンできます。
この柔軟性により、不要なリソースを永続的に割り当てることなく、パフォーマンスを維持できます。
ワークロードの隔離
動画処理を伴うタスクは、しばしば大量のCPUとmemoryを必要とします。
ワークロードを個別のコンテナで実行することで、ECSは処理操作をコアアプリケーションサービスから隔離することを可能にします。
この分離は、以下の点で役立ちます。
- システムの安定性を向上させる
- リソース競合を回避する
- トラブルシューティングを簡素化する
- フォールトトレランスを向上させる
処理タスクで問題が発生しても、プラットフォームの残りの部分に直接影響を与えることはありません。
効率的なリソース利用
すべての処理ワークロードが同じ量のコンピューティング能力を必要とするわけではありません。
一部の操作は軽量ですが、他の操作は集中的なレンダリングとメディア処理を伴います。
ECSを使用すると、ワークロードの要件に基づいてリソースを割り当てることができ、インフラストラクチャリソースが効率的かつ効果的に使用されることを保証します。
これは、パフォーマンスと運用コストの両方を最適化するのに役立ちます。
運用上の複雑さの軽減
多数の処理サービスを手動で管理することは、すぐに困難になる可能性があります。
ECSは、以下を処理することでインフラストラクチャ管理を簡素化します。
- コンテナスケジューリング
- タスク実行
- ヘルスチェック
- リソース管理
- サービスリカバリ
これにより、当社の技術スタッフは、インフラストラクチャの維持管理ではなく、プラットフォームの強化に集中できます。
シームレスなAWS統合
ECSは、当社のインフラストラクチャの一部である他のAWSサービスと自然に統合されます。
これにより、一貫したクラウドネイティブアーキテクチャを維持しながら、合理化されたデプロイメント、モニタリング、セキュリティ、および運用ワークフローが可能になります。
当社のAWS ECS利用方法
AWS ECSは、当社の動画処理パイプラインにおいて重要な役割を果たしています。
すべての処理操作を主要なアプリケーションサーバーで直接実行するのではなく、ECSによって管理されるコンテナ化された処理タスクを通じて、リソース集約型ワークロードを実行します。
動画の正規化
アップロードされた動画は、ダウンストリームワークフローに入る前に準備が必要となることがよくあります。
ECSは、これらの正規化タスクを独立して処理するのに役立ち、後続の操作に対して一貫した入力形式を保証します。
音声抽出と文字起こし
音声抽出と文字起こしは、特に複数の動画を同時に処理する場合、計算集約型になる可能性があります。
これらのタスクをECS内で実行することで、需要の増加に応じて処理能力をスケーリングできます。
レンダリングワークロード
動画レンダリングは、当社のワークフローで最もリソース集約型の段階の一つです。
ECSを活用することで、レンダリングジョブを独立して実行し、レンダリングタスクに特化してリソースを割り当てることができます。
これは、需要が集中する期間でも一貫したパフォーマンスを維持するのに役立ちます。
バックグラウンド処理
多くの操作は、舞台裏で非同期に発生します。
例としては、以下が挙げられます。
- メディア準備
- アセット処理
- ワークフロー実行
- 後処理操作
ECSは、これらのバックグラウンドワークロードを大規模に実行するための信頼性の高い環境を提供します。
当社のコンテナ化された処理ワークフロー
当社の処理ワークフローの簡略化されたバージョンは次のとおりです。
ステップ1:プロジェクトの提出
ユーザーは、動画アセットと処理要件を含むプロジェクトを提出します。
ステップ2:タスクの作成
プラットフォームは、必要な処理操作を識別し、適切なワークロードを生成します。
ステップ3:ECSタスクの実行
ECSは、各操作に必要なリソースを備えたコンテナ化された処理タスクを起動します。
ステップ4:処理とレンダリング
タスクは、正規化、文字起こし、レンダリング、およびその他の処理活動を実行します。
ステップ5:完了と配信
処理が完了すると、出力は保存され、ユーザーが利用できるようになります。
このワークフローにより、スケーラビリティと信頼性を維持しながら、ワークロードを効率的に処理できます。
ユーザーへのメリット
当社が行うインフラストラクチャの決定は、ユーザーエクスペリエンスに直接影響します。
AWS ECSを活用することで、以下を提供できます。
より高速な処理
動的なリソース割り当ては、処理時間とレンダリング時間の短縮に役立ちます。
向上したスケーラビリティ
プラットフォームは、大幅なアーキテクチャ変更なしに増大する需要を処理できます。
一貫したパフォーマンス
ワークロードの隔離は、ピークアクティビティ時でもプラットフォームの応答性を維持するのに役立ちます。
強化された信頼性
コンテナ化されたワークロードは、フォールトトレランスを向上させ、処理障害の影響を軽減します。
より良いリソース効率
リソースはワークロードの要件に基づいて割り当てられ、パフォーマンスとコストの最適化に役立ちます。
今後の展望
当社のプラットフォームが進化し続けるにつれて、処理の需要も増大し続けるでしょう。より大規模なプロジェクト、追加のワークフロー、および増大するユーザーアクティビティをサポートするには、効率的にスケーリングできるインフラストラクチャが必要です。
AWS ECSは、これらの進化する要件をサポートするために必要な柔軟性とオーケストレーション機能を提供します。コンテナ化された処理ワークロードを引き続き活用することで、パフォーマンス、信頼性、および運用効率を維持しながら、変化する需要に適応できます。
結論
動画処理ワークロードのスケーリングには、柔軟性と信頼性を維持しながら、リソース集約型操作を効率的に処理できるインフラストラクチャが必要です。
AWS ECSにより、コンテナ化されたワークロードを大規模に実行および管理できるようになり、現代の動画処理パイプラインをサポートするために必要なオーケストレーション、スケーラビリティ、およびワークロードの隔離を提供します。
ECSを当社のアーキテクチャの重要な部分として活用することで、ワークロードをより効率的に処理し、システムの信頼性を向上させ、プラットフォームの成長に合わせてユーザーに高性能なエクスペリエンスを提供し続けることができます。

