serverless-plugin-dynamo-autoscaling

1.0.1 • Public • Published

⚡️ Serverless Plugin for DynamoDB Auto Scaling

Build Status Coverage Status npm GitHub license dependencies Status

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: 200
minimum: 5
targetUsage: 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

License

Feel free to use the code, it's released using the MIT license.

Package Sidebar

Install

npm i serverless-plugin-dynamo-autoscaling

Weekly Downloads

124

Version

1.0.1

License

MIT

Unpacked Size

159 kB

Total Files

20

Last publish

Collaborators

  • cj_joulain