最近のブログ記事で、AmazonはNoSQLデータベースサービスDynamoDBの変更を発表した。DynamoDBは、サービス内に保存するデータに対するTime to Live(TTL)の機能を提供する。時間ベースのしきい値に基づいてデータを削除することで、組織は、時間の経過とともに価値が低下するデータにかかるストレージコストを削減できる。
規模を拡張できるサーバレスのデータベースサービスのため、Ad Tech、Gaming、IoT、および低レイテンシのデータアクセスが必要なアプリケーションのユースケースに適用できる。 Amazonはユースケースの1つとしてLyftを挙げており、どのようにして、DynamoDBに移行してRide Location Tracking SystemのGPSデータを永続化するかを示している。
短時間のデータバーストが発生するアプリケーションを持つ組織が抱える課題は、データの保持である。乗り物の乗っている間にGPSデータを追跡することは非常に重要であるが、時間が経つにつれてその価値が失われ、そのデータを長期間保管している組織にはコスト負担が大きい。
新しいTTL機能を使用することにより、組織はしきい値を設定することで、有効期限に達すると自動的にデータを削除できる。AWSのチーフエバンジェリストであるJeff Barr氏は、TTL機能がどのように機能するかを説明している。
アイテムの有効期限などのアイテム属性を指定して、テーブル単位でこの機能を有効にすることができます。属性を指定し、TTL管理を有効にすると(1回のAPI呼び出しで両方の操作を実施できる)、DynamoDBは期限切れのアイテムを見つけて削除します。この処理は、自動的にバックグラウンドで行われ、テーブルへの読み取りと書き込みトラフィックには影響を与えません。
開発者または管理者は、Unixエポックタイムシステムに基づいて数秒で解釈されるDynamoDB Numberフォーマットの値をAWS Management Consoleから与えることで、TTL属性を設定できます。 TTLしきい値は、update-time-to-liveコマンドを呼び出すか、コードからUpdateTimeToLive関数を呼び出すことにより、AWS Command Line Interface(CLI)から更新できます。
画像ソース: https://aws.amazon.com/blogs/aws/new-manage-dynamodb-items-using-time-to-live-ttl/
TTLのために期限切れになったアイテムをコールドストレージに移動したり、AWS LambdaとDynamoDB Triggersを使用して他のDynamoDBテーブルを更新することができる。 DynamoDBストリームを使用して、実際の削除を実施したり、あるいはアーカイブすることができる。
DynamoDB TTLを使用する際の注意点がある。
- TTL属性は、新規または既存のテーブルに適用できるが、DynamoDBのNumber型でなければならないため、JSONドキュメントの要素で表現することはできない。
- 管理者は、AWS Identity and Access Management(IAM)を通じてTTL属性へのアクセスを管理できる。
- TTL属性の使用には、パフォーマンス上の不利益はない。スキャンと削除はバックグラウンドで行われる。
- TTLの使用には追加料金はかからない。顧客は、アイテムが削除されるまで、そのアイテムが占有しているストレージを引き続き支払う。
- TTL機能は、2017年2月27日時点で使用できる。
Rate this Article
- Editor Review
- Chief Editor Action