SAA弾力性に優れたアーキテクチャの設計
ECサイトのバックエンドでは、注文処理システムが1日のうち特定の時間帯に大量の注文リクエストを受け取ります。注文処理には平均30秒かかりますが、リクエストを失いたくはありません。処理能力を超えた場合でもリクエストを安全に保持できる疎結合な構成として最も適切なものはどれですか?
AALBのコネクションタイムアウトを延長してすべてのリクエストを保持する
ALBのコネクションタイムアウト延長により全リクエストを保持することは物理的に不可能で、タイムアウト期間内のリクエストのみ保持でき、接続が切れればリクエストは失われます。
BAmazon SQSキューを注文APIとバックエンド処理の間に配置する
✓ 正解
SQSはピーク負荷時のリクエストを安全にキューに蓄積でき、バックエンド処理の処理能力を超えた場合でもメッセージは保護されます。コンシューマーは自分のペースでメッセージを取り出して処理できるため、リクエスト損失を防ぎます。
CAmazon SNS トピックを注文 API とバックエンド処理の間に配置する
Amazon SNSはPub/Sub型の即時プッシュ配信サービスであり、SQSと異なりメッセージをキューに保持する機能を持ちません。バックエンドが処理しきれない場合はメッセージが失われる可能性があり、ピーク時の安全な保持という要件を満たしません。
DLambda関数の同時実行数上限を引き上げてすべてのリクエストを並列処理する
Lambda関数の同時実行数上限引き上げは短期的な処理能力向上に寄与しますが、ピーク負荷を超えた場合のメッセージ保持機能はなく、要件の「ピーク時のリクエスト損失防止」を完全には満たしません。
解説
Amazon SQSは疎結合アーキテクチャのためのメッセージキューサービスです。注文リクエストをSQSに蓄積することで、バックエンド処理の処理能力を超えた場合でもメッセージを安全に保持できます。コンシューマー(処理側)は自分のペースでメッセージを取り出して処理できるため、ピーク時のリクエスト損失を防げます。
AのALBのタイムアウト延長はリクエスト保持には限界があり、接続が切れればリクエストは失われます。
CのAmazon SNSはPub/Sub型のプッシュ配信サービスです。メッセージをキューに蓄積する機能がないため、バックエンドが処理しきれない場合にメッセージが失われる可能性があります。
DのLambdaの同時実行数増加は処理能力の一時的な向上には役立ちますが、ピークを超えた場合のメッセージ保持はできません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →