LoginSignup
0
0

AWS EC2インスタンスの開始/停止するシェルスクリプト

Posted at

あるシステムで割高なEC2インスタンスを利用していて、DEVとSTGのEC2インスタンスを普段は停止し、利用時のみ起動するという運用にしています。

ただ、起動や停止をするだけのために、AWSにログインするのは面倒です(起動するためだけに、6桁のあれを入力したりするのはちょっと...)。
コマンド1発でできればいいな〜と思い、起動/停止するシェルスクリプトを作成したので、備忘録として残します。

作成したシェルスクリプト

AWSコマンドラインインターフェイスがインストール済み、かつ、defaultの認証情報プロファイルの設定が完了している前提で作成したシェルスクリプトです。
※作成時のAWS-CLIはv2.9.10です。

ec2-start-stop.sh
#!/bin/sh

INSTANCE_ID_DEV="i-dev11111111111111"
INSTANCE_ID_STG="i-stg22222222222222"

if [ $# -lt 2 ]; then
  echo "ERROR: Environment and SubCommand is required.\n"
  exit 0
fi

instanceid=""
if [ $1 == "dev" ]; then
  instanceid=${INSTANCE_ID_DEV}
elif [ $1 == "stg" ]; then
  instanceid=${INSTANCE_ID_STG}
else
  echo "ERROR: '$1' is unknown environment. Specify 'dev' or 'stg'.\n"
  exit 0
fi

subcommand=""
if [ $2 == "start" ]; then
  subcommand="start-instances"
elif [ $2 == "stop" ]; then
  subcommand="stop-instances"
else
  echo "ERROR: '$2' is unknown subcommand. Specify 'start' or 'stop'.\n"
  exit 0
fi

echo "Run Command: aws ec2 ${subcommand} --instance-ids ${instanceid}"
aws ec2 ${subcommand} --instance-ids ${instanceid}

まとめ

久々にシェルスクリプト書いたら、構文を思い出せなくてショックだった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0