DynamoDB のテーブルはいくつまで持てますか?
既定でリージョンあたり 2,500 個です。各 AWS アカウントは、リージョンごとに 2,500 個の DynamoDB テーブルというクォータから始まり、申請すれば AWS が最大 10,000 個まで引き上げられます。個々のテーブルのサイズは無制限で、10,000 個を超える場合、AWS はワークロードを複数のアカウントに分散することを推奨しています。
テーブルのクォータ
初期クォータは、アカウントごと・AWS リージョンごとに 2,500 テーブルです。それ以上が必要なら、AWS の案内は、10,000 個までの引き上げについてアカウントチームに連絡することです。それを超える場合の推奨は、それぞれ最大 10,000 テーブルを担う複数アカウントの構成です。
テーブル自体は無制限
単一テーブルのサイズに実用上の上限はありません。テーブルはアイテム数にもバイト数にも制約されません。厳格な上限はアイテムごとの 400 KB で、各テーブルは最大 20 個のグローバルセカンダリインデックス(既定クォータ)と 5 個のローカルセカンダリインデックスに対応します。
クォータのはるか手前で止められるもの
2,500 テーブルに到達する人はほとんどいません。先に刺さるのは、プロビジョンドのテーブルは誰も触れていなくても決して無料ではない、という事実です。AWS はどのテーブルや GSI にも読み取りキャパシティユニット 1、書き込みキャパシティユニット 1 という最小値を設定しており、リクエストが 1 件も届かなくてもそれが時間単位で課金されます。
us-east-1 の単価、RCU 時間あたり $0.00013、WCU 時間あたり $0.00065 で 730 時間なら、最小キャパシティの空テーブル 1 つが月 $0.5694 です。
| 最小構成のテーブル数 | リクエスト 0 件での月額 |
|---|---|
| 100 | $56.94 |
| 2,500(既定のクォータ) | $1,423.50 |
| 10,000(引き上げ後の上限) | $5,694.00 |
数値は当社の料金計算ツールによるもので、同期済みの AWS 料金表の上で動いており、無料利用枠を差し引く前の値です。
オンデマンドのテーブルにこの下限はありません。アイドル状態のオンデマンドテーブルはストレージ分しか課金されず、それこそがテーブル数の多い構成を生き延びさせているものです。設計が本当に数百のテーブルを求めるなら、そのキャパシティモードの選択のほうがクォータより重要です。
そもそもたくさんのテーブルが必要ですか
DynamoDB において、テーブル数は成長の軸ではなく設計上の選択です。シングルテーブル設計は関連するエンティティを意図的に 1 つのテーブルに同居させます。そして多くのアプリケーションは、リレーショナルなスキーマが持っていたよりはるかに少ないテーブルで済みます。サービスごとに 1 つ、ということもよくあります。
さらに詳しく
エンティティをテーブルに分ける前にシングルテーブル設計を読み、アイテムサイズはアイテムサイズ計算ツールで確認し、プロファイルとリージョンをまたいで全テーブルを俯瞰するにはDynoTable をダウンロードしてください。
参考資料
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Core components of Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Local secondary indexes — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。このページのクォータはすべて 2026-07-28 に再確認しました。
コストは、当社が同期している AWS 料金表の us-east-1 プロビジョンドキャパシティ単価から、計算ツールが用いる 730 時間の月で算出しました。