kongou-ae
2/26/2015 - 2:15 PM

ec2-cost-saving.sh

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