0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#3 DynamoDBのTTL(Time To Live)を設定する方法【AWSコンソールで簡単設定】

0
Last updated at Posted at 2026-07-07

はじめに

DynamoDBを使うなら最初に設定しておきたい5つのポイント

上記記事で紹介した「その3」として、TTL(Time To Live) の設定方法を紹介します。

TTLを設定しておくことで、不要になったデータを自動で削除できるため、ストレージコストの削減データ管理の負担軽減につながります。

本記事では、AWSコンソールからTTLを設定する方法を紹介します。


TTL(Time To Live)とは?

TTL(Time To Live)は、

指定した時刻を過ぎたアイテムを自動で削除してくれる機能

です。

例えば、次のようなデータでよく利用されます。

  • セッション情報
  • キャッシュデータ
  • 一時ファイルの管理
  • 一定期間だけ保存したいログ

TTLを設定すると、期限切れになったデータは自動的に削除されるため、不要なデータを手動で削除する必要がありません。


イメージ

image.png


TTLを利用するメリット

TTLを利用するメリットは次のとおりです。

  • 不要データを自動削除できる
  • ストレージコストを削減できる
  • 定期削除用のLambdaやバッチ処理が不要になる
  • 運用負荷を軽減できる

TTLを利用する際の注意点

TTLを設定する前に知っておきたいポイントです。

  • TTL対象となる属性には**Unixエポック秒(Epoch Time)**を設定する
  • 削除はリアルタイムではなく、期限到達後しばらくして実行される
  • 削除タイミングは保証されない
  • TTLの削除処理自体には追加料金は発生しない

設定手順

① DynamoDBを開く

AWSマネジメントコンソールから

DynamoDB

を開きます。

image.png


② 対象テーブルを選択

左メニューの

「テーブル」

をクリックします。

一覧からTTLを設定したいテーブルを選択します。

image.png

image.png


③ 「設定」を開く

画面上部の

「設定」

をクリックします。

image.png


④ Time to Live(TTL)の「オンにする」をクリック

画面を下へスクロールすると、

Time to Live (TTL)

があります。

「オンにする」

をクリックします。

image.png


⑤ TTLを有効化する

設定画面で

  • TTL属性名

を入力します。

例えば、

expiresAt

という属性名を設定します。

最後に

TTLをオンにする

をクリックします。

image.png

これで設定完了です。


TTL属性とは?

TTLでは、

削除日時を保存するための属性を指定します。

例えば、

{
  "id": "1001",
  "name": "Sho",
  "expiresAt": 1767135600
}

この

expiresAt

がTTL属性になります。

値は

Unixエポック秒

で保存する必要があります。


Unixエポック秒とは?

TTLで指定する日時は

2025-12-31 12:00

のような日時ではなく、

1767135600

のような

1970年1月1日からの経過秒数

で指定します。

例えばPythonでは、

import time

expires = int(time.time()) + 86400

とすることで、

24時間後をTTLとして設定できます。


設定後の確認

設定後は、

追加設定画面で

Time to Live

TTLステータス:オン(有効)

となっていれば設定完了です。

image.png


よくある質問

Q. TTLになるとすぐ削除されますか?

いいえ。

TTLは即時削除ではありません。

期限を過ぎると、

AWSがバックグラウンドで順次削除します。

そのため、

数時間〜最大48時間程度残る場合があります。


Q. 削除料金はかかりますか?

TTLによる削除処理自体に追加料金は発生しません。

不要データが削除されることで、

ストレージ料金の削減につながります。


Q. TTLは必ず設定した方がいいですか?

次のようなデータでは非常におすすめです。

  • セッション管理
  • ログ
  • キャッシュ
  • 一時データ

一方、

永続的に保存したいデータには不要です。


AWS CLIで設定する方法

TTLを有効化する場合は、

aws dynamodb update-time-to-live \
  --table-name sample-table \
  --time-to-live-specification \
  "Enabled=true,AttributeName=expiresAt"

状態を確認する場合は、

aws dynamodb describe-time-to-live \
  --table-name sample-table

まとめ

TTLを設定することで、

不要になったデータを自動で削除できるようになります。

定期削除のバッチ処理を作成する必要がなくなるため、

運用負荷の軽減にもつながります。

設定手順のおさらい

  1. DynamoDBを開く
  2. テーブルを選択
  3. 「追加設定」 をクリック
  4. Time to Live(TTL)→「編集」
  5. TTLを有効化
  6. TTL属性名を入力
  7. 保存して完了

セッション情報やキャッシュなど、有効期限があるデータを扱う場合は、ぜひTTLを活用してみてください。


参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?