ある企業は、動画アップロードサービスをAWS上で運用しています。 ユーザーはS3バケットに動画をアップロードし、その後AWS Elemental MediaConvertを使用して複数の解像度に変換します。 現在、動画ファイルが増大し処理時間が長くなるにつれて、S3イベント通知から変換プロセスへの接続が不安定になる問題が発生しています。 変換プロセスの信頼性を向上させ、急激なアップロード増に対応できるスケーラブルな疎結合アーキテクチャを設計してください。
S3イベントから直接変換プロセスをトリガーする設計は、一時的な負荷スパイクや変換サービスの同時実行数制限に直面すると不安定になります。これを解決する最も信頼性の高い方法は「メッセージキュー(Amazon SQS)」を介した疎結合(Decoupling)です。S3イベントをSQSキューに送ることで、変換ジョブを一時的にバッファリングでき、変換サービス側が処理可能なペースでメッセージを消費(ポーリング)できます。これにより、アップロードのスパイクが発生しても変換プロセスが崩壊せず、高い信頼性とスケーラビリティを確保できます。 選択肢BのAmazon API Gateway経由での同期呼び出しは最大29秒のタイムアウト制限があるため、長時間の動画変換処理には対応できません。また同期処理では負荷スパイク時のスケーラビリティが低下し、急激なアップロード増への対応が困難になります。 選択肢CのS3バケットのライフサイクルポリシーはオブジェクトのストレージクラス移行や削除を管理する機能であり、AWS Elemental MediaConvertを直接呼び出す機能はありません。バッチ処理方式はアップロード直後のリアルタイム変換という要件にも応えられません。 選択肢DのAmazon RedshiftはデータウェアハウスサービスでありSQLクエリによる分析処理に特化しています。動画変換ジョブのオーケストレーションには全く適していません。SNSトピックでイベントを配信する前半部分は有効ですが、Redshiftでジョブを管理するという後半部分が根本的に誤っています。