DVAAWSのサービスを使用した開発

セッション管理アプリケーションは、ユーザーのログインセッション情報をAmazon DynamoDBに保存しています。セキュリティ要件により、セッションは作成から24時間経過した後に自動的に無効化・削除される必要があります。アプリケーション側のバッチ処理を自作することなく、最もコスト効率よく自動的に古いデータを削除する機能はどれですか。

A
DynamoDBのTime to Live (TTL) を有効にし、有効期限をエポックタイム(秒)で指定した属性をアイテムに設定する。
✓ 正解
TTL機能を有効にし、有効期限のタイムスタンプを持つ属性を指定するだけで、期限切れのアイテムが自動かつ無料で削除されるため最適です。
B
DynamoDB StreamsとAWS Lambdaを組み合わせて、24時間経過したアイテムを定期的にScanして削除する処理を実装する。
DynamoDB Streamsはデータ変更をキャプチャするものであり、定期的なScan処理を自作すると無駄なRCU消費とコスト増加を招くため不適切です。
C
Amazon EventBridgeルールを使用して24時間ごとにLambda関数をトリガーし、BatchWriteItem APIを利用してアイテムを削除する。
EventBridgeとLambdaによる定期実行(クーロン処理)は、カスタムコードの管理が必要であり、削除処理を行うための書き込みコスト(WCU)も発生します。
D
S3ライフサイクルポリシーを使用して、DynamoDBのテーブルデータを定期的にAmazon S3 Glacierにアーカイブすることで削除する。
S3ライフサイクルポリシーはAmazon S3バケット内のオブジェクトに適用されるものであり、DynamoDBのテーブルデータに直接適用することはできません。

解説

DynamoDBのTime to Live (TTL) 機能を使用すると、指定したタイムスタンプ(エポックタイム形式の秒)を過ぎたアイテムがバックグラウンドで自動的に削除されます。このTTLによる削除処理に対する書き込み容量ユニット(WCU)の消費や追加の実行コストは一切発生しないため、古いセッションデータやログのパージにおいて最もコスト効率が良く、運用の手間がかからない最適な機能です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る