ある企業は Amazon S3 に大規模な写真ライブラリを保有しています。AWS Lambda を使用して、さまざまな写真カテゴリの処理ルールに従ってファイルからメタデータを抽出しています。出力は Amazon DynamoDB テーブルに保存されます。抽出処理はカスタマーリクエストが送信されるたびに実行され、完了まで最大 60 分かかる場合があります。会社はメタデータ抽出にかかる時間を短縮したいと考えており、単一の Lambda 関数を写真の各カテゴリ用の個別の Lambda 関数に分割しました。ソリューションアーキテクトが要件を満たすために実施すべき追加の手順はどれですか?
選択肢A は Step Functions の Parallel ステートを使うことで、1 つの写真ファイルに対してすべてのカテゴリの Lambda を同時に並列実行できます。SQS でリクエストをバッファリングし、Lambda が StartExecution API を呼び出して Step Functions ワークフローを起動する構成により、スケーラブルかつ管理された並列処理が実現します。 選択肢B は SQS に複数の Lambda をサブスクライブしても 1 つのコンシューマーがメッセージを取得すると他には見えなくなるため、同一ファイルを複数カテゴリで並列処理できません。 選択肢C は Step Functions のみの構成では大量ファイルのバッファリングができず、スケーラブルなリクエスト管理が実現できません。 選択肢D は AWS Batch はコンテナ・バッチジョブ向けであり、Lambda ベースの並列処理オーケストレーションには適しない構成です。