AWS認定資格 WEB問題集&徹底解説

AIプラクティショナー

正解 B問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
あるチャットボットアプリケーションでは、Amazon Lexを使用してユーザーとの対話を処理しています。このアプリケーションでは、ユーザーの過去の対話履歴や嗜好情報を永続的に保存し、次回のセッションでもその情報を参照してパーソナライズされた応答を提供する必要があります。この要件を満たすために最も適切なAWSサービスはどれですか。
  • Amazon S3 Glacierを使用してセッションデータをアーカイブストレージに保存する
  • Amazon DynamoDBを使用してユーザー情報と対話履歴を保存する
  • Amazon CloudWatchを使用してログとしてユーザーデータを記録する
  • Amazon ElastiCacheを使用してセッション情報をキャッシュに保存する
解説 頻出度★★★★
この問題は、「チャットボットのユーザー属性・対話履歴 × 永続保存 × 低レイテンシーな読み書き」の要件で、キーバリューで即時アクセスできる Amazon DynamoDB を選べるかがポイント

A. Amazon S3 Glacierを使用してセッションデータをアーカイブストレージに保存する

Amazon S3 Glacier は長期アーカイブ向けの低コストストレージで、取り出しに数分〜数時間かかる取り出しモードが中心。
チャットボットは対話の途中でミリ秒単位にユーザーの嗜好や履歴を引く必要があるため、応答時間の要件をまったく満たせない。
「保存はできる」が「すぐ参照できない」ため不適。

正解

B. Amazon DynamoDBを使用してユーザー情報と対話履歴を保存する

Amazon DynamoDB はフルマネージドの NoSQL データベースで、ユーザー ID をパーティションキーにすれば対話履歴や嗜好情報を永続的に保存し、1 桁ミリ秒で読み書きできる。
Amazon Lex のフルフィルメント用 AWS Lambda 関数からセッション属性を読み書きする際の定番の保存先で、セッションをまたいだパーソナライズを実現できる。
スケーリングも自動で、チャットボットのようにトラフィックが変動するワークロードに適合する、唯一の正解。

C. Amazon CloudWatchを使用してログとしてユーザーデータを記録する

Amazon CloudWatch はモニタリングとログ収集のためのサービス。ログとして対話内容を書き出すことはできるが、アプリケーションからユーザー単位で高速に読み出すデータストアではない
ログの保持期間や検索コスト(Logs Insights のスキャン課金)の面でも、リアルタイム参照用途には不向き。
「記録」と「参照可能な永続データストア」を混同させる誤答。

D. Amazon ElastiCacheを使用してセッション情報をキャッシュに保存する

Amazon ElastiCache はインメモリキャッシュで、進行中セッションの一時データを高速に保持する用途には向く。
しかし本問の要件は「次回のセッションでも参照できる永続保存」。TTL による失効やノード障害・フェイルオーバーでデータが失われ得るため、唯一の保存先にはできない
実務では DynamoDB を正とし、ElastiCache はその前段のキャッシュとして併用する。

これだけ覚える(記憶フック)
Lex のパーソナライズ用データ置き場は DynamoDB。キャッシュ(消える)・アーカイブ(遅い)・ログ(検索用)は永続ストアの代わりにならない。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
ユーザーの対話履歴・嗜好情報を保存する 構造化されたユーザー単位のレコードを扱うならデータベースが本命。ログ基盤やアーカイブは保存先の候補ではない
→選択肢(A・C)を消す
「永続的に」保存し、次回セッションでも参照する キャッシュは揮発性(TTL・ノード障害で消失)。永続性が要件なら ElastiCache 単独では成立しない
→選択肢(D)を消す
対話中にリアルタイムで参照する(低レイテンシー) S3 Glacier は取り出しに時間がかかるアーカイブで、会話のレスポンスに間に合わない
→選択肢(A)を消す
Amazon Lex と連携してパーソナライズ応答を返す Lex のフルフィルメント Lambda からユーザー ID をキーにミリ秒で読み書きできる DynamoDB が定番構成
→選択肢(B)が正解
ひっかけポイント
  • ElastiCache は「セッション情報の保存」という文脈で頻出のため選びたくなるが、本問のキーワードは「永続的に」「次回のセッションでも」。キャッシュは永続ストアの代わりにならない
  • CloudWatch は「記録できる=保存できる」と読めてしまうが、アプリのデータストアではなく運用監視の仕組み。ユーザー単位の高速参照には使わない
  • S3 Glacier は「安く大量に保存できる」点が魅力に見えるが、取り出しに時間がかかるのが致命的。「保存できるか」ではなく「いつ・どれだけ速く取り出せるか」で判断する
  • 「チャットボット=Lex」に気を取られがちだが、問われているのはデータの置き場所。Lex 自体は履歴を長期保存するサービスではない
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「進行中の会話の一時的な状態だけをミリ秒で共有したい」 ElastiCache(や Lex のセッション属性)が正解軸に。
「過去の対話ログをまとめて分析・可視化したい」 S3 + Amazon Athena / QuickSight による分析基盤が正解軸に。
「ユーザーの行動履歴からおすすめ商品を提示したい」 Amazon Personalize が正解に変わる。
「対話ログを7 年間コンプライアンス目的で保管したい」 S3 Glacier 系ストレージクラスが正解に浮上する。
「ユーザー発話から感情や意図を分析したい」 Amazon Comprehend が正解軸に。
関連サービスの解説 Amazon CloudWatch
Amazon DynamoDB
Amazon ElastiCache
Amazon Lex
Amazon S3 Glacier
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 65%
No.17 解説
あるチャットボットアプリケーションでは、Amazon Lexを使用してユーザーとの対話を処理しています。このアプリケーションでは、ユーザーの過去の対話履歴や嗜好情報を永続的に保存し、次回のセッションでもその情報を参照してパーソナライズされた応答を提供する必要があります。この要件を満たすために最も適切なAWSサービスはどれですか。
  • Amazon S3 Glacierを使用してセッションデータをアーカイブストレージに保存する
  • Amazon DynamoDBを使用してユーザー情報と対話履歴を保存する
  • Amazon CloudWatchを使用してログとしてユーザーデータを記録する
  • Amazon ElastiCacheを使用してセッション情報をキャッシュに保存する

(会員限定)当問題の評価をお願いします。改善に活用します。