Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

Time To Live の有効化

このセクションでは、DynamoDB コンソールまたは CLI を使用して Time To Live を有効にする方法について説明します。代わりに API を使用する場合は、「Amazon DynamoDB API Reference」を参照してください。

Time To Live の有効化 (コンソール)

DynamoDB コンソールを使用して Time To Live を有効にする方法

  1. https://console.aws.amazon.com/dynamodb/home にある DynamoDB コンソールを開きます。

  2. [テーブル] を選択し、変更するテーブルを選択します。

  3. [テーブルの詳細] で、[TTL 属性] の横にある [TTL の管理 ] を選択します。

  4. [TTL の管理] ダイアログボックスで、[TTL の有効化] を選択してから [TTL 属性] の名前を入力します。

    [TTL の管理] には 3 つの設定があります。

    • TTL の有効化 – テーブルで TTL を有効または無効にするには、これを選択します。変更が完全に処理されるまでに最大で 1 時間かかる場合があります。

    • TTL 属性 – 項目の TTL タイムスタンプを保存する DynamoDB 属性の名前。

    • 24-hour backup streams (24 時間のバックアップストリーム) – テーブルで DynamoDB ストリーム を有効にするには、これを選択します。DynamoDB ストリーム を使用してバックアップする方法の詳細については、「DynamoDB ストリーム および Time To Live」を参照してください。

  5. (オプション) TTL を有効化するときに削除される項目のいくつかをプレビューするには、[プレビューの実行] を選択します。

    警告

    これにより、項目のサンプルリストが表示されます。TTL によって削除される項目の完全なリストは表示されません。

  6. [Continue] を選択して設定を保存し、TTL を有効にします。

これで TTL が有効になったため、DynamoDB コンソールで項目を表示すると、TTL 属性は TTL とマークされます。

属性の上にマウスカーソルを合わせると、項目が期限切れになる日時を表示できます。

Time To Live の有効化 (CLI)

[TTLExample] テーブルで TTL を有効にするには:

aws dynamodb update-time-to-live --table-name TTLExample --time-to-live-specification "Enabled=true, AttributeName=ttl"

[TTLExample] テーブルで TTL を記述するには:

aws dynamodb describe-time-to-live --table-name TTLExample { "TimeToLiveDescription": { "AttributeName": "ttl", "TimeToLiveStatus": "ENABLED" } }

BASH シェルおよび CLI を使用して Time To Live 属性が設定された項目を [TTLExample] テーブルに追加するには:

EXP=`date -d '+5 days' +%s` aws dynamodb put-item --table-name "TTLExample" --item '{"id": {"N": "1"}, "ttl": {"N": "'$EXP'"}}'

この例では、現在の日付から開始し、有効期限を作成するために 5 日を追加します。次に、有効期限をエポック時間形式に変換してから、最後に項目を [TTLExample] テーブルに追加します。

注記

Time To Live の有効期限の値を設定する 1 つの方法は、有効期限に追加する秒数を計算することです。たとえば、5 日は 432000 秒です。ただし、多くの場合は最初に日付で開始し、そこから作業を開始することをお勧めします。

現在の時間をエポック時間形式で取得するのは非常に簡単です。(例:

  • Linux ターミナル: date +%s

  • Python: import time; long(time.time())

  • Java: System.currentTimeMillis() / 1000L

  • JavaScript: Math.floor(Date.now() / 1000)