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