Q55 — AWS SAA-C03 第8章
第 55/65 問 | ← 第8章
Q550. ある企業が顧客注文を処理するアプリケーションを運用しています。このアプリケーションは Amazon EC2 インスタンス上でホストされており、注文データは Amazon Aurora データベースに保存されます。トラフィックが高まる際に、ワークロードが注文を十分な速度で処理できず、遅延が発生することがあります。ソリューションアーキテクトは、注文をデータベースに確実かつ可能な限り迅速に書き込むために、どのような対応を行うべきでしょうか?
- A. トラフィックが高まる際に EC2 インスタンスのサイズを拡大し、注文を Amazon Simple Notification Service (Amazon SNS) に書き込みます。その後、データベースエンドポイントを SNS トピックにサブスクライブさせます。
- B. 注文を Amazon Simple Queue Service (Amazon SQS) キューに書き込み、Application Load Balancer の背後で Auto Scaling グループにより管理される EC2 インスタンスを使用して、SQS キューから注文を読み取り、データベースへ処理します。 ✓
- C. 注文を Amazon Simple Notification Service (Amazon SNS) に書き込み、データベースエンドポイントを SNS トピックにサブスクライブさせます。さらに、Application Load Balancer の背後で Auto Scaling グループにより管理される EC2 インスタンスを使用して、SNS トピックから注文を読み取ります。
- D. EC2 インスタンスの CPU 使用率がしきい値を超えた場合に、注文を Amazon Simple Queue Service (Amazon SQS) キューに書き込みます。その後、Application Load Balancer の背後でスケジュールに基づくスケーリングを用いた Auto Scaling グループ内の EC2 インスタンスを使用して、SQS キューから注文を読み取り、データベースへ処理します。
正解: B. 注文を Amazon Simple Queue Service (Amazon SQS) キューに書き込み、Application Load Balancer の背後で Auto Scaling グループにより管理される EC2 インスタンスを使用して、SQS キューから注文を読み取り、データベースへ処理します。
解説
注文の信頼性とスケーラビリティを確保するには、一時的なトラフィック増加に対しても耐えうる非同期処理アーキテクチャが最適です。SQS はメッセージの永続化と再試行機能を提供し、注文のロストを防ぎます。また、Auto Scaling グループによる EC2 インスタンスの動的スケーリングにより、負荷に応じた処理能力を柔軟に確保できます。選択肢 A および C では、SNS はプッシュ型の通知サービスであり、データベースが直接 SNS をサブスクライブして注文を受信・処理することはできません(Aurora は SNS のサブスクライバーではありません)。選択肢 D は CPU しきい値やスケジュールベースのスケーリングに依存しており、リアルタイムな負荷変動への対応が不十分であり、キューへの書き込みタイミングも遅延を招きます。したがって、最も適切なのは選択肢 B です。