Q71 — AWS DOP-C02 第2章
第 71/100 問 | ← 第2章
ある企業が新しいAWSアカウントで新しいアプリケーションを展開しました。このアプリケーションには、Amazon Simple Queue Service(SQS)標準キューからメッセージを処理するAWS Lambda関数が含まれており、処理結果はAmazon S3バケットに保存されます。Lambda関数は、メッセージがキューに送信されてから1秒以内に処理を完了する必要があります。Lambda関数の最大バッチサイズは10件で、1件のメッセージ処理に2秒かかります。 アプリケーションの初日における負荷増加に伴い、キュー内のメッセージの蓄積速度がLambda関数の処理能力を超えました。一部のメッセージは、要求される処理時間制約を満たせませんでした。ログによると、キュー内の多くのメッセージが無効なデータを含んでいます。企業は、有効なデータを持つメッセージについて、時間制約を満たす必要があります。 これらの要件を満たすソリューションはどれですか?
- A. Lambda関数のバッチサイズを増加させます。標準キューをFIFOキューに変更します。Lambdaの同時実行数上限を米国東部(バージニア北部)リージョンで増加させます。
- B. Lambda関数のバッチサイズを縮小します。SQSのメッセージスループット割り当てを増加させます。Lambdaの同時実行数上限を米国東部(バージニア北部)リージョンで増加させます。
- C. Lambda関数のバッチサイズを増加させます。S3バケットでS3 Transfer Accelerationを設定します。FIFOキューを設定します。
- D. Lambda関数のバッチサイズをそのままにします。Lambda関数を設定して失敗したバッチ項目を報告するようにします。FIFOキューを設定します。 ✓
正解: D. Lambda関数のバッチサイズをそのままにします。Lambda関数を設定して失敗したバッチ項目を報告するようにします。FIFOキューを設定します。
解説
AWS LambdaとAmazon SQSの統合において、メッセージ処理速度が不足し無効データが存在する場合、有効なメッセージを所定の時間内に処理することが重要です。Lambdaのイベントソースマッピングは、`ReportBatchItemFailures`を有効化することで部分失敗を報告でき、関数は無効なメッセージをスキップして全体のバッチ再試行を回避できます。無効なメッセージはデッドレターキュー(DLQ)にルーティングされ、有効なメッセージの処理を妨げません。AWSドキュメントによると、`ReportBatchItemFailures`を設定することで、部分失敗による重複処理を削減し、スループット効率を向上させることができます。選択肢Dは、バッチサイズを維持しつつDLQを導入することで、無効データの蓄積問題を直接解決します。他の選択肢は無効データへの対応がなく、またはバッチサイズの変更がタイムリミット要件に悪影響を与える可能性があります。