SAPワークロードの移行とモダン化の加速
オンプレミスのアプリケーションをAWSに移行するにあたり、AWSマネージドサービスを最大限活用したいと考えています。このアプリケーションは、大量のメッセージを受け取り、それを非同期で処理するワーカーに渡す構造になっています。可用性を高め、スパイク時の負荷を吸収するために最適なAWSのサービス構成はどれですか?
AAmazon EC2で自前のRabbitMQクラスターを構築する。
EC2上にRabbitMQクラスターを自前構築すると、パッチ適用や冗長化、スケーリングを自力で運用する必要があり、マネージドサービスを最大限活用したいという要件に反し運用負担が大きく不適切。
BAmazon SQSを使用してメッセージをキューイングし、Auto Scalingを設定したEC2またはLambdaで処理する。
✓ 正解
SQSはフルマネージドなメッセージキューで、大量メッセージのバッファリングと非同期処理に最適。スパイク時はキューに滞留させワーカーをAuto Scalingで増減でき、可用性と耐障害性を両立できる。
CAmazon Kinesis Data Streamsを使用してリアルタイムでデータを処理し、S3に保存する。
Kinesis Data Streamsは順序保証付きのリアルタイムストリーム処理向けでシャード管理も要する。単純な非同期タスクのキューイング用途には機能過多でコストや複雑さの面でも最適ではない。
DAmazon SNSトピックを作成し、すべてのワーカーインスタンスをサブスクライブさせる。
SNSはPub/Sub配信で同一メッセージが全サブスクライバーに届くため、ワーカー間でタスクを分担するキューイングには不向き。重複処理が発生し負荷分散にもならず要件に合わない。
解説
SQSがフルマネージドなメッセージキューイングサービスであり、大量のメッセージのバッファリングと非同期処理に最適であるためです。スパイク時にはSQSにメッセージが滞留しても、ワーカー側をオートスケーリングさせることで柔軟に対応でき、可用性も高まります。
選択肢Aは管理負担が大きいためマネージドサービスの活用要件に反します。
選択肢Cはリアルタイム分析向けのストリーミングサービスであり、単純な非同期タスクキューイングには機能過多です。
選択肢DのSNSはPub/Sub配信のため同一メッセージが全サブスクライバーに届き重複処理が発生し、キューイング用途には不適切です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →