Amazon Timestreamの利用料金を試算した #reinvent

re:Invent 2018のキーノートにて、時系列データベースであるAmazon Timestreamが発表されました。

【速報】【新サービス】時系列データベースであるAmazon Timestreamが発表されました #reinvent

このエントリーでは利用費を試算します。

課金対象

Amazon Timestream を利用すると以下の費用が発生します。

  • 書き込み
  • 読み取り
  • ストレージ(ストレージタイプによる)
  • 通信費

順に確認します。

利用費はオレゴンリージョンを採用します。

書き込み

テーブルに対する書き込みに対する利用費です。

書き込み単位は 1KB です。 100万の書き込み(=1GB)ごとに $0.50 の費用が発生します。

読み取り

クエリー時のデータスキャンに対する利用費です。

TBごとに $10 の費用が発生します。

ストレージ

データベースのストレージに対する利用費です。

GB-時間ごとに費用が発生します。

RDB と同じく、複数のストレージタイプを選択可能で、ストレージタイプごとに利用費が異なります。

  • インメモリ : 0.036/GB-Hour
  • SSD : $0.0004167/GB-Hour
  • マグネティック : $0.0000411/GB-Hour

高速なデータベースほど利用費は高いです。

実運用時には、データのライフサイクルに合わせて、ストレージを変更することになるでしょう。

データ転送

データ通信費は EC2 や S3 と同じです。

同じリージョンでの AWS サービス間の通信費は無料です。 AWS からインターネットへの通信は利用費が発生します。

データ発生元は関係ないため、価格表も同じです。

1 GB まで/月 0.00USD/GB
次の 9.999 TB/月 0.09USD/GB
次の 40 TB/月 0.085USD/GB
次の 100 TB/月 0.07USD/GB
150 TB /月より大きい 0.05USD/GB

試算

検算もかねて、pricing ページにある試算を例にとります。

1日で10GBの書き込みが発生するとします。

書き込まれたデータは

  • 最初の3時間はインメモリストレージに保存
  • 次の3日間はSSDに保存
  • 次の1年間はマグネティックに保存

するとします。

毎日10回、1クエリーあたり10GBのデータをスキャンするクエリーを投げるとします。 さらに、毎月100回、1クエリーあたり10GBのデータをスキャンするクエリーを投げるとします。

書き込み利用費

1日で10GBの書き込みが発生するとします。

$0.50/GB * 10 GB/day * 30 day = $150

ストレージ

書き込まれたデータは

  • 最初の3時間はインメモリストレージに保存
  • 次の3日間はSSDに保存
  • 次の1年間はマグネティックに保存

するとします。

1日に10GBの書き込みがあるということは、時間あたり 10GB/24 の書き込みがあります。

メモリストレージについては、インメモリ上に3時間分のデータ(3 * 10GB/24)が存在することになるため、1時間あたりは

$0.036/hour * (3 * 10GB/24)

の利用費が発生します。

1ヶ月あたりは

$0.036/hour * (3 * 10GB/24) * 24 * 30 = $32.4

の利用費が発生します。

同様に、SSDH ストレージについても、1ヶ月あたり

$0.0004167/hour * (3 * 10GB) * 24 * 30 = $9

の利用費が発生します。

同様に、マグネティックストレージにいても、1ヶ月あたり

$0.0000411/hour * (365 * 10GB) * 24 * 30 = $108

の利用費が発生します。

スキャン

毎日10回、1クエリーあたり10GBのデータをスキャンするクエリーを投げるとします。 さらに、毎月100回、1クエリーあたり10GBのデータをスキャンするクエリーを投げるとします。

1ヶ月あたりのスキャン量は

10GB/Query * 10 Query/day * 30 day + 10GB/Query * 100 Query/day = 4000GB=4TB

です。

1ヶ月あたり

$10/TB * 4TB = $40

の利用費が発生します。

最後に

Timesteam を利用する上ではストレージの選択とデータライフサイクル管理が重要です。

高価なインメモリーには、鮮度が高く、価値の高い少量のデータを保存し、安価なマグネティックには、鮮度が低い大量のデータを保存。

あとはビジネス要件に応じて、各ストレージのライフサイクルを設定しましょう。

参考

  • https://aws.amazon.com/timestream/pricing/