⚡️ Serverless Plugin for DynamoDB Auto Scaling
Serverless Plugin to enable autoscaling for dynamodb tables and its GSI.
Installation
# Via yarn $ yarn add serverless-plugin-dynamo-autoscaling # Via npm $ npm install serverless-plugin-dynamo-autoscaling
Add the plugin to your serverless.yml
:
plugins: - serverless-plugin-dynamo-autoscaling
Configuration
custom: autoscaling: - table: CustomTable # DynamoDB Resource index: # List or single index name - Optional - custom-index-name roleArn: # Arn of the role to be associated - Optional read: minimum: 5 # Minimum read capacity maximum: 1000 # Maximum read capacity targetUsage: 75 # Targeted usage percentage write: minimum: 40 # Minimum write capacity maximum: 200 # Maximum write capacity targetUsage: 50 # Targeted usage percentage
Defaults
maximum: 200minimum: 5targetUsage: 75
If no roleArn
is specified, plugin will automatically create one and use it.
Index Only
If you only want to enable Auto Scaling for the index, use indexOnly: true
to skip Auto Scaling for the general DynamoDB table.
DynamoDB
The example serverless configuration above works fine for a DynamoDB table CloudFormation resource like this:
resources: Resources: CustomTable: Type: AWS::DynamoDB::Table Properties: TableName: custom-table AttributeDefinitions: - AttributeName: key AttributeType: S KeySchema: - AttributeName: key KeyType: HASH ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 5 GlobalSecondaryIndexes: - IndexName: custom-index-name KeySchema: - AttributeName: key KeyType: HASH Projection: ProjectionType: ALL ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 5
Thanks
- Sebastian Müller This repo is rewrite of Sebastian's serverless plugin.
License
Feel free to use the code, it's released using the MIT license.