SAA弾力性に優れたアーキテクチャの設計

ある小売業者のEC2ワーカーアプリケーションはSQSキューから注文メッセージを取得して処理している。一部のメッセージが処理に繰り返し失敗し、ワーカーが同じメッセージを何度もリトライし続けている。失敗したメッセージを正常なキューから分離し、後から調査・再処理できる仕組みを最小限の構成変更で導入したい。

A
SQSキューにデッドレターキューを設定し、最大受信数を超えたメッセージを自動的に別キューへ転送する
✓ 正解
SQS DLQはmaxReceiveCount超過メッセージを自動的に別キューへ移動し、本来のキューを正常に保ちながら失敗分を隔離・調査できる。
B
SQSキューのメッセージ保持期間を最大14日間に延長し、CloudWatchダッシュボードで定期監視しながら失敗メッセージを手動で特定・移動する
保持期間の延長はメッセージの削除防止にはなるが、失敗メッセージの自動分離機能はなく手動スキャンは運用負荷が高く現実的でない。
C
SQSキューの可視性タイムアウトをゼロに設定し、処理失敗後すぐに別のワーカーが取得できるようにする
可視性タイムアウトをゼロにすると複数ワーカーが同じメッセージを同時取得する競合が発生し、無限ループはむしろ悪化する。
D
Amazon SNSをSQSの前段に置いてフィルタリングポリシーを設定し、処理困難なメッセージを事前に振り分ける
SNSフィルタリングは配信前のルーティングには有効だが、処理に失敗したメッセージの事後的な隔離・再処理には対応していない。

解説

SQSのデッドレターキュー(DLQ)はmaxReceiveCount超過メッセージを自動転送し、正常キューを汚染せずに障害メッセージを隔離できる。キュー設定変更のみで実現可能。

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

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

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