AWS認定資格 WEB問題集&徹底解説
AIプラクティショナー
問題文と選択肢
- Amazon S3 Glacierを使用してセッションデータをアーカイブストレージに保存する
- Amazon DynamoDBを使用してユーザー情報と対話履歴を保存する
- Amazon CloudWatchを使用してログとしてユーザーデータを記録する
- Amazon ElastiCacheを使用してセッション情報をキャッシュに保存する
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 S3 Glacierを使用してセッションデータをアーカイブストレージに保存する
- Amazon DynamoDBを使用してユーザー情報と対話履歴を保存する
- Amazon CloudWatchを使用してログとしてユーザーデータを記録する
- Amazon ElastiCacheを使用してセッション情報をキャッシュに保存する