無限ノック › SAP 練習問題一覧 › 問題
SAP新しいソリューションのための設計

ある企業は Amazon S3 に大規模な写真ライブラリを保有しています。AWS Lambda を使用して、さまざまな写真カテゴリの処理ルールに従ってファイルからメタデータを抽出しています。出力は Amazon DynamoDB テーブルに保存されます。抽出処理はカスタマーリクエストが送信されるたびに実行され、完了まで最大 60 分かかる場合があります。会社はメタデータ抽出にかかる時間を短縮したいと考えており、単一の Lambda 関数を写真の各カテゴリ用の個別の Lambda 関数に分割しました。ソリューションアーキテクトが要件を満たすために実施すべき追加の手順はどれですか?

A
AWS Step Functions ワークフローを作成して Lambda 関数を並列実行する。ファイルのリストを取得して各アイテムを Amazon SQS キューに書き込む Lambda 関数を作成する。SQS キューからメッセージを取得して StartExecution API を呼び出す Lambda 関数を設定する。
✓ 正解
Step Functions の Parallel ステートを使うことで、1 つの写真ファイルに対してすべてのカテゴリの Lambda を同時に並列実行できます。SQS でリクエストをバッファリングし、Lambda が StartExecution API を呼び出して Step Functions ワークフローを起動する構成により、スケーラブルかつ管理された並列処理が実現します。
B
ファイルのリストを取得して各アイテムを Amazon SQS キューに書き込む Lambda 関数を作成する。メタデータ抽出 Lambda 関数を大きなバッチサイズで SQS キューにサブスクライブする。
SQS に複数の Lambda をサブスクライブしても 1 つのコンシューマーがメッセージを取得すると他には見えなくなるため、同一ファイルを複数カテゴリで並列処理できません。
C
AWS Step Functions ワークフローを作成して Lambda 関数を並列実行する。ファイルのリストを取得して各ファイルのメタデータ抽出ワークフローを実行する別の Step Functions ワークフローを作成する。
Step Functions のみの構成では大量ファイルのバッファリングができません。
D
各 Lambda 関数の AWS Batch コンピューティング環境を作成する。コンピューティング環境の AWS Batch ジョブキューを設定する。ファイルのリストを取得して各アイテムをジョブキューに書き込む Lambda 関数を作成する。
AWS Batch は Lambda ベースの並列処理には適さない。

解説

選択肢A は Step Functions の Parallel ステートを使うことで、1 つの写真ファイルに対してすべてのカテゴリの Lambda を同時に並列実行できます。SQS でリクエストをバッファリングし、Lambda が StartExecution API を呼び出して Step Functions ワークフローを起動する構成により、スケーラブルかつ管理された並列処理が実現します。 選択肢B は SQS に複数の Lambda をサブスクライブしても 1 つのコンシューマーがメッセージを取得すると他には見えなくなるため、同一ファイルを複数カテゴリで並列処理できません。 選択肢C は Step Functions のみの構成では大量ファイルのバッファリングができず、スケーラブルなリクエスト管理が実現できません。 選択肢D は AWS Batch はコンテナ・バッチジョブ向けであり、Lambda ベースの並列処理オーケストレーションには適しない構成です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SAP の問題一覧に戻る