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

Latest commit

 

History

History
29 lines (21 loc) · 1.93 KB

README.md

File metadata and controls

29 lines (21 loc) · 1.93 KB

Archived

We no longer use or maintain this project. Please reach out to [email protected] 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.