高可用性・耐障害性の設計scenario

注文APIが同期的に在庫サービスと通知サービスを呼び出しており、通知サービスの一時障害で注文全体が失敗します。可用性を高める設計として最も適切なものはどれですか?

A.通知処理をAmazon SQSで非同期化し、失敗時は再試行とデッドレターキューを使用する← 正解
✓ 正解です。注文の必須処理と通知を疎結合にし、SQSの再試行とデッドレターキューを利用すると、一時的な通知障害を注文処理から分離できます。
B.すべての処理を1台の大きなEC2インスタンスに統合する
✗ 単一インスタンスへの統合は単一障害点を作り、可用性を低下させます。
C.通知サービスのタイムアウトを無制限にする
✗ 無制限の待機はリソースを占有し、障害の連鎖を招きます。適切なタイムアウトと非同期化が必要です。
D.注文APIから在庫データベースへの接続数を固定する
✗ 接続数の固定だけでは通知サービス障害による注文失敗を解消できません。

この問題のポイント

注文の必須処理と通知を疎結合にし、SQSの再試行とデッドレターキューを利用すると、一時的な通知障害を注文処理から分離できます。

AWS Certified Solutions Architect - Associate(SAA-C03) の問題一覧