Closed7

[キャッチアップ] Amazon Timestream

shingo.sasakishingo.sasaki

概要

  • Amazon Timestream にお仕事で使うことになったが、全然わからないので体系立ててキャッチアップする
  • AWS 自体はちょいちょい使う程度で、なんとなくの全体感は知ってるが、主要機能以外はよく知らない
  • 直接 Timestream を使った仕事に関わるわけでなく、間接的にレビューをしたりする程度なので、深い理解や実践的なハンズオンは行わない
  • SDK は Node.js を使用する
shingo.sasakishingo.sasaki

Amazon Timestream ってなんなのさ

  • Amazon Timestream は、時系列データベースを扱うためのAWSのサービスの一つ
  • 高速かつスケーラブルで、サーバレスのためインフラの管理が不要
  • リレーショナルデータベースの最大1000倍の速度、10分の1のコストで扱うことができる
  • 1日あたり数兆ものイベントを保存、分析可能
  • 最新データをメモリに保持し、履歴データはストレージ階層に移動することで、スピードとコストを両立
  • Timestream の専用クエリエンジンによって、SQLベースで、最新データと履歴データを同時にアクセス、分析できる
  • 時系列データがメモリ、ストレージのどちらに保存されているかをクライアントが意識する必要がない
  • 時系列分析関数も組み込まれており、すぐにデータのトレンドやパターンを特定するのに役立つ
  • 時系列データは常に暗号化されるため、データの入力時の暗号化処理が不要(AWS KMS 対応)
  • 一般的なデータ収集ツール、可視化ツール、機械学習ツールとの統合が可能
shingo.sasakishingo.sasaki

用語

時系列データ

  • 時間の経過とともに変化するイベントを測定するために、時間間隔で記録された一連のデータポイント
    • ex: 気温の変化、株価や為替レート、血圧や脈拍といった人体情報、CPU使用率
  • 全てのデータが一貫性のあるタイムスタンプ情報と、時系列に変化する属性を持っている
  • 複数ソースから大量に生成されたデータから、ほぼリアルタイムにデータの整理と分析をするために用いられる
    • DevOps エンジニアがインフラのパフォーマンス指標の変化を測定する
    • マーケターがユーザのクリックストリームから動線を分析する
    • IoTメーカーがIoTセンサーから機器の変化を測定する

メモリストア

  • 書き込みに特化したデータストア
  • 書き込まれる時系列データの重複排除や、遅延書き込みをサポート
  • 最近の時系列データを保持するの使用する

マグネティックストア

  • 読み込みに特化したデータストア
  • 履歴データを保持する、階層化されたストレージ構成
  • メモリストアからマグネティックストアへのデータ転送は、ユーザが設定可能なポリシーに基づいて行われる
  • 大量データを分析することに特化している

データベース

  • Timestream におけるトップレベルのコンテナで複数のテーブルを内包する
  • KMSによる暗号化はデータベースに紐付いており、データベース内のすべてのテーブルを同じKMSキーで暗号化する

テーブル

  • Timestream におけるデーブルで、一つ以上の関連する時系列データが含まれている
  • メモリストアからマグネティックストアへの移行ルールは、テーブル単位で適用される

ディメンション

  • 時系列データに関するメタデータ
    • ex: EC2のインスタンス名やアベイラビリティゾーンの情報
  • キーバリュー形式で表現する

メジャー

  • 時系列データの計測値
  • キーバリュー形式で表現する

レコード

  • 時系列データのレコード本体
  • ディメンションとレコードの組み合わせで表現する
shingo.sasakishingo.sasaki

気になるお値段は

サーバレスのサービスなので、データの書き込み、メモリ/マグネティックストアでの保持、クエリによる問い合わせに応じて料金が決定する

データの書き込み

1KB サイズの書き込み 100 万件 0.50USD

メモリストアでのデータの保持

1GB 時間あたり 0.036USD

マグネティックストア

1GB 月あたり 0.03USD

クエリ

1 GB のスキャン 0.01USD

shingo.sasakishingo.sasaki

実際に使ってみよう

Amazon Timestream は様々な方法で利用可能

  • データベースの作成
    • AWS コンソール
    • AWS CLI
    • 各種 SDK
  • データの送信
    • AWS IoT Core
    • Amazon Kinesis
    • Telegraf
    • 各種 SDK
  • データの取得
    • 各種SDKとSQL

ここでは チュートリアル の内容をベースに体験する

shingo.sasakishingo.sasaki

サンプルデータベースの作成

AWSコンソールから、 AWS Timestream を選択し、 Create database からチュートリアル用のサンプルデータベースを作成する

ここで作成したサンプルデータベースには IoTDevOps の2種類のテーブルが含まれており、それぞれにサンプルデータが2100行と1600行用意されている

shingo.sasakishingo.sasaki

AWSコンソール上でのクエリの実行

AWSコンソール上から直接 SQL を記述し、クエリを実行することも可能

このスクラップは2021/03/06にクローズされました