無料ツール

DynamoDB アイテムサイズ計算ツール

DynamoDB のアイテムを JSON として貼り付けると、正確なバイトサイズと消費する読み取り・書き込みキャパシティユニットがわかります — 結果はリンクで共有できます。

アイテム (JSON)
{
  "pk": "USER#1234",
  "sk": "PROFILE",
  "name": "Ada Lovelace",
  "age": 36,
  "active": true,
  "tags": ["engineer", "mathematician"],
  "address": { "city": "London", "zip": "WC2N" }
}

DynamoDB のアイテムをプレーンな JSON(属性のマップ)として貼り付けてください。セット型とバイナリ型はプレーンな JSON では表現できないため、配列はリスト (L)、オブジェクトはマップ (M) としてサイズ計算されます。

アイテムサイズ400 KB の上限の 0.03%
107バイト · 0.1 KB
結果整合性のある読み取り0.5 RCU
強い整合性のある読み取り1 RCU
トランザクション読み取り2 RCU
標準書き込み1 WCU
トランザクション書き込み2 WCU

AWS のサイズ計算ルールに基づいて見積もります。コストも必要ですか? 料金計算ツール

アイテムサイズが重要な理由

DynamoDB では行ごとに料金を支払うのではなく、各操作が消費するキャパシティに対して支払います。そのキャパシティはアイテムサイズの関数です。最大 4 KB のアイテムの読み取りは1読み取りユニット、最大 1 KB の書き込みは1書き込みユニットを消費します。境界を1バイトでも超えると操作は次のユニットに切り上げられるため、4 KB から 4.1 KB へとわずかに増えたアイテムは読み取りコストが倍になります。

アイテムサイズは DynamoDB が保存できる内容の上限も定めます。1つのアイテムは、すべての属性名と値を含めて 400 KB 未満に収まる必要があります。大きなバイナリデータは S3 に置き、アイテム内にはポインタを持たせるべきです。アクセスパターンを設計する前にバイトサイズを把握しておくと、ホットなアイテムを小さく保ち、効率的にバッチ処理し、予期しないスロットリングを避けるのに役立ちます。

この計算ツールは、AWS が文書化したサイズ計算ルールをプレーンな JSON に適用します。名前と文字列には UTF-8 バイト長、数値には有効桁数のエンコード、ネストされたリストとマップには要素ごとのオーバーヘッドを用います。続くキャパシティの表は、各読み取り整合性モードと、標準書き込みおよびトランザクション書き込みのユニット数を示します。

すべてのバイトは属性値です — DynamoDB のデータ型 では、各型がどのようにエンコードされ、サイズが計算されるかを説明しています。

よくある質問

DynamoDB はアイテムサイズをどのように計算しますか?

アイテムサイズは、すべての属性について、属性名の UTF-8 バイト長とその値のサイズを合計したものです。文字列は UTF-8 バイト数で数えられ、数値は有効桁数でエンコードされ、ブール値と null は1バイトを占め、リストとマップは3バイトのオーバーヘッドに加えて要素ごとに1バイトを追加します。この計算ツールは、貼り付けられた JSON にこれらの正確なルールを適用します。

キャパシティユニットはアイテムサイズからどのように導き出されますか?

1つの読み取りキャパシティユニットは、最大 4 KB のアイテムの強い整合性のある読み取りをカバーします。結果整合性のある読み取りは半ユニット、トランザクション読み取りは2ユニットを消費します。1つの書き込みキャパシティユニットは最大 1 KB の書き込みをカバーし、トランザクション書き込みは2ユニットを消費します。アイテムサイズは常に次の 4 KB(読み取り)または 1 KB(書き込み)の境界に切り上げられ、最小は1ユニットです。

DynamoDB のアイテムサイズの最大値はいくつですか?

1つの DynamoDB アイテム — アイテムとそのすべての属性名および値 — は 400 KB を超えることはできません。アイテムがそれより大きい場合は、複数のアイテムに分割するか、大きな属性を Amazon S3 に保存してアイテム内に参照を残してください。この計算ツールは上限を超えるアイテムを警告します。

セットやバイナリ値を入力できないのはなぜですか?

プレーンな JSON には DynamoDB の文字列セット、数値セット、バイナリセット、バイナリ値を表現する方法がありません — JSON 配列は常にリスト (L) に、JSON オブジェクトはマップ (M) にマッピングされます。これらの型のサイズを求めるには、バイト長として手動でモデル化するか、DynamoDB JSON コンバーターで属性値の形式を確認してください。

Console なしで DynamoDB を扱う

DynoTable は DynamoDB 向けの高速なデスクトップクライアントです — テーブルを閲覧し、SQL スタイルのクエリを実行し、アイテムをローカルで編集できます。