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.

    Install

    npm i serverless-plugin-dynamo-autoscaling

    DownloadsWeekly Downloads

    23

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    159 kB

    Total Files

    20

    Last publish

    Collaborators

    • avatar