I have already covered one of the first Dynamic DynamoDB releases in my blog. The project has matured and grown quite a lot since then. It has also gained some attention from AWS cheif evangelist Jeff Barr, boto author Mitch Garnaat and DynamoDB’s general manager Swami Sivasubramanian. I will in this post write about some of the features that Dynamic DynamoDB offers.
How does it work?
Dynamic DynamoDB watches your tables’ read and write consumption via AWS CloudWatch. It then calculates the usage percentage and depending on your configuration it will take action if the usage percentage reaches any threshold values. The actions offered are to add more provisioned capacity, either as a increase/decrease in percentage or in actual units.
What this ultimately means is of course that you will save money as your provisioning is aligned to the actual current need. Jeff Barr wrote that AWS customers has reported 20% savings when using Dynamic DynamoDB.
Example configuration is available on the Dynamic DynamoDB project page.
Full feature list (as of 2013-04-20)
- Automatic provisioning of DynamoDB tables
- Increase/decrease provisioning in units or percentage (percentage is default and recommended in most setups)
- Maintenance windows. Force Dynamic DynamoDB to operate only within specific timeframes
- Circuit breaker API calls. Useful to let Dynamic DynamoDB know when your service is down and no provisioning changes should be performed
- Configurable interval between checks
- Support for multiple DynamoDB tables at the same time
- Daemon mode
- Configurable logging
- Max and min levels for provisioning
- Synchronize provisioning updates, so that down scaling only is done if both reads and writes demands it