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

あるECサイトはREST APIを通じて注文を受け付け、在庫更新・決済処理・確認メール送信を行います。セール期間中、決済処理サービスが過負荷になり注文の失敗と消失が発生しています。すべての注文を確実に保持しつつピーク時の負荷に対応するアーキテクチャとして最適なものはどれですか?

A
ALB の後ろに複数の EC2 インスタンスで決済サービスをデプロイし、スティッキーセッションを有効にして負荷を分散する
ALB + EC2は過負荷時に注文が拒否・消失するリスクがあります。
B
API と決済処理サービスの間に Amazon SQS キューを配置し、SQS キューの深さに基づいて決済サービスをオートスケーリングする
✓ 正解
SQS を介した非同期処理により、注文受付と決済処理を疎結合にできます。ピーク時にキューが蓄積しても注文データは失われず(SQS は最大14日間メッセージを保持)、キューの深さに基づくオートスケーリングで決済サービスが需要に追従します。
C
Amazon ElastiCache を決済サービスの前段に配置し、決済検証結果をキャッシュしてリクエスト数を削減する
決済データのキャッシュは最新性が保証されず不正確な処理につながります。
D
AWS Lambda で決済サービスを再実装し、予約済み同時実行数をピーク負荷の最大値に設定する
Lambda の予約済み同時実行数の制限は突発的な超ピーク時に注文をキューイングせず失います。

解説

SQS を介した非同期処理により、注文受付と決済処理を疎結合にできます。ピーク時にキューが蓄積しても注文データは失われず(SQS は最大14日間メッセージを保持)、キューの深さに基づくオートスケーリングで決済サービスが需要に追従します。 選択肢AのALB + EC2は過負荷時に注文が拒否・消失するリスクがあります。 選択肢Cの決済データのキャッシュは最新性が保証されず不正確な処理につながります。 選択肢DのLambda の予約済み同時実行数の制限は突発的な超ピーク時に注文をキューイングせず失います。

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

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

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