はじめに どうも、佐々木です。大好きな夏が終わりかけていて寂しいです。 主にコストダウンを目的として、EC2の起動/停止をスケジューリングしたい場合があります。方法としては、Auto Scalingを使うか、あるいは外部からAPIを叩くことになります。簡単なのはAWS SDKなりAWS CLIなりを使ってAPIを叩く方法です。しかしスケジュールに従った自動起動では、人手を介さない以上、失敗した場合の処理を考慮しておく必要があります。失敗の要因としては、AWS側の問題、システム側の問題、両方が考えられます。自動停止であれば、失敗しても停止しない=起動しっぱなしなので、サービスに影響はありません。しかし自動起動が失敗した場合には、サービス自体が動かない為、利用者に影響を与えてしまいます。 そこで、AWS CLIを利用して、以下のようなシェルスクリプトを書いてみました。 EC2を起動する(sta