Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
#!/bin/bash
set -x verbose
########################
# Create scaling policy
########################
AUTOSCALING_GROUP="app-autoscaling-group"
TYPE="ChangeInCapacity"
COOLDOWN=300
# Policy function
function add_policy(){
local RSLT=`as-put-scaling-policy \
--auto-scaling-group $AUTOSCALING_GROUP \
--name $POLICY_NAME \
"--adjustment=$ADJUSTMENT" \
--type $TYPE \
--cooldown $COOLDOWN`
echo $RSLT
}
echo "scale up policy"
POLICY_NAME="scale-up"
ADJUSTMENT=1
SCALE_UP=$(add_policy)
echo "scale down policy"
POLICY_NAME="scale-down"
ADJUSTMENT="-1"
SCALE_DOWN=$(add_policy)
########################
# Create scaling alarms
########################
METRIC_NAME="CPUUtilization"
NAMESPACE="AWS/EC2"
STATISTIC="Average"
PERIOD="60"
DIMENSIONS="AutoScalingGroupName=$AUTOSCALING_GROUP"
EVAL_PERIODS=3
UNIT="Percent"
function add_alarm(){
local RSLT=`mon-put-metric-alarm --alarm-name $ALARM_NAME \
--alarm-description $ALARM_DESC \
--metric-name $METRIC_NAME \
--namespace $NAMESPACE \
--statistic $STATISTIC \
--period $PERIOD \
--threshold $THRESHOLD \
--comparison-operator $COMPARISON_OPERATOR \
--dimensions $DIMENSIONS \
--evaluation-periods $EVAL_PERIODS \
--unit $UNIT \
--alarm-actions $ALARM_ACTION`
echo $RSLT
}
echo "adding scale up alarm"
ALARM_NAME="app-scale-up"
THRESHOLD=70
ALARM_DESC="Scale-up-at-$THRESHOLD-percent-load"
COMPARISON_OPERATOR="GreaterThanThreshold"
ALARM_ACTION=$SCALE_UP
add_alarm
echo "adding scale down alarm"
ALARM_NAME="app-scale-down"
THRESHOLD=15
ALARM_DESC="Scale-down-at-$THRESHOLD-percent-load"
COMPARISON_OPERATOR="LessThanThreshold"
ALARM_ACTION=$SCALE_DOWN
add_alarm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment