以前Azure VMについて、決められた時間に起動・停止させる方法について調べていたとき、比較としてEC2インスタンスの起動・停止も調べたので、その内容について書きとめておきます。
Azure VMと同じで、用意されているAPIを何らかのツールを使って実行させます。
Azureとの違いは、提供されているコマンドラインツールはPowerShellがなくても操作できるところ。通常のLinuxからも操作可能なのは嬉しいですね。
起動・停止関連API
起動(再開):ec2-start-instances
http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-StartInstances.html
停止:ec2-stop-instances
http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-StopInstances.html
状態確認:ec2-describe-instance-status
http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-DescribeInstanceStatus.html
参考ページ
シェルスクリプトのサンプル。シンプルにcronで定期実行に使えそうです。
http://dev.classmethod.jp/cloud/aws/ec2-start-and-stop-script-on-linux/
バッチのサンプル。ツールで使う前提のようですが、タスクスケジューラで実行するよりもスケジュールの自由度が高く、コスト削減には効果がありそうです。
https://a-auto50.unirita.co.jp/case_study2/
AWSのサービス、AWS OpsWorksからも自動で起動できるようですが、料金は多少掛かります。
http://recipe.kc-cloud.jp/archives/4146