SAA-C03:AWS Certified Solutions Architect - Associate 回復性のあるアーキテクチャの設計 問1
回復性のあるアーキテクチャの設計/スケーラブルで疎結合なアーキテクチャの設計Web フロントが受け付けた注文を、バックエンドの処理能力に左右されず取りこぼさないよう非同期で処理し、急なアクセス増(スパイク)も吸収したいと考えています。最も適切な設計はどれですか。
当サイトのオリジナル問題(SAA-C03:AWS Certified Solutions Architect - Associateの出題範囲「回復性のあるアーキテクチャの設計」に対応。実際の試験問題ではありません)
- Aフロントがバックエンドを同期的に直接呼び出す
- BAmazon SQS キューを間に挟み、フロントはメッセージを送信し、バックエンドは自分の処理能力に応じて取り出して処理する(疎結合・バッファリング)
- Cバックエンドをピークに合わせた固定台数で常時起動しておく
- Dすべての処理を単一の Lambda 関数で同期的に実行する
正解:B
解説
Amazon SQS(Simple Queue Service)をフロントとバックエンドの間に挟むと、フロントはメッセージをキューへ送信するだけで済み、バックエンドは自分の処理能力に応じてメッセージを取り出して処理できます。これにより両者が疎結合になり、アクセスのスパイトもキューがバッファとして吸収するため、処理の取りこぼしを防げます。
選択肢ごとの解説
- A誤り。同期的な直接呼び出しは、バックエンドが遅れるとフロントも待たされ、スパイクの吸収や疎結合にはなりません。
- B正しい。SQS を挟んでフロントが送信・バックエンドが自分のペースで取り出す設計は、疎結合とバッファリングを両立します。
- C誤り。ピークに合わせた固定台数の常時起動は、コストが高く弾力性にも欠け、要件に適しません。
- D誤り。すべてを単一 Lambda で同期実行すると、スパイクや取りこぼしへの耐性が得られません。