SAA-C03弾力性に優れたアーキテクチャの設計EASY単一選択

ある企業が、Amazon S3 バケットへのオブジェクトアップロードをトリガーとして Lambda 関数を起動し、画像のサムネイル生成を行っている。Lambda 関数の処理中にエラーが発生した場合でも、すべての画像を確実に処理したい。最も適切な設定はどれか。

  1. A. Lambda 関数の同時実行数を制限して、処理が重複しないようにする。
  2. B. Lambda 関数のタイムアウトを最大値に設定してすべての処理を完了させる。
  3. C. S3 イベント通知を削除して手動でファイルを処理する。
  4. D. Lambda 関数の送信先(Destination)としてオンエラーの送信先に Amazon SQS キューを設定し、失敗したイベントを SQS に転送して後から再処理できるようにする。
解答と解説を見る

正解: D

Lambda の非同期呼び出し(S3 イベントトリガー)には送信先(Destinations)機能があり、処理成功時と失敗時(エラー時)に異なる送信先を設定できる。エラー時の送信先に SQS キューを設定することで、失敗したイベント(オブジェクトのメタデータを含む)が SQS に転送され、後から再処理できる。最大 2 回の自動リトライ後も失敗した場合に SQS に転送される。選択肢Aの同時実行制限はエラー時の再処理とは無関係で、処理の確実性を向上させない。選択肢CはS3 イベント通知を削除すると Lambda 自動処理の仕組み自体がなくなり要件に反する。選択肢BのLambda タイムアウト最大化は長時間処理を可能にするが、エラーが発生した場合の再処理は解決しない。

▸ この試験を本気で演習する(全150問・無料)