Amazon Timestream

IoT センサーデータやアプリケーションメトリクスなどの時系列データを高速に格納・クエリし、自動的にデータのライフサイクル管理を行う専用データベースサービス

概要

Amazon Timestream は、時系列データに特化したフルマネージドデータベースサービスです。IoT デバイスのセンサーデータ、アプリケーションのメトリクス、インフラの監視データなど、タイムスタンプ付きのデータを効率的に格納・クエリします。メモリストアとマグネティックストアの 2 層アーキテクチャにより、直近のデータは高速なメモリストアに、古いデータは低コストのマグネティックストアに自動的に移行されます。SQL 互換のクエリ言語で時系列関数 (補間、平滑化、近似) を使った分析が可能です。

2 層ストレージアーキテクチャとデータライフサイクル

Timestream の最大の特徴は、メモリストアとマグネティックストアの 2 層構造によるデータライフサイクルの自動管理です。メモリストアは直近のデータ (ホットデータ) を格納し、書き込みと直近データのクエリに最適化されています。保持期間は 1 時間から 8,766 時間 (約 1 年) まで設定可能です。マグネティックストアは過去のデータ (コールドデータ) を格納し、メモリストアの約 1/10 のコストで長期保存に適しています。保持期間は 1 日から 73,000 日 (約 200 年) まで設定可能です。メモリストアの保持期間を超えたデータは自動的にマグネティックストアに移行され、ユーザーの介入は不要です。クエリはメモリストアとマグネティックストアの両方を透過的に検索するため、アプリケーション側でストアの違いを意識する必要はありません。実務での設定例として、リアルタイムダッシュボード用にメモリストアの保持期間を 24 時間、長期トレンド分析用にマグネティックストアの保持期間を 1 年に設定するパターンが一般的です。

RDB や DynamoDB で時系列データを扱う場合との比較

時系列データを RDB (RDS/Aurora) で管理する場合、タイムスタンプ列にインデックスを作成して時間範囲クエリを高速化しますが、データ量が数億行を超えるとインデックスのメンテナンスコストが増大し、書き込み性能が劣化します。パーティショニングで対処できますが、パーティションの管理やデータの自動削除を自前で実装する必要があります。DynamoDB ではパーティションキーにデバイス ID、ソートキーにタイムスタンプを設定するパターンが一般的ですが、時系列特有の集約関数 (移動平均、補間、ダウンサンプリング) はアプリケーション側で実装する必要があります。Timestream はこれらの課題を専用エンジンで解決します。書き込みは秒間数百万レコードに対応し、データ量の増加に伴う性能劣化がありません。時系列関数が SQL に組み込まれており、INTERPOLATE_LINEAR (線形補間)、INTERPOLATE_SPLINE (スプライン補間)、bin() (時間バケット集約) などを SQL 内で直接使用できます。InfluxDB や TimescaleDB などの OSS 時系列データベースと比較すると、Timestream はインフラ管理が不要で、ストレージの自動階層化が組み込まれている点が優位です。一方、InfluxDB の Flux 言語ほど時系列処理に特化した表現力はなく、複雑な時系列変換には制約があります。

IoT データパイプラインと Grafana 連携の設計

Timestream の典型的なデータパイプラインは、IoT デバイス → IoT Core → IoT Core ルール → Timestream という構成です。IoT Core のルールアクションで Timestream テーブルへの直接書き込みが可能で、Lambda を介さずにデータを投入できます。大量デバイスからの高頻度データ送信では、IoT Core のルールが秒間数千メッセージを処理し、Timestream のバッチ書き込み API で効率的に格納します。アプリケーションメトリクスの場合は、Kinesis Data Streams → Lambda → Timestream、または Telegraf (オープンソースのメトリクス収集エージェント) → Timestream のパターンが使われます。可視化には Amazon Managed Grafana との連携が最も実用的です。Timestream 用の Grafana データソースプラグインが公式に提供されており、SQL クエリを Grafana のダッシュボードパネルに直接記述できます。時系列グラフ、ヒートマップ、アラート設定を Grafana の UI で構築し、Timestream のデータをリアルタイムで可視化します。QuickSight からも Timestream に接続可能ですが、時系列データの可視化に特化した Grafana の方が表現力に優れます。料金は書き込み (1 KB あたり約 0.50 USD/百万レコード)、メモリストア (GB あたり約 0.036 USD/時間)、マグネティックストア (GB あたり約 0.03 USD/月)、クエリ (スキャンデータ 1 GB あたり約 0.01 USD) の 4 要素で構成されます。

共有するXB!