dynamoDBのthroughputについてメモ

dynamoDBではthroughputの設定が料金に直結している。そのあたりを調べたのでわかったことをメモ。

throughputの消費

read
  • 1unit = 1項目のconsistent read/sec (4KB以内)
  • consistent readを使わなければ2回で1unitとなる
  • 4KBを超える項目を読み込む場合は2unit以上が必要になる
  • 例えば10KBのデータなら3units, 15KBなら4units
write
  • 1unit = 1項目の書き込み/sec (1KB以内)
  • 1KBを超える項目を読み込む場合は2unit以上が必要になる
  • 例えば1.5KBなら2units、4KBなら4units
  • indexが張られている場合はそちらへの書き込みも1項目分としてカウントされる

バースト時のthroughput

最大で直近300sec分の使っていないthroughtputをバーストに対して使うことができる。ただし、その部分のthroughtputはメンテなどの裏側の処理でも消費されているらしくフルで使えるわけではない。

partitionの設定

throughputとテーブルのデータ量に応じてpartition数が決定される。以下の式で算出されたpartition数のうち大きい方となる。

  • throughput

partition数 = (read throughput) / 3000 + (write throughput) / 1000

  • データ量

partition数 = (データ量) / 10GB
データ量はaws consoleの各テーブルの概要タブで確認できる。