こんにちは!
本記事ではAWS DynamoDBのTTL(Time To Live)機能を活用して、古いデータを自動的に削除する方法を紹介します。
AWS DynamoDBは、NoSQLデータベースサービスです。NoSQLデータベースは、リレーショナルデータベースと比較して、スケーラビリティや高可用性などのメリットがあります。
AWS DynamoDBは、TTL(Time To Live)という機能を持っています。TTLは、指定した時間が経過した後に、データを自動的に削除する機能です。この機能を活用することで、古いデータを自動的に削除することができます。
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
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開発内製化はお気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎