We no longer use or maintain this project. Please reach out to [email protected] if you are interested in taking ownership.
Provides auto scaling for AWS DynamoDB within a .NET library. Inspired by sebdah's dynamic-dynamodb project.
Nuget package is available at https://www.nuget.org/packages/DynamoDbAutoscaler/
To use in a service with a simple local json configuration create an instance DynamoDbAutoscalerIntervalProvisioner and call Start on service start. The autoscaler will load the file at ./autoscaling.json as its configuration for throughput provisioning and make adjustments every 5 minutes.
This code relies on Serilog to provide logging. There is currently an open issue to make this dependency optional
By default this code will use the IAM profile or AWS keys provided in your app.config and verify that your provisioned DynamoDb throughput levels are within the configured values. Your IAM user will need read rights for Cloudwatch (to read provisioned, consumed, and throttled values) and rights to edit provisioned read/write units on the target DynamoDb tables. Specifically you will need:
- cloudwatch:GetMetricStatistics
- dynamodb:DescribeTable
- dynamodb:ListTables
- dynamodb:UpdateTable
Most everything in this project is an interface. To use your implementation simply override the default implementations in the Autoscaler constructor.
Please feel free to submit pull requests or bugs within Github.