Skip to content

Instantly share code, notes, and snippets.

@rgodishela
Last active October 14, 2017 16:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rgodishela/f472e68dba839513a3081a2769040a3b to your computer and use it in GitHub Desktop.
Save rgodishela/f472e68dba839513a3081a2769040a3b to your computer and use it in GitHub Desktop.
powershell script to Autoscale dynamodb table
#####IMPORTANT INSTRUCTIONS to execute these instrcutions
#1. U should have role and policy created and attach them to each other
#2. U should have dynamodb table
#3. u should have AWS Tools for powershell 3.3.169
#First Get the Role Arn
$DDBRole = Get-IAMRole -RoleName ddb-role
$DDBRoleArn = $DDBRole.Arn
#Get the Table Name
Get-DDBTable -TableName AWS-Accounts -Region us-east-1
$DDBTable = Get-DDBTable -TableName AWS-Accounts -Region us-east-1
$DDBTableName = $DDBTable.TableName
#Register the Scalabale Target for WriteCapacityUnits
Add-AASScalableTarget -ServiceNamespace 'dynamodb' -MaxCapacity 20 -MinCapacity 5 -ResourceId table/$DDBTableName -RoleARN $DDBRoleArn -ScalableDimension 'dynamodb:table:WriteCapacityUnits' -Region us-east-1
#Put Scaling Policy for WriteCapacityUnits
Write-AASScalingPolicy -ServiceNamespace 'dynamodb' -PolicyName 'MyScalingPolicy' -PolicyType 'TargetTrackingScaling' -ScalableDimension 'dynamodb:table:WriteCapacityUnits' -PredefinedMetricSpecification_PredefinedMetricType 'DynamoDBWriteCapacityUtilization' -ResourceId table/$DDBTableName -TargetTrackingScalingPolicyConfiguration_ScaleInCooldown 60 -TargetTrackingScalingPolicyConfiguration_ScaleOutCooldown 60 -TargetTrackingScalingPolicyConfiguration_TargetValue 70.0
#Register the Scalabale Target for ReadCapacityUnits
Add-AASScalableTarget -ServiceNamespace 'dynamodb' -MaxCapacity 20 -MinCapacity 5 -ResourceId table/$DDBTableName -RoleARN $DDBRoleArn -ScalableDimension 'dynamodb:table:ReadCapacityUnits' -Region us-east-1
#Put Scaling Policy for ReadCapacityUnits
Write-AASScalingPolicy -ServiceNamespace 'dynamodb' -PolicyName 'MyScalingPolicy' -PolicyType 'TargetTrackingScaling' -ScalableDimension 'dynamodb:table:ReadCapacityUnits' -PredefinedMetricSpecification_PredefinedMetricType 'DynamoDBReadCapacityUtilization' -ResourceId table/$DDBTableName -TargetTrackingScalingPolicyConfiguration_ScaleInCooldown 60 -TargetTrackingScalingPolicyConfiguration_ScaleOutCooldown 60 -TargetTrackingScalingPolicyConfiguration_TargetValue 70.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment