DVAAWSのサービスを使用した開発

開発者は注文処理システムを構築しています。各注文は一意の注文IDを持ち、同じ注文IDのメッセージは重複処理されてはなりません。 また、同一顧客の注文はメッセージ到達順に処理する必要があります。 Amazon SQSを使用する場合、最も適切な設定はどれですか?

A
SQS標準キューを使用し、Lambda関数内で注文IDの重複チェックロジックを実装する
SQS標準キューとLambda内の重複チェックロジックは、標準キューが順序保証も重複排除も提供しないため、Lambdaで完全に自前実装する必要があり、ロジックの複雑さと信頼性の観点から不適切です。
B
SQS FIFOキューを使用し、注文IDをMessageDeduplicationIdに、顧客IDをMessageGroupIdに設定する
✓ 正解
SQS FIFOキューはメッセージの順序保証と重複排除機能を提供します。MessageDeduplicationIdに注文IDを設定すると5分間の重複排除ウィンドウ内の重複送信を防ぎ、MessageGroupIdに顧客IDを設定すると同一顧客の注文が到達順に処理されます。
C
SQS標準キューを使用し、可視性タイムアウト(Visibility Timeout)を長く設定して重複処理を防ぐ
SQS標準キューと長い可視性タイムアウト(Visibility Timeout)は、重複処理を完全には防ぐことができません。
D
SQS FIFOキューを使用し、すべてのメッセージに同一のMessageGroupIdを設定して全体の順序を保証する
すべてのメッセージにMessageGroupIdを設定するとキュー全体が1つのグループとなり並列処理が不可能になります。

解説

SQS FIFOキューはメッセージの順序保証と重複排除機能を提供します。MessageDeduplicationIdに注文IDを設定すると5分間の重複排除ウィンドウ内の重複送信を防ぎ、MessageGroupIdに顧客IDを設定すると同一顧客の注文が到達順に処理されます。 選択肢AのSQS標準キューとLambda内の重複チェックロジックは、標準キューが順序保証も重複排除も提供しないため、Lambdaで完全に自前実装する必要があり、ロジックの複雑さと信頼性の観点から不適切です。 選択肢CのSQS標準キューと長い可視性タイムアウト(Visibility Timeout)は、重複処理を完全には防ぐことができません。 選択肢DのすべてのメッセージにMessageGroupIdを設定するとキュー全体が1つのグループとなり並列処理が不可能になります。

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

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

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