Q27 — AWS SAA-C03 第14章

第 27/100 問 | ← 第14章

Q1027. ソリューションアーキテクトが、AWSにデプロイされる新しいステートレスアプリケーションのクラウドアーキテクチャを設計しています。このソリューションアーキテクトは、アプリケーション用のAmazon Machine Image(AMI)および起動テンプレートを作成しました。処理が必要なジョブの数に応じて、ジョブを並列で実行する必要があります。また、必要に応じてアプリケーションのAmazon EC2インスタンスを追加・削除できるようにしなければなりません。アプリケーションは疎結合である必要があります。さらに、ジョブ項目は耐久性のあるストレージに保存されなければなりません。これらの要件を満たすソリューションはどれですか?

正解: C. 処理が必要なジョブを保持するためのAmazon Simple Queue Service(Amazon SQS)キューを作成します。起動テンプレートを使用してAuto Scalingグループを作成し、SQSキュー内のアイテム数に基づいてEC2インスタンスを追加・削除するスケーリングポリシーを設定します。

解説

AWS上で新しく構築するステートレスアプリケーション向けに、ジョブを並列で処理し、必要に応じてEC2インスタンスを動的に追加・削除でき、かつジョブ項目を耐久的に保存し、アプリケーション間の結合を緩やかに保つクラウドアーキテクチャを設計する場合、最も適切なソリューションは以下のとおりです: C. 処理が必要なジョブを保持するためのAmazon Simple Queue Service(Amazon SQS)キューを作成します。起動テンプレートを使用してAuto Scalingグループを作成し、SQSキュー内のアイテム数に基づいてEC2インスタンスを追加・削除するスケーリングポリシーを設定します。 解説: 1. ジョブの保存にはAmazon SQS:  - SQSは、分散システム内のコンポーネントを疎結合化するための完全マネージド型メッセージキューイングサービスです。ジョブを耐久的に保存でき、EC2インスタンスの利用可能状況に応じて確実に処理されるよう保証します。 2. 並列処理の実現:  - SQSを活用することで、複数のEC2インスタンスがキューからメッセージ(ジョブ)を同時に取得・処理できます。これにより、大量のジョブを効率的に並列処理することが可能です。 3. キュー長に基づくAuto Scaling:  - Auto Scalingグループのスケーリングポリシーを「SQSキュー内のアイテム数」に基づくように設定すると、ワークロードに応じてEC2インスタンス数を動的に調整できます。キュー内のジョブ数が増加すれば新たなインスタンスが起動され、キューが空になれば不要なインスタンスを終了させてコストを最適化できます。 他の選択肢の検討: A. Amazon SNSトピックをジョブ送信に使用:  - SNSはプッシュ/サブスクライブ型のメッセージ配信に適していますが、ジョブの耐久的保存機能はありません。ジョブをキューにためて順次または並列で処理するユースケースには不適です。 B. SQSキューの使用は正しいものの、スケーリングポリシーがネットワーク使用率に基づいている点が問題です。  - ワークロードの実態(未処理ジョブ数)を正確に反映しない指標であり、適切なスケーリングが困難です。キュー内のアイテム数は、より直接的かつ信頼性の高いスケーリング基準です。 D. SNSトピックをジョブ送信に使用:  - Aと同様に、SNSはジョブの耐久的保存をサポートしません。また、SNSへのメッセージ公開数は、実際に処理待ちのジョブ数とは一致せず、実際の負荷と連動したスケーリングが実現できません。 結論: 選択肢Cは、ステートレスアプリケーションに対して、耐久性・スケーラビリティ・疎結合性を兼ね備えた堅牢なアーキテクチャを実現し、並列ジョブ処理とジョブの耐久的保存という両方の要件を確実に満たす、最も適切なソリューションです。