Q46 — AWS SAA-C03 第2章
第 46/65 問 | ← 第2章
Q111. ある企業には、以下のコンポーネントからなるデータ取り込みワークフローがあります。 ・新しいデータ配信に関する通知を受信する Amazon Simple Notification Service (Amazon SNS) トピック ・データを処理および保存する AWS Lambda 関数 この取り込みワークフローは、ネットワーク接続の問題により時折失敗します。失敗が発生した場合、担当者が手動でジョブを再実行しない限り、対応するデータは取り込まれません。すべての通知が最終的に処理されるように、ソリューションアーキテクトは何を行うべきですか?
- A. Lambda 関数を複数の可用性ゾーンにまたがってデプロイするように設定する
- B. Lambda 関数の構成を変更し、関数の CPU およびメモリ割り当てを増加させる
- C. SNS トピックの再試行戦略を設定して、再試行回数と再試行間の待機時間をともに増加させる
- D. Amazon Simple Queue Service (Amazon SQS) キューを障害時の送信先として設定する。Lambda 関数を変更し、キュー内のメッセージを処理するようにする ✓
正解: D. Amazon Simple Queue Service (Amazon SQS) キューを障害時の送信先として設定する。Lambda 関数を変更し、キュー内のメッセージを処理するようにする
解説
すべての通知が最終的に処理されるようにするには、ソリューションアーキテクトが Amazon SQS キューを Lambda 関数の障害時の送信先(on-failure destination)として設定するのが有効です。これにより、Lambda 関数の実行が失敗した場合、失敗した通知が自動的に SQS キューに送信されます。その後、これらの失敗通知は別の Lambda 関数によってポーリングまたはトリガーされ、データの再処理が保証されます。 したがって、選択肢 A および B は、失敗時の通知処理方法とは関係ありません。選択肢 C については、再試行回数を増やしても、すべての通知が確実に成功するとは限りません。よって、最も適切な答えは D です。