EC2の自動開始停止はLambdaで可能なのだが、似たようなことをBeanstalkでもできるようにしたい。Beanstalkのアプリケーション自体を終了させる方法があるのだが、これでは次回同じURLを取得できる保証がない。悩んでいるところで方法が見つかった。インスタンスを0-0にするだけでよいのだ。
やりたいこと
月~金の朝8:30~夜21時に、自動的に開始と停止をさせたい。
時間に基づくスケーリング
[Beanstalk]-[設定]-[容量]の時間に基づくスケーリングを開く。
StartとStopを作成する。日本時間の8:30に1-1にして、21時に0-0にする。「希望する容量」とは起動するときのインスタンスの数。
スケジュール
繰り返しに「30 23 * * 0-4」と登録。これで月~金の朝8:30になる。終了時間は適当に1年後などにしておく。
(注意点)
月-金は1-5なのだが、日本時間8:30=23:30=前日なので0-4になる。
なぜか[保存]でエラーになるが、一度キャンセル(設定値は記憶されている)再度保存で上手くいった。(2018-05)
まとめ
AWSの月額使用料を減らすのが目的。運用サーバーを停止するなんて無いと思うが、社内の開発サーバーや、営業デモサーバーなどに使用している。