あるヘルスケア企業は患者の診察記録を Amazon DynamoDB テーブルに保存しています。以下の要件があります。 ・診察記録は作成から2年間のみ DynamoDB に保持し、それ以降は自動削除したい ・削除されたレコードは規制要件により7年間 Amazon 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 ストレージコストも過大になる。