無限ノック › DEA 練習問題一覧 › 問題
DEAデータストアの管理

あるヘルスケア企業は患者の診察記録を Amazon DynamoDB テーブルに保存しています。以下の要件があります。 ・診察記録は作成から2年間のみ DynamoDB に保持し、それ以降は自動削除したい ・削除されたレコードは規制要件により7年間 Amazon S3 に保存する必要がある ・アーカイブ処理はサーバーレスで自動化し、データ消失リスクを最小化したい 最もコスト効率よく確実にアーカイブを実現する構成はどれですか?

A
DynamoDB TTL で期限切れレコードを自動削除し、DynamoDB Streams の TTL 削除イベントを Lambda でキャプチャして Amazon Data Firehose 経由で S3 にアーカイブする
✓ 正解
DynamoDB TTL はキャパシティユニットを消費せずに期限切れアイテムを自動削除し、削除イベントは DynamoDB Streams に REMOVE イベントとして現れる。Lambda でキャプチャして Data Firehose のリトライ機能で S3 へ確実にアーカイブでき、最もコスト効率の高い構成。
B
Amazon EventBridge Scheduler で毎夜 Lambda を起動し、DynamoDB テーブルをスキャンして作成日が2年超のレコードを S3 へコピー後に削除する
Amazon EventBridge Scheduler + Lambda によるフルスキャンはテーブルサイズに応じて RCU 消費が増え高コスト。S3 コピーと DynamoDB 削除を別々に行うため、処理の間に障害が発生するとデータ消失や不整合が生じるリスクがある。
C
DynamoDB Streams を有効化してすべての書き込みイベントを Lambda で継続的にモニタリングし、作成から2年超のレコードを検出次第 S3 に保存してから DynamoDB テーブルより削除する
DynamoDB Streams + Lambda で全書き込みイベントをモニタリングして期限超過レコードを検出・削除する構成は実装が複雑。さらに S3 書き込みと DynamoDB からの削除をアトミックに処理できないため、障害時に不整合が生じるリスクがある。
D
DynamoDB のポイントインタイムリカバリ(PITR)を有効化し、月次で S3 エクスポートを実行したうえで不要レコードを一括削除してテーブルサイズを管理する
DynamoDB ポイントインタイムリカバリ(PITR)の S3 エクスポートはテーブル全体のスナップショットを書き出す仕組みで、古いレコードだけを選択的にアーカイブする用途には対応しておらず、ストレージコストも過大になる。

解説

DynamoDB TTL を設定すると expiry 属性に指定した Unix タイムスタンプを過ぎたアイテムがバックグラウンドで自動削除される。TTL による削除はキャパシティユニット(RCU/WCU)を消費しないためコスト効率が高い。TTL 削除は DynamoDB Streams に REMOVE イベントとして現れ、Lambda でキャプチャして Amazon Data Firehose でバッファリング後に S3 へ確実に書き込む。Firehose のリトライ機能でデータ消失リスクも最小化できる。 選択肢Bの Amazon EventBridge Scheduler + Lambda によるフルスキャンはテーブル規模が大きいほど RCU を大量消費しコストが高く、S3 コピーと削除の間に障害が発生するとデータ消失リスクがある。 選択肢Cの DynamoDB Streams + Lambda によるモニタリング削除管理は、S3 書き込みと DynamoDB 削除をアトミックに実行できないため障害時に不整合が生じうる。また全書き込みイベントを継続モニタリングする実装も複雑。 選択肢Dの DynamoDB PITR + S3 エクスポートはテーブル全体のスナップショットを書き出す仕組みで、特定アイテムの選択的アーカイブには対応しておらず S3 ストレージコストも過大になる。

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

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

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