Q66 — AWS SAA-C03 第13章
第 66/100 問 | ← 第13章
Q966. ソリューションアーキテクトが、新しいアプリケーション向けのイベント駆動型アーキテクチャを設計しています。このソリューションアーキテクトは Amazon Simple Notification Service (Amazon SNS) トピックを作成し、AWS Lambda 関数をその SNS トピックにサブスクライブしました。また、Amazon CloudWatch を使用してシステムが期待通りに動作することを検証しています。テストとして、ソリューションアーキテクトは SNS トピックにメッセージを公開しました。CloudWatch の出力を確認したところ、Lambda 関数が複数回呼び出されていることがわかりました。Lambda 関数が複数回呼び出された最も可能性の高い理由は何ですか?
- A. Lambda 関数が同一の SNS トピックに複数回サブスクライブされています。
- B. SNS の配信ポリシーが、メッセージを複数回配信するように設定されています。
- C. SNS のリドライブポリシーが、メッセージを複数回配信するように設定されています。 ✓
- D. Lambda 関数のアプリケーションロジックにエラーがあり、その結果、Lambda 関数自身が再試行を実行しています。
正解: C. SNS のリドライブポリシーが、メッセージを複数回配信するように設定されています。
解説
正解は C です。SNS のリドライブポリシーが、メッセージを複数回配信するように設定されています。 理由: A. Lambda 関数が同一の SNS トピックに複数回サブスクライブされている:これは最も可能性の高い理由ではありません。ソリューションアーキテクトが意図せず同一トピックに複数回サブスクライブした場合、通常は事前に気づくでしょう。 B. SNS の配信ポリシーが、メッセージを複数回配信するように設定されている:SNS の配信ポリシーは、サブスクライバーへのメッセージ配信を試行する際の挙動(例:再試行間隔、最大試行回数)を定義しますが、正常な配信が成功した場合にメッセージを意図的に複数回送信するような設定は存在しません。 C. SNS のリドライブポリシーが、メッセージを複数回配信するように設定されている:これが最も可能性の高い理由です。SNS のリドライブポリシーは、配信に失敗したメッセージをデッドレターキュー(DLQ)に移動させた後、再配信(リドライブ)するかどうかを制御します。DLQ から再配信が有効になっている場合、同一メッセージが複数回 Lambda 関数に届き、結果として関数が複数回呼び出されます。 D. Lambda 関数のアプリケーションロジックにエラーがあり、その結果、Lambda 関数自身が再試行を実行している:これは可能性が低く、問題の根本原因は Lambda 関数のコードではなく、SNS 側の構成(特にリドライブポリシー)にあると考えられます。 まとめると、Lambda 関数が複数回呼び出された最も可能性の高い理由は、SNS のリドライブポリシーが失敗したメッセージの再配信を有効化しており、これによりサブスクライブされた Lambda 関数が同一メッセージに対して複数回起動されたためです。