Q60 — AWS SAA-C03 第7章

第 60/65 問 | ← 第7章

Q490. ある企業が、保険見積もりを処理するWebアプリケーションをAWS上で設計しています。ユーザーはアプリケーションから見積もりを依頼します。見積もりは見積もりの種類ごとに分離され、24時間以内に応答される必要があり、失われてはなりません。このソリューションは、運用効率を最大化し、保守作業を最小限に抑える必要があります。これらの要件を満たすソリューションはどれですか?

正解: C. 単一のAmazon Simple Notification Service(Amazon SNS)トピックを作成します。Amazon Simple Queue Service(Amazon SQS)キューをこのSNSトピックにサブスクライブします。SNSのメッセージフィルタリングを設定して、見積もりの種類に基づき適切なSQSキューへメッセージを配信するようにします。各バックエンドアプリケーションサーバーを、専用のSQSキューからメッセージを取得・処理するように設定します。

解説

要件を満たすには、メッセージの確実な配信(ロスト防止)、見積もり種別による分離、24時間以内の応答保証、および運用・保守負荷の最小化が必要です。選択肢Cは、SNS+SQSの組み合わせにより、メッセージの耐久性(SQSの永続性)と、SNSのメッセージフィルタリング機能による種別ごとのルーティングを実現します。また、SQSキューごとに独立したコンシューマー(バックエンドサーバー)を配置することで、スケーラビリティと障害隔離も確保されます。Lambda(B)はイベント駆動型で保守負荷は低いですが、SNS→Lambdaの連携では、Lambdaの実行時間制限や再試行挙動により、24時間以内の確実な応答保証が難しく、また失敗時の可視性・再処理が複雑になります。Kinesis(A, D)はリアルタイムストリーミング向けであり、24時間という比較的長いタイムウインドウや、メッセージの厳密な順序保証・ロスト防止の観点で過剰かつ複雑です。特にDはOpenSearch Serviceを検索エンジンとして使用する設計ですが、これはメッセージキューリングの目的には不適切で、耐久性・信頼性・運用簡易性の面で劣ります。したがって、最も適切なのはCです。