ec2-cost-saving.sh
$ sudo cat /etc/cron.d/ec2-cost-saving.sh
#!/bin/sh
# USAGE : ./ec2-cost-saving.sh [instance-id] [start/stop]
INSTANCE_ID="${1}"
ACTION="${2}"
INSTANCE_STATE=`aws ec2 describe-instances --instance-ids "${INSTANCE_ID}" | jq ' .Reservations[].Instances[].State.Name'`
case ${ACTION} in
'start' )
case ${INSTANCE_STATE} in
'"stopped"' )
aws ec2 start-instances --instance-ids "$INSTANCE_ID"
;;
'"running"' )
echo "${INSTANCE_ID} is already running"
;;
esac
;;
'stop' )
case ${INSTANCE_STATE} in
'"stopped"' )
echo "${INSTANCE_ID} is already stopped"
;;
'"running"' )
aws ec2 stop-instances --instance-ids "$INSTANCE_ID"
;;
esac
;;
esac
$ sudo cat /etc/cron.d/ec2-cost-save
#!/bin/sh
30 22 * * * ec2-user /home/ec2-user/ec2-cost-saving.sh i-xxxxxxxx stop
0 8 * * * ec2-user /home/ec2-user/ec2-cost-saving.sh i-xxxxxxxx start