Q48 — AWS SAA-C03 第14章
第 48/100 問 | ← 第14章
Q1048. ある企業は食品配達サービスを運営しています。最近の成長に伴い、注文処理システムがピーク時のトラフィックにおいてスケーリングの問題を抱えています。現在のアーキテクチャでは、アプリケーションから注文を受信するAmazon EC2インスタンスがAuto Scalingグループで構成されています。また、別のAuto Scalingグループに属するEC2インスタンスが注文の履行(フルフィルメント)を行っています。注文受付プロセスは高速ですが、注文履行プロセスには時間がかかる場合があります。スケーリングイベントによってデータが失われてはなりません。ソリューションアーキテクトは、ピーク時のトラフィック時間帯において、注文受付プロセスと注文履行プロセスの両方が十分にスケール可能であることを保証する必要があります。これらの要件を満たすソリューションはどれですか?
- A. Amazon CloudWatchを使用して、両方のAuto Scalingグループ内の各EC2インスタンスのCPUUtilizationメトリクスを監視します。各Auto Scalingグループの最小容量を、それぞれのピークワークロード値に合わせて設定します。
- B. Amazon CloudWatchを使用して、両方のAuto Scalingグループ内の各EC2インスタンスのCPUUtilizationメトリクスを監視します。CloudWatchアラームを設定し、そのアラームがAmazon Simple Notification Service (Amazon SNS)トピックを呼び出して、必要に応じて追加のAuto Scalingグループを作成するようにします。
- C. 2つのAmazon Simple Queue Service (Amazon SQS)キューをプロビジョニングします。1つ目のSQSキューを注文受付用に使用し、2つ目のSQSキューを注文履行用に使用します。EC2インスタンスをそれぞれのキューからメッセージをポーリングするように設定します。キューから送信される通知に基づいてAuto Scalingグループをスケールさせます。
- D. 2つのAmazon Simple Queue Service (Amazon SQS)キューをプロビジョニングします。1つ目のSQSキューを注文受付用に使用し、2つ目のSQSキューを注文履行用に使用します。EC2インスタンスをそれぞれのキューからメッセージをポーリングするように設定します。各キュー内のメッセージ数に基づいてAuto Scalingグループをスケールさせます。 ✓
正解: D. 2つのAmazon Simple Queue Service (Amazon SQS)キューをプロビジョニングします。1つ目のSQSキューを注文受付用に使用し、2つ目のSQSキューを注文履行用に使用します。EC2インスタンスをそれぞれのキューからメッセージをポーリングするように設定します。各キュー内のメッセージ数に基づいてAuto Scalingグループをスケールさせます。
解説
注文受付および注文履行の両プロセスがピーク時のトラフィックにおいて十分にスケール可能であり、かつスケーリングイベントによるデータ損失を防ぐためには、以下の選択肢Dが最適です。 D. 2つのAmazon Simple Queue Service (Amazon SQS)キューをプロビジョニングします。1つ目のSQSキューを注文受付用に使用し、2つ目のSQSキューを注文履行用に使用します。EC2インスタンスをそれぞれのキューからメッセージをポーリングするように設定します。各キュー内のメッセージ数に基づいてAuto Scalingグループをスケールさせます。 理由: 1. SQSによるデカップリング: ・SQSを活用することで、注文受付プロセスと注文履行プロセスを分離(デカップリング)できます。これにより、注文受付は履行プロセスの完了を待たずに即座に実行可能となり、全体のシステム応答性が向上します。 2. スケーラビリティ: ・別々のSQSキューを用いることで、注文履行キュー内のメッセージ数に基づき、注文履行用のAuto Scalingグループを独立してスケールできます。これにより、注文の急増にも効率的に対応可能です。 3. データ損失の防止: ・SQSは、メッセージ(注文)を正常に処理されるまでキュー内に保持するため、スケーリングイベントや処理遅延によるデータ損失を防ぎます。 4. ポーリング方式: ・EC2インスタンスがSQSキューをポーリングしてメッセージを取得することで、需要に応じた動的な処理が可能となり、リソースの効率的な利用が実現されます。 他の選択肢の検討: A. Amazon CloudWatchによるCPUUtilization監視+最小容量の固定設定: ・CPU使用率の監視は有用ですが、最小容量を固定するだけでは、ワークロード変動への動的対応ができません。また、メッセージ処理の効率化に関する仕組みも提供しません。 B. CloudWatchアラーム+SNSによるAuto Scalingグループの動的作成: ・過剰に複雑なアプローチであり、キュー駆動型の処理という根本的な課題に対処しておらず、実装・運用コストも高くなります。 C. SQSの利用は正しいものの、キュー内のメッセージ数に基づくスケーリングが明記されていません: ・キューの存在だけでは、負荷に応じた自動スケーリングが保証されず、ピーク時に依然としてボトルネックが発生する可能性があります。 結論: 選択肢Dは、注文受付および履行の両プロセスを堅牢かつスケーラブルに処理でき、ピーク時におけるデータ整合性と応答性を確保する、耐障害性の高いアーキテクチャを提供します。