DynamoDBのTTLを活用して、古いデータを自動的に削除する方法

DynamoDBのTTLを活用して、古いデータを自動的に削除する方法

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!

本記事ではAWS DynamoDBのTTL(Time To Live)機能を活用して、古いデータを自動的に削除する方法を紹介します。

はじめに

AWS DynamoDBは、NoSQLデータベースサービスです。NoSQLデータベースは、リレーショナルデータベースと比較して、スケーラビリティや高可用性などのメリットがあります。

AWS DynamoDBは、TTL(Time To Live)という機能を持っています。TTLは、指定した時間が経過した後に、データを自動的に削除する機能です。この機能を活用することで、古いデータを自動的に削除することができます。

TTLの機能を活用して古いデータを削除する方法

TTLを活用して古いデータを削除する方法を紹介します。

1. テーブルのTTLを有効にする

まず、TTLを有効にする必要があります。TTLを有効にするには、AWS DynamoDBのコンソールから、テーブルのプロパティを開き、「TTL」を選択し、「TTL用のカラム」を選択します。

以下はCloudFormationの例です。

Resources:
  MyTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: my-table
      AttributeDefinitions:
        - AttributeName: my-ttl-attribute
          AttributeType: N
      KeySchema:
        - AttributeName: id
          KeyType: HASH
      ProvisionedThroughput:
        ReadCapacityUnits: 1
        WriteCapacityUnits: 1
      TimeToLiveSpecification:
        AttributeName: my-ttl-attribute
        Enabled: true

2. TTL用の属性を付与したアイテムをPutItem

TTL用のカラムには、Unixタイムスタンプ(1970年1月1日からの経過時間)を使用して、指定した時間が経過した後に、データを自動的に削除するように設定します。

const AWS = require('aws-sdk');

// DynamoDBの設定
const docClient = new AWS.DynamoDB.DocumentClient();
const tableName = 'my-table';

// 追加するアイテムの定義
const item = {
  'id': '12345',
  'my-data': 'some data',
  'my-ttl-attribute': Math.floor(Date.now() / 1000) + 3600 // TTL属性を1時間後に設定
};

// パラメーターの設定
const params = {
  TableName: tableName,
  Item: item
};

// アイテムの追加
docClient.put(params, (err, data) => {
  if (err) {
    console.error('Error adding item to DynamoDB', err);
  } else {
    console.log('Item added to DynamoDB', data);
  }
});

まとめ

この記事では、AWS DynamoDBのTTLを活用して、古いデータを自動的に削除する方法を紹介しました。TTLを有効にしTTL用のカラムを設定することで、古いデータを自動的に削除することができます。

サーバーレス開発低コストなAWS開発内製化はお気軽にお問い合わせください。