DynamoDB

オンデマンド

0 円/月

ストレージ

DynamoDBで使用するストレージの容量をGB単位で入力してください。

読み込み単位

4KBまでの強い整合性のある読み込み1回につき1単位、トランザクション読み込み1回につき2単位、結果整合性のある読み込み1回につき 0.5単位の読み込みになります。

書き込み単位

1KBまでの書き込み1回につき1単位、トランザクション書き込み1回につき2単位になります。

RCU

読み込みキャパシティユニット(RCU)を入力してください。

キャパシティユニットという言葉に馴染みがありませんが、最大4KBの項目に対して強い整合性のある読み込みを1秒あたり1回(結果的に整合性のある読み込みについては2回)行うことで1RCUを消費します。例えば、2KBの項目に対して1秒あたり100回の強い整合性のある読み込みを行う場合は、100RCUが必要になります。

キャパシティユニットや整合性についての詳しい話は、読み込みでのキャパシティーユニットの消費読み込み整合性をご確認ください。

WCU

書き込みキャパシティユニット(WCU)を入力してください。

最大1KBの項目に対して、1秒あたり1回の書き込みを行うことで1WCUを消費します。例えば、2KBの項目に対して1秒あたり100回の書き込みを行う場合は、200WCUが必要になります。

詳しくは、書き込みでのキャパシティーユニットの消費をご確認ください。

  • 東京リージョン
  • ひと月は30.5日
  • 107.532円/ドル(毎朝10時更新)

リザーブドキャパシティー

RCUとWCUがある程度予測できる場合、最小使用量に対して割引を適用することができます。リザーブドキャパシティーを越えた分は、通常の料金が加算されます。

ストレージのオーバーヘッド

ストレージコストには1アイテム当たり100bytesのオーバーヘッドが加算されます。アイテム数が億を超えるぐらいになると効いてきますが、その頃にはオーバーヘッドが気にならないぐらい高額になっていると思います。

別リージョンへのデータ転送

同一リージョンのデータ転送は無料ですが、別リージョンへのデータ転送には料金がかかります。

Global TablesやDynamoDBストリームなど

Global Tablesやオンデマンドバックアップ、DynamoDBストリームなどを利用する場合は料金がかかります。公式の料金表をご確認ください。

DynamoDBについてざっくり

スケーラブルなNoSQLデータベース。

リレーショナルじゃないデータは、DynamoDBに置いておけば、スケーラビリティに頭を抱えずに済みます。パフォーマンスやコストを最適化するためには慣れが必要なので、軽い気持ちで使うと後悔するかもしれません。事前のキャパシティ指定が不要なオンデマンドモードがサポートされたおかげで、だいぶ使いやすくなりました。

この要件、本当にDynamoDBで満たせるか?
と、使う前に何度も自問した方が良いです。

DynamoDBの料金計算式をざっくり

    /**
 * ざっくりこんな感じで計算しています。
 */
function calc(row, priceList) {
  const mode = row.mode
  const storage = toNumber(row.storage)
  const wcu = toNumber(row.wcu)
  const rcu = toNumber(row.rcu)
  const write = toNumber(row.write)
  const read = toNumber(row.read)

  let total = 0

  if (storage) {
    total += calcInRange(storage, priceList.dynamodb.storage.priceRange)
  }

  switch (mode) {
    case 'オンデマンド': {
      if (write) {
        total += write * priceList.dynamodb.ondemand.write.price
      }
      if (read) {
        total += read * priceList.dynamodb.ondemand.read.price
      }
      break
    }
    case 'プロビジョン済み': {
      if (wcu) {
        total += calcInRange(wcu * MONTHLY_HOURS, priceList.dynamodb.provisioning.wcu.priceRange)
      }
      if (rcu) {
        total += calcInRange(rcu * MONTHLY_HOURS, priceList.dynamodb.provisioning.rcu.priceRange)
      }
      break
    }
  }

  return total
}
  

Google AdSenseの広告

このエリアに興味がある広告が表示された際にクリックすると、当サイトの制作者にお金が入る仕組みになっています。それがなんか嫌だなぁという方は、間違ってクリックしないように注意してください。