Hobby Science&Experiment

愛と工作の日々

趣味でやっている工作や勉強したことのメモ書きです。

EC2の定期起動・停止を利用したPythonプログラムの低コスト定期実行

前回EC2でPythonを定期実行できるようにしたものの、cronを定期実行するにはサーバーを起動しっぱなしにしないといけない。そうすると現時点は無料期間中とは言え、いずれ少なくない額の課金が発生する。
jakejake.hatenablog.com
というわけで、EC2サーバーの立ち上げ・たち下げ自体を定期実行してサーバー使用量を最小限にとどめる節約を試みた。
「EC2 定期実行」などで検索してめぼしい結果を試してみることにした。

主にこちらの手順をAmazon EventBridgeに置き換えてトレースした。
confrage.jp

Identity and Access Management (IAM)の設定はこちらが詳しかった。
agohack.com

EC2インスタンスを見ると、EventBridgeの実行で立ち上げ、立ち下げが出来ていることが確認できた。
後はこれをcron実行に切り替える。

cronは以下を参照。
docs.aws.amazon.com

  1. EC2立ち上げ:18:50 (UTC 09:50)
  2. EC2上のcronでPythonプログラム実行:18:53 (UTC 09:53)
  3. EC2立ち下げ:18:55 (UTC 09:55)

こんな感じで一回テストしてみると、インスタンスの状態がスケジュール通り切り替わり、cronも実行されているようだ。
良かった良かった。