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