aws_ dynamodb_ table_ item cost estimation
A DynamoDB table item is free to define, but it adds to the table's stored data and consumes write and read capacity, so its cost is realized on the table.
An aws_
DynamoDB bills storage per GB-month (about $0.25/GB-month) for all item data plus index overhead, and bills throughput either on-demand (per million read and write request units) or provisioned (per capacity unit-hour). Writing one item with Terraform consumes write capacity once; reading it consumes read capacity. A handful of seed items is negligible, but managing many items this way, or large items, adds real stored bytes and, on write, real capacity consumption.
aws_
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "aws_dynamodb_table_item" "default_config" {
table_name = aws_dynamodb_table.settings.name
hash_key = aws_dynamodb_table.settings.hash_key
item = jsonencode({
id = { S = "app-config" }
theme = { S = "dark" }
limit = { N = "100" }
})
}Pricing dimensions
What you actually pay for when you provision aws_.
| Dimension | Unit | What's being charged |
|---|---|---|
| Item storage | per GB-month | The item's bytes add to the table's stored data, billed per GB-month. ~$0.25/GB-month |
| Write to create the item | per write request unit | Writing the item consumes write capacity once, on-demand or provisioned. On-demand: ~$1.25 per 1M writes |
| Reads of the item | per read request unit | Reading the item consumes read capacity on the table. On-demand: ~$0.25 per 1M reads |
Optimization tips
Common ways to reduce aws_ cost without changing the workload.
Use table items only for seed data
aws_
Keep items small
Storage and write capacity both scale with item size. Trim large attributes and store big blobs in S3 with a pointer in the item instead of inline.
Match the table's capacity mode to access
The real cost is the table. On-demand suits spiky or seed workloads; provisioned with auto scaling is cheaper for steady traffic. Pick the mode that fits how items are actually read and written.
FAQ
Does a DynamoDB table item cost money?
Indirectly. The item is not a billed resource on its own, but it adds bytes to the table's storage (per GB-month) and the write that creates it consumes write capacity. Cost is realized on the table.
Should I load bulk data with aws_ dynamodb_ table_ item?
No. It is designed for seeding a few reference or configuration rows. Bulk data belongs in a batch import or application writes, which are cheaper and do not bloat Terraform state with every row.
How do I estimate the cost of DynamoDB items?
Sum the item sizes for storage per GB-month, then account for the read and write capacity your access pattern consumes under the table's capacity mode. c3x prices this at the table level.
Related resources
More AWS resources
Estimate this resource in your own Terraform
Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including aws_.