Q39 — AWS SAA-C03 第4章
第 39/105 問 | ← 第4章
Q234. 金融会社の顧客は、金融アドバイザーとの面談予約をSMSで依頼しています。Amazon EC2インスタンス上で実行されるWebアプリケーションが、この予約リクエストを受け付けます。SMSメッセージは、そのWebアプリケーションを経由してAmazon Simple Queue Service(Amazon SQS)キューに送信されます。別のEC2インスタンス上で実行されるアプリケーションが、その後、顧客に対して面談の招待メールおよび確認メールを送信します。予約が正常に完了した後、このアプリケーションは面談情報をAmazon DynamoDBデータベースに保存します。会社の規模が拡大するにつれ、顧客から「面談招待メールの到着が遅くなっている」という報告が寄せられるようになりました。この問題を解決するために、ソリューションアーキテクトは何を推奨すべきでしょうか?
- A. DynamoDB Accelerator(DAX)クラスターをDynamoDBデータベースの前に配置する。
- B. 予約リクエストを受け付けるWebアプリケーションの前にAmazon API Gateway APIを配置する。
- C. Amazon CloudFrontディストリビューションを追加し、オリジンとして予約リクエストを受け付けるWebアプリケーションを設定する。
- D. 面談招待メールを送信するアプリケーションに対してAuto Scalingグループを追加し、SQSキューの深度に基づいてスケーリングするように設定する。 ✓
正解: D. 面談招待メールを送信するアプリケーションに対してAuto Scalingグループを追加し、SQSキューの深度に基づいてスケーリングするように設定する。
解説
問題の根本原因は、SQSキューに蓄積されたメッセージを処理するアプリケーション(面談招待・確認メール送信)の処理能力が不足していることです。顧客からの報告は「招待メールの到着が遅い」=「SQSメッセージの消費(処理)が遅い」ことを示しており、これはコンシューマー側(メール送信アプリケーション)のスケーリング不足が原因です。SQSキューの深度(ApproximateNumberOfMessagesVisible)をメトリクスとしてAuto Scalingを設定すれば、負荷に応じてEC2インスタンス数を自動的に増減させ、メッセージ処理の遅延を解消できます。選択肢AはDynamoDBへの読み取り負荷軽減に有効ですが、メール送信遅延の原因(SQS処理ボトルネック)とは無関係です。選択肢BとCは、Webアプリケーション(プロデューサー側)の可用性・パフォーマンス向上策であり、メッセージ消費側の遅延には寄与しません。