AWSメモ >

DynamoDBのキャパシティユニットについて

DynamoDBにかかる料金

だいたいここらへんに書いてある。

キャパシティユニット/保管料の概要

上記のリンク先の内容を簡単に纏めると、以下の通り。

項目サイズ

  • 読み書き 及び 保管料にかかる項目(レコード)のサイズは、属性名と属性値の長さの合計となる(属性名の長さもサイズ計算に含まれる)

データ保管にかかる料金

  • 毎月最初の 25 GB の保管は無料 ※それ以降は月額 0.285USD/GB(東京リージョン)

読み書きにかかる料金

  • 読み書きの度に料金がかかる
  • 読み込み/書き込みキャパシティーモードとして「プロビジョニング済み」と「オンデマンド」から選択できる
  • プロビジョニング済みモードの場合
    • 読み込み/書き込み キャパシティユニット単位 で料金がかかる
    • テーブルや索引(GSI/LSI)に事前にキャパシティユニットを割り当てる必要がある
    • 事前に割り当てたキャパシティユニットを超えるスループットは出せない
      (一定量まではスロットリングされるが、スロットリング不可な場合は ProvisionedThroughputExceededException が発生する)
    • 割り当てたキャパシティユニットは使用しなくても消費する為、適切な値を割り当てる必要がある
    • Auto Scaling は可能。※ゼロになった場合にはスケールダウンしない。等の制限がある為、個別にポリシー設定が必要。
    • GSI/LSI に対しての読み書きはテーブルへの読み書きとは別にキャパシティユニットを消費する
    • 読み込みは 4KB単位で 1 キャパシティユニットを消費する ※4KB未満のレコードはレコード毎に4KBに切り上げられて計算される
    • 書き込みは 1KB単位で 1キャパシティユニットを消費する ※1KB未満のレコードはレコード毎に1KBに切り上げられて計算される
    • queryで複数レコードを一括で取得する場合は、合計サイズが 4KB単位で切り上げて計算される(レコード毎には切り上げられない)
    • 0.0001484USD/RCU、0.000742USD/WCU(東京リージョン)
    • 前払いのリザーブドキャパシティーを利用すると通常よりも割安(WCU/RCU 100 個単位で購入)
  • オンデマンドの場合
    • 読み込み/書き込み リクエスト単位 で料金がかかる
    • 読み込みは 4KB単位で 1リクエストとして計算される
    • 書き込みは 1KB単位で 1リクエストとして計算される
    • 0.2854USD/100万読み込みリクエスト、1.4269USD/100万書き込みリクエスト (東京リージョン)

補足

オンデマンドモードについて

デフォルトでは、テーブルやGSI/LSI に事前に設定したキャパシティユニット分のパフォーマンスを確保する事ができるが、
AWS re:Invent 2018 で発表された DynamoDB On-demand を使用すると、事前設定なしに使用した分だけ料金を支払う事もできる。

※ただし無料利用枠の範囲外になる為、要注意!

消費したキャパシティユニットの調べ方

プロビジョニング済みモードの場合、各APIのデータ操作時に ReturnConsumedCapacity を指定する事により、消費したキャパシティユニットを調べる事ができる。

boto3
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS