AWSデベロッパーアソシエイトの勉強をしていて、課題解決に直結しそうな機能を見つけたので議事録として残そうと思います。
はじめに
既に構築済みのサーバーレスWebアプリケーションにはいくつかの課題あり
①. DynamoDBに溜まって削除できずにいる古い不要データ。Lambda関数から削除できるが量が多いのですごい時間がかかる。
②. S3バケットに蓄積しているアクセスログデータの活用方法を見いだせずにいる。
③. CloudWatchのログを数年分蓄積しているが、時間の経過とともにコストが上がってきている。
DynamoDBのTime to Live (TTL)
この機能を使えば①の問題を解決できるかもしれない。
まだ検証はしていないが、
1. DynamoDB の Time to Live (TTL) は、不要になった項目を削除するためのコスト効率に優れた方法
2. TTL では、項目がいつ不要になるかを示す有効期限タイムスタンプを項目ごとに定義できる
3. DynamoDB は、書き込みスループットを消費することなく、有効期限が切れてから数日以内に期限切れの項目を自動的に削除
Lambda関数を使用した削除方法だと本番に影響しそうで怖い!
これが懸念点だったらしく、最終的に溜めっぱなしになってたみたい。
おわりに
テスト環境で検証してみて良い感じに動いてくれたら共有しよう。
相談したらぜひ不要なデータ削除したい!との事だったので色々調べた。
結果、TTLで検知できる用にデータを作成しないといけないらしい。(例えば属性名:TTL)
項目数100万超えなのでテーブルを新規作成して、必要なデータを移行後に古いテーブル削除する事になった。
後はそれがいつ行われるか!
実施後にまた更新します。