DynamoDB ne kadar veri depolayabilir?
Fiilen sınırsız. Bir DynamoDB tablosunun maksimum boyutu yoktur ve herhangi bir öğe ve bayt sayısına yatay olarak ölçeklenir. Gerçek sınırlar öğe başınadır (400 KB) ve yalnızca yerel ikincil indeksi olan tablolarda öğe koleksiyonu (tek bir bölüm anahtarı değeri) başına 10 GB'dır. LSI'sı olmayan tablolarda bölüm boyutu üst sınırı yoktur.
Tablo boyutu: tavan yok
DynamoDB, veri büyüdükçe onu birçok fiziksel bölüme otomatik olarak yayar. Yapılandırılmış bir maksimum tablo boyutu yoktur — siz yazdıkça kapasite ve depolama ölçeklenir.
Var olan sınırlar
- 400 KB — tek bir öğenin maksimum boyutu; ikili birimlerle ölçülür ve değerlerin yanı sıra öznitelik adlarını da sayar (o sınırın tam olarak nereye düştüğü).
- 10 GB — bir öğe koleksiyonunun (bir bölüm anahtarı değerini paylaşan tüm öğelerin) maksimum boyutu, yalnızca tabloda bir yerel ikincil indeks (LSI) olduğunda. LSI olmadan bu üst sınır geçerli değildir.
Ölçebildiğiniz boyut, ödediğiniz boyut değildir
"Ne kadar depoluyorum?" sorusunu yanıtlamanın bariz yolu, TableSizeBytes döndüren
DescribeTable'dır. O sayı, tasarım gereği faturanızdan küçüktür. AWS'nin
faturalandırma rehberliğinden: "DynamoDB measures the size of your billable data by
adding the raw byte size of your data plus a per-item storage overhead that depends
on the features you have enabled" ve "Storage usage values in the CUR will be higher
compared with the storage values when using DescribeTable, because DescribeTable
does not include the per-item storage overhead."
Motorun bildirdiği de bununla örtüşüyor. Her biri yaklaşık 3 KB olan 40 öğe tutan bir
tablo TableSizeBytes: 120700 olarak geri geldi; bu, ham içeriktir ve başka bir şey
değildir. Ek yük API'den görünmez ve yalnızca Cost and Usage Report'ta ortaya çıkar.
Yani ikisi arasındaki fark, öğe sayısıyla büyür, öğe boyutuyla değil. On milyon
minik öğe o ek yükü on milyon kez öder; aynı baytlar yüz bin daha büyük öğeye
paketlendiğinde ise yüz bin kez ödenir. Faturanız TableSizeBytes'ın önerdiğinin
önünde gidiyorsa, her zamanki neden küçük satırlardan oluşan geniş bir tablodur.
"Tavan yok" neye mal olur
Depolama bağışlayıcı olan taraftır. us-east-1'de 1 TB'lık bir tablo, GB-ay başına $0.25 üzerinden 1.024 GB'dır: ayda $256 ya da 25 GB'lık ücretsiz kontenjan uygulandığında $249.75.
Öğe boyutu bağışlamayan taraftır, çünkü yazmalar 1 KB başına yukarı yuvarlanır. Aynı bir milyon öğenin yazılması, talep üzerine yazma istek birimi başına milyonda $0.625 ile çılgınca farklı tutarlara mal olur:
| Öğe boyutu | Her biri için yazma birimi | 1M yazma (us-east-1, talep üzerine) |
|---|---|---|
| 1 KB | 1 | $0.63 |
| 100 KB | 100 | $62.50 |
| 400 KB | 400 | $250.00 |
Yani etrafında tasarım yaptığınız büyüklük tablonun boyutu değil, öğenin boyutudur. Büyük blobları S3'e itin ve işaretçiyi DynamoDB'de tutun; sıcak bir anahtar altındaki sınırsız öğe koleksiyonlarından da kaçının. Kendi rakamlarınızı fiyatlandırma hesaplayıcısında denetleyin.
Daha derine inin
DynamoDB öğe koleksiyonları ve DynamoDB bölüm anahtarları nasıl çalışır yazılarını okuyun. Büyük tabloları verimli biçimde keşfetmek için DynoTable'ı indirin.
Kaynaklar
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Local secondary indexes — Amazon DynamoDB Developer Guide
- TableDescription — Amazon DynamoDB API Reference
- Best practices for understanding your AWS billing and usage reports in DynamoDB — Amazon DynamoDB Developer Guide
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı; kotalar ve fiyatlar 2026-07-28 tarihinde yeniden denetlendi.
TableSizeBytes rakamı, 2026-07-28 tarihinde @aws-sdk/client-dynamodb 3.1095.0 üzerinden DynamoDB Local 3.3.0'a (amazon/dynamodb-local:latest) karşı ölçüldü. DynamoDB Local hizmetin kendisi değildir ve ondan öğe başına bir ek yük sabiti çıkarılmamıştır.