君たちは永遠にそいつらより若い

技術と音楽と日々のこと。

EC2 をmac起動時に自動起動、定時にシャットダウンする



EC2を毎日使うけど、夜中は落として節約したい案件だったので、mac起動時に自動起動する、定時にシャットダウンするようにした。

自動起動する方法

  • StartupItemsにServiceとplistを置いて、awscliで立ち上げることで、対応する。
  • awscliを使うので、クレデンシャル情報は作業前に登録しておくこと
  • <Service name>, <instance-id>, <Service description>には適当な名称を入れること。
  • StartupItemsはroot権限で動くので、ファイルのユーザはroot, グループはwheelへ。ディレクトリは755 (rwxr-xr-x)にしとくこと。
  • ドキュメントはこちら ( Startup Items )
$cat /Library/StartupItems/<Service name>/<Service name>
#!/bin/sh

. /etc/rc.common

StartService () {
  # Insert start command below.
  aws ec2 start-instances --instance-ids <instance-id>
}

StopService () {
}

RestartService () {
  StartService;
}

RunService "$1"
$ cat /Library/StartupItems/<Service name>/StartupParameters.plist
{
  Description = "<Service description>";
  Provides = ("<Service description>");
}

定時シャットダウンする方法

  • 普通に crontab で仕込む。
  • 時差やサーバの時間に注意
$ date
2015年 4月17日 金曜日 00時10分13秒 ICT
$ sudo crontab -e
# every day JST 23:00 shutdown
0 21 * * * /sbin/shutdown -h now
$ sudo crontab -l