Skip to content
This repository has been archived by the owner on Jun 8, 2022. It is now read-only.

litmus/DynamoDbAutoscaler

Repository files navigation

Archived

We no longer use or maintain this project. Please reach out to hello@limtus.com if you are interested in taking ownership.

DynamoDbAutoscaler

Provides auto scaling for AWS DynamoDB within a .NET library. Inspired by sebdah's dynamic-dynamodb project.

Build status

Nuget

Nuget package is available at https://www.nuget.org/packages/DynamoDbAutoscaler/

Usage

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.

Logging

This code relies on Serilog to provide logging. There is currently an open issue to make this dependency optional

Permissions

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

Customization

Most everything in this project is an interface. To use your implementation simply override the default implementations in the Autoscaler constructor.

Contributing

Please feel free to submit pull requests or bugs within Github.

About

Provides auto scaling for AWS DynamoDB within a .NET library. Inspired by sebdah's dynamic-dynamodb project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published