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

Eコマースプラットフォームで注文確定イベントが発生するたびに、在庫サービス・配送サービス・通知サービスの3つを並行して更新する必要がある。各サービスは独立してスケールし、いずれかが一時停止しても注文データが失われないようにしたい。

A
SQS FIFOキュー1つに3サービスが順番にポーリングする構成にして、処理の一貫性とメッセージ順序を保証する
SQS FIFOキューへの順次ポーリングでは3サービスがメッセージを競合取得する実装が複雑になり、並行かつ独立した処理が困難。
B
SNSトピックに3つのSQSキューをサブスクライブし、各サービスが独立したキューからポーリングして並行処理する
✓ 正解
SNSが3つのSQSキューへ並行配信し、各サービスが独立キューからポーリングすることで並行処理とSQSの耐久性による保持を両立する。
C
EventBridgeバスにイベントを発行し、3つのLambda関数をターゲットに設定してイベントドリブンで並行処理させる
EventBridge + Lambdaも並行処理は可能だが、Lambda失敗時の再試行にDLQ設定が別途必要でSQSほどの堅牢なメッセージ保持を持たない。
D
注文サービスから3サービスのAPIエンドポイントに同時HTTPリクエストを発行し、失敗時はStep FunctionsのWaitステートとRetryで再送する
APIへの直接HTTPリクエストはサービス間の強い結合を生み、1サービスの障害が注文サービス全体の遅延・失敗に波及する密結合構成になる。

解説

SNSファンアウト+SQSパターンはSNSが複数SQSキューへ並行配信しSQSがバッファとなるため、各サービスの独立スケールと耐障害性を両立する。

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

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

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