Q57 — AWS SAA-C03 第13章

第 57/100 問 | ← 第13章

Q957. ある会社では、自社ウェブサイトで実施するアンケートを用いて顧客満足度を追跡しています。このアンケートは、1時間に数千件の回答が寄せられる場合もあります。現在、アンケート結果はメールで会社に送信され、従業員が手動で結果を確認し、顧客の感情(センチメント)を評価しています。 会社は、この顧客アンケートプロセスを自動化したいと考えています。また、過去12か月分のアンケート結果を常に利用可能にしておく必要があります。 これらの要件を、最もスケーラブルな方法で満たすソリューションはどれですか?

正解: A. アンケート結果データを、Amazon Simple Queue Service(Amazon SQS)キューに接続されたAmazon API Gatewayエンドポイントに送信します。SQSキューをポーリングし、Amazon Comprehendを呼び出してセンチメント分析を行い、その結果をAmazon DynamoDBテーブルに保存するAWS Lambda関数を作成します。DynamoDB内の全レコードのTTL(Time to Live)を、未来の365日後に設定します。

解説

これらの要件を最もスケーラブルな方法で満たすソリューションは、選択肢Aです。アンケート結果データを、Amazon SQSキューに接続されたAmazon API Gatewayエンドポイントに送信し、SQSキューをポーリングするAWS Lambda関数を作成してAmazon Comprehendによるセンチメント分析を実行し、結果をAmazon DynamoDBテーブルに保存、さらに全レコードのTTLを365日後に設定します。 理由は以下の通りです。 ・スケーラビリティ:SQS、Lambda、DynamoDBはいずれも、大量のデータを処理できる高度にスケーラブルなサービスです。SQSはバッファとして機能し、アンケート結果の急増(バーストトラフィック)によってLambda関数が過負荷になるのを防ぎます。Lambda関数は着信データ量に応じて自動的にスケール可能です。DynamoDBは、高頻度かつ大規模なデータの保存・検索に最適化されたNoSQLデータベースです。 ・デカップリング:SQSにより、アンケートデータの送信元(プロデューサー)と受信・処理側(コンシューマー:Lambda関数)が分離されるため、それぞれを独立してスケールおよび障害耐性を持たせることができます。 ・センチメント分析:Amazon Comprehendは、自然言語テキストから感情(ポジティブ/ネガティブなど)を正確かつスケーラブルに抽出するためのマネージドサービスであり、顧客の感情を自動評価するのに最適です。 ・データ保持期間:DynamoDBのTTL(Time to Live)機能により、レコードが自動的に365日後に削除されるため、12か月間のデータ保持という要件を確実に満たせます。 他の選択肢がスケーラブルでない理由: B:EC2インスタンス上でAPIを実行すると、スケーリングが手動または複雑なAuto Scaling構成を必要とし、トラフィック増加への対応が遅れやすく、スケーラビリティが制限されます。 C:S3は非常にスケーラブルなストレージですが、リアルタイム処理には向いておらず、S3イベント通知+Lambdaの組み合わせではレイテンシが発生しやすく、SQS+Lambdaによるリアルタイム処理に比べて効率性・スケーラビリティが劣ります。また、Amazon Rekognitionは主に画像・動画分析向けであり、テキストのセンチメント分析には不適切です。 D:Amazon Lexは、チャットボットや音声対話システムなどの対話型AIアプリケーション向けのサービスであり、汎用的なテキストセンチメント分析には設計されていません。Amazon Comprehendと比較して精度・効率性が低く、本ユースケースには不適切です。 まとめると、選択肢Aは、SQS、Lambda、Comprehend、DynamoDBといったAWSのスケーラブルなマネージドサービスを連携させることで、大量のアンケートデータの受信・処理・分析・保存を自動的かつ効率的に実現でき、最もスケーラブルなソリューションです。