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

ソリューションアーキテクト – アソシエイト

正解 A問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
あるスタートアップ企業が、ユーザーのセッション情報を保持するWebアプリケーションを開発しています。アクセス数は1日あたり約50万件で、セッションデータは10分間のみ保持すれば十分です。データは単純なキー・バリュー構造で、マイクロ秒レベルの超低レイテンシーな応答速度が求められています。また、データの自動削除機能が必要です。このような要件を満たすために最も適切なAWSサービスはどれですか。
  • Amazon ElastiCacheを使用し、TTL機能でセッションデータを管理する
  • Amazon RDSを使用し、cron処理で期限切れデータを削除する
  • Amazon DynamoDBを使用し、TTL機能でセッションデータを管理する
  • Amazon Redshiftを使用し、列指向ストレージでセッションデータを管理する
解説 頻出度★★★★
この問題は、「キー・バリュー × TTL 自動削除 × マイクロ秒レベルの超低レイテンシー」の要件で、DynamoDB ではなくインメモリの ElastiCache を選べるかがポイント
正解

A. Amazon ElastiCacheを使用し、TTL機能でセッションデータを管理する

Amazon ElastiCache はインメモリデータストアで、データをメモリ上に保持しディスク I/O を介さないため、マイクロ秒レベルの応答を実現できる。本問で唯一この要件を満たす。
Redis / Memcached ともにキーごとの TTL(有効期限)を設定でき、10 分経過したセッションを自動的に失効・削除できるため「自動削除機能」の要件も満たす。
セッション情報のように短命で失っても再ログインで復旧できるデータは、まさにインメモリキャッシュの典型的なユースケース。

B. Amazon RDSを使用し、cron処理で期限切れデータを削除する

Amazon RDS はリレーショナルデータベースで、永続的・構造化されたデータの保存が本来の用途。単純なキー・バリューにはデータモデルが過剰。
ディスクベースであるためマイクロ秒レベルの応答は原理的に達成できない。
さらに cron で期限切れデータを削除する構成は「自動削除機能」とは言えず、削除ジョブの実装・監視という運用負荷まで抱えることになる。

C. Amazon DynamoDBを使用し、TTL機能でセッションデータを管理する

Amazon DynamoDB はキー・バリュー型 × TTL 機能あり × 高スケーラブルと、本問の要件の多くに合致するため最も紛らわしい選択肢。
しかし公式に示される応答性能は一桁ミリ秒(数千マイクロ秒)であり、「マイクロ秒レベル」という一点だけで要件を満たせない
DynamoDB を使いつつマイクロ秒応答が必要なら、前段にインメモリキャッシュである DynamoDB Accelerator(DAX) を置く構成になる。

D. Amazon Redshiftを使用し、列指向ストレージでセッションデータを管理する

Amazon Redshift は列指向のデータウェアハウスで、大量データに対する分析クエリ(集計・スキャン)に特化している。
セッション管理のような小さなレコードへの高頻度な読み書きは最も苦手とするアクセスパターンで、レイテンシーもコストも要件に全く合わない。
TTL による自動削除の仕組みも持たない。

構成図

ユーザー(約50万件/日)
   │
   ▼
Web アプリケーション ──マイクロ秒の読み書き──▶ Amazon ElastiCache
                                                  │ TTL 10分
                                                  ▼
                                          期限切れデータを自動削除
これだけ覚える(記憶フック)
マイクロ秒ならインメモリ(ElastiCache/DAX)、一桁ミリ秒でよければ DynamoDB。「セッション+TTL」だけで即断しない。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
マイクロ秒レベルの超低レイテンシー ディスクベースの DB では原理的に不可能。インメモリ(ElastiCache)だけが満たせる、本問最大の決め手
→選択肢(B・C・D)を消す
単純なキー・バリュー構造 リレーショナル(RDS)や列指向・分析用(Redshift)はデータモデルが不一致
→選択肢(B・D)を消す
セッションデータは 10 分間のみ保持+データの自動削除機能が必要 TTL 機能を持つ ElastiCache/DynamoDB が候補。cron による削除ジョブは「自動削除機能」とは言えない
→選択肢(A・C)は候補
1 日あたり約 50 万件のアクセス/10 分で消えてよいデータ 高頻度アクセスの短命データはキャッシュ層で受けるのが定石。永続化やバックアップは不要
→選択肢(A)が正解
ひっかけポイント
  • 「セッション情報+TTL=DynamoDB」と定型で覚えていると C を選んでしまう。本問は「マイクロ秒」の一語だけで ElastiCache に決まる
  • DynamoDB の公称性能は一桁ミリ秒「ミリ」と「マイクロ」は 1,000 倍違う。単位の読み飛ばしが失点に直結する
  • 選択肢 C は「キー・バリュー」「TTL」「スケーラブル」と要件の 3 つまで満たしてしまう。満たさない要件が 1 つでもあれば消す、という原則を徹底する
  • DynamoDB の TTL は期限到来後すぐに削除されるとは限らない(バックグラウンド処理で通常数日以内)。厳密な時間で消したい要件では注意
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「応答は一桁ミリ秒で十分、フルマネージドでサーバーレスがよい」 DynamoDB+TTL が正解に変わる。
DynamoDB を使い続けたまま読み込みをマイクロ秒にしたい」 DAX を前段に追加するのが正解軸。
「セッションを失いたくない(永続化必須) 永続性を持つ DynamoDB や、ElastiCache と DB の併用が候補になる。
「ゲームのリアルタイムランキングを作りたい」 ElastiCache(Redis)のソート済みセットが定番の正解。
関連サービスの解説 Amazon DynamoDB
Amazon ElastiCache
Amazon RDS
Amazon Redshift
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 63%
No.3 解説
あるスタートアップ企業が、ユーザーのセッション情報を保持するWebアプリケーションを開発しています。アクセス数は1日あたり約50万件で、セッションデータは10分間のみ保持すれば十分です。データは単純なキー・バリュー構造で、マイクロ秒レベルの超低レイテンシーな応答速度が求められています。また、データの自動削除機能が必要です。このような要件を満たすために最も適切なAWSサービスはどれですか。
  • Amazon ElastiCacheを使用し、TTL機能でセッションデータを管理する
  • Amazon RDSを使用し、cron処理で期限切れデータを削除する
  • Amazon DynamoDBを使用し、TTL機能でセッションデータを管理する
  • Amazon Redshiftを使用し、列指向ストレージでセッションデータを管理する

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