AWS DynamoDBの(新機能)TTLについて
たまたまAWSコンソールからDynamoDBのテーブルを見ていたら見慣れない設定が追加されていました
DynamoDBに有効期限なんてあったのかなと思い調べてみると最近追加されたばかりの機能でした。
参照)Amazon DynamoDB now supports automatic item expiration with Time-to-Live (TTL)
個人的には昔からDynamoDBにTTLあれば良いのになと前から思っていたので早速確認してみることにしました。
本記事は以下に該当する方が閲覧することを想定して記載しています。
- DynamoDBを使おうとしている(既に使っている)方
1.テスト用テーブルの作成
今回テスト用として以下のようなテーブルを用意してみます。
(分り易くするために「time」要素は「timestamp」の日付を設定しています)
2.TTL属性の設定
概要からTTLの設定を開きます。
TTL属性を「timestamp」と設定し、プレビューの日付を「timestamp」の日付にすると画面下のプレビューに表示されます。(表示されたデータが削除対象です)
3.データの確認
データ量の大小にもよると思いますが、今回2件しかデータを入れていない状態で実際にデータが削除されたのはTTL時間の約10分後でした。
TTLに設定した要素は下のようにコンソール画面上では「(TTL)」と表示されるようになります。
4.結果(まとめ)
DynamoDBのバックグラウンド処理で自動的に削除しているそうなので、この機能は基本的に「時間ピッタリに消える機能ではない」点には注意が必要です。
DynamoDBを利用する時にデータの削除について毎回悩まされていたので、個人的には凄く嬉しい機能追加です。
また、このTTL機能は過去に作成したテーブルもTTLの属性を設定するだけで利用する事が可能となっています。
一度TTLを設定/無効化してから、一定期間が空くまでの間(約1時間以内)にTTLの再設定は出来ないため本番で使用している環境ではご注意ください。