Amazon DynamoDB offers two billing modes: On-Demand and Provisioned. While On-Demand capacity provides flexibility, provisioned capacity can significantly reduce costs for applications with consistent workloads.
Why This Policy Matters
Cost Optimization Strategies
Predictable Workloads: Ideal for applications with consistent traffic patterns
Capacity Planning: Enables precise resource allocation
Budget Control: Provides more granular cost management
Financial Impact
A typical 100GB DynamoDB table with the following characteristics demonstrates significant savings:
5,000 Read Capacity Units (RCUs)
2,000 Write Capacity Units (WCUs)
50 million reads per day
20 million writes per day
Cost Comparison:
Provisioned Capacity: $1,400/month
On-Demand Capacity: $2,600/month
Potential Savings: 46%
Implementation Guide
Infrastructure as Code Example (Terraform)
Before:
resource "aws_dynamodb_table" "example" {
billing_mode = "PAY_PER_REQUEST" # On-Demand Mode
name = "MyTable"
hash_key = "ID"
attribute {
name = "ID"
type = "S"
}
}
After:
resource "aws_dynamodb_table" "example" {
billing_mode = "PROVISIONED" # Provisioned Mode
name = "MyTable"
read_capacity = 5000
write_capacity = 2000
hash_key = "ID"
attribute {
name = "ID"
type = "S"
}
}
Manual Implementation Steps
Analyze historical traffic patterns
Calculate average read and write capacity requirements
Switch billing mode to Provisioned
Set initial read/write capacity units
Enable auto-scaling for dynamic adjustment
Best Practices
Monitor Performance: Use CloudWatch metrics
Enable Auto-Scaling: Automatically adjust capacity
Regular Review: Quarterly workload assessments
Use Reserved Capacity: Additional cost savings for long-term commitments
Tools for Implementation
AWS CloudWatch: Performance monitoring
Infracost: Identify and prevent costly configurations
AWS Cost Explorer: Analyze spending patterns
Example Scenarios
E-commerce Platform
Workload: Consistent daily traffic
Benefit: Predictable capacity planning
Estimated Savings: 40-50% compared to On-Demand
SaaS Application
Workload: Regular user interactions
Benefit: Optimized resource allocation
Estimated Savings: 35-45% reduction in database costs
Considerations and Caveats
Potential Drawbacks
Requires more upfront planning
Risk of under-provisioning
Initial configuration complexity
When to Avoid
Highly unpredictable workloads
Startup applications with unknown traffic patterns
Infrequently accessed tables
Infracost Integration
Infracost’s free trial helps you:
Scan existing infrastructure
Identify cost optimization opportunities
Provide instant recommendations for DynamoDB configurations
Frequently Asked Questions (FAQs)
How do I determine if Provisioned is right for me?
Analyze 3-6 months of CloudWatch metrics to understand consistent usage patterns.
Can I switch between billing modes?
Yes, you can switch between Provisioned and On-Demand once per day.
What happens if I under-provision?
Your application may experience throttling. Use auto-scaling to mitigate this risk.
Is Provisioned always cheaper?
No. For truly unpredictable or sporadic workloads, On-Demand might be more cost-effective.
How does auto-scaling work with Provisioned mode?
Auto-scaling automatically adjusts read/write capacity based on actual usage, within defined minimum and maximum limits.
Create Free Account
This policy is supported in Infracost and available in the free trial. Sign up today and scan your code using our entire library of FinOps policies.