Created
August 11, 2015 18:20
-
-
Save asheliahut/0105b0c42e87df88dcd1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
usage() | |
{ | |
echo "Description: this script is used for scaling databases of r3 size only. can be altered make sure to have the rds cli installed"; | |
echo "-e (Required Field) Specify the environment you want to scale Ex: perf | performance, stag | staging, sand | sandbox, or prod | production "; | |
echo "-i Shows information for the environment"; | |
echo "-s Scale to specified instance default = large. Ex: l | large, xl | xlarge, 2xl | 2xlarge, 4xl | 4xlarge, or 8xl | 8xlarge"; | |
echo ""; | |
echo "E.g. usage:"; | |
echo ""; | |
echo "rds-scale.sh -e production -s xl"; | |
echo "This would scale the master production server up to db.r3.xlarge"; | |
echo ""; | |
echo "rds-scale.sh -e performance -s l"; | |
echo "This would scale the master performance server to db.r3.large"; | |
echo ""; | |
echo "rds-scale.sh -e production -i"; | |
echo "This would show the status information for the server."; | |
echo ""; | |
exit | |
} | |
if [[ $# -eq 0 ]] ; then | |
echo "Please pass at least one argument."; | |
usage | |
fi | |
env='' | |
server_identifier='' | |
info=0 | |
scalesize='' | |
#server list | |
prod_server='prod_db_name' | |
perf_server='perf_db_name' | |
stag_server='stag_db_name' | |
sand_server='sand_db_name' | |
while [ "$1" != "" ]; do | |
case $1 in | |
-e | --environment ) shift | |
env=$1 | |
;; | |
-i | --information ) info=1 | |
;; | |
-s | --scale ) shift | |
scale=$1 | |
;; | |
-h | --help ) usage | |
exit | |
;; | |
* ) usage | |
exit 1 | |
esac | |
shift | |
done | |
case "$env" in | |
'prod' | 'production' ) server_identifier="$prod_server" ;; | |
'perf' | 'performance') server_identifier="$perf_server" ;; | |
'stag' | 'staging' ) server_identifier="$stag_server" ;; | |
'sand' | 'sandbox' ) server_identifier="$sand_server" ;; | |
* ) echo "not a valid environment please choose one"; exit ;; | |
esac | |
if [[ $info == 1 ]] ; then | |
rds-describe-db-instances "$server_identifier" | |
echo "" | |
fi | |
case "$scale" in | |
'l' | 'large' ) scalesize='db.r3.large' ;; | |
'xl' | 'xlarge' ) scalesize='db.r3.xlarge' ;; | |
'2xl'| '2xlarge' ) scalesize='db.r3.2xlarge' ;; | |
'4xl'| '4xlarge' ) scalesize='db.r3.4xlarge' ;; | |
'8xl'| '8xlarge' ) scalesize='db.r3.8xlarge' ;; | |
* ) echo "no size selected please choose one"; exit ;; | |
esac | |
rds-modify-db-instance --apply-immediately --db-instance-class "$scalesize" --db-instance-identifier "$server_identifier"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment