Skip to content

Instantly share code, notes, and snippets.

@miradnan
Last active February 12, 2019 07:46
Show Gist options
  • Save miradnan/72e30b221ec61e900c57f48d15f6b2bf to your computer and use it in GitHub Desktop.
Save miradnan/72e30b221ec61e900c57f48d15f6b2bf to your computer and use it in GitHub Desktop.
aws_update_infra.sh
#!/usr/bin/env bash
HOUR=$(date +"%H")
RDS_DESIRED_SIZE=db.t2.2xlarge
RDS_IDLE_SIZE=db.t2.large
EC2_DESIRED_SIZE=2
EC2_IDLE_SIZE=1
# AWS Config
AWS_AVAILIBILIY_ZONE=ap-south-1a
AWS_AUTO_SCALING_NAME=prod
AWS_RDS_DB_IDENTIFIER=projectx
# Dev Env
AWS_DEV_RDS_DB_IDENTIFIER=projectx-testing
APP_STAGING_SERVER="i-XXXXXXXXXXXXXXXX"
APP_IP_STAGING_SERVER="i-YYYYYYYYYYYYYYYY"
increaseEc2Servers()
{
echo "Increasing EC2 servers to $EC2_DESIRED_SIZE nos...\n"
/usr/local/bin/aws autoscaling update-auto-scaling-group --auto-scaling-group-name $AWS_AUTO_SCALING_NAME --min-size $EC2_DESIRED_SIZE --desired-capacity $EC2_DESIRED_SIZE --availability-zones $AWS_AVAILIBILIY_ZONE
}
increaseRdsSize(){
echo "Increasing RDS size to $RDS_DESIRED_SIZE nos...\n"
/usr/local/bin/aws rds modify-db-instance --db-instance-identifier $AWS_RDS_DB_IDENTIFIER --db-instance-class $RDS_DESIRED_SIZE --apply-immediately
}
decreaseEc2Servers(){
echo "Decreasing EC2 servers to $EC2_IDLE_SIZE nos...\n"
/usr/local/bin/aws autoscaling update-auto-scaling-group --auto-scaling-group-name $AWS_AUTO_SCALING_NAME --min-size $EC2_IDLE_SIZE --desired-capacity $EC2_IDLE_SIZE --availability-zones $AWS_AVAILIBILIY_ZONE
}
decreaseRdsSize(){
echo "Decreasing RDS size to $RDS_IDLE_SIZE nos...\n"
/usr/local/bin/aws rds modify-db-instance --db-instance-identifier $AWS_RDS_DB_IDENTIFIER --db-instance-class $RDS_IDLE_SIZE --apply-immediately
}
# DEV
##############################################
turnOnDevEnvironment(){
/usr/local/bin/aws rds start-db-instance --db-instance-identifier $AWS_DEV_RDS_DB_IDENTIFIER
/usr/local/bin/aws ec2 start-instances --instance-ids $FMS_STAGING_SERVER $FMS_IP_STAGING_SERVER
}
turnOofDevEnvironment(){
/usr/local/bin/aws rds stop-db-instance --db-instance-identifier $AWS_DEV_RDS_DB_IDENTIFIER
/usr/local/bin/aws ec2 stop-instances --instance-ids $FMS_STAGING_SERVER $FMS_IP_STAGING_SERVER
}
###############################################
if [ $HOUR == "10" ];
then
increaseEc2Servers
increaseRdsSize
elif [ $HOUR == "18" ]; then
decreaseEc2Servers
decreaseRdsSize
fi
if [ $HOUR == "20" ];
then
turnOofDevEnvironment
elif [ $HOUR == "10" ]; then
turnOnDevEnvironment
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment