AWS(EC2)の自動停止をやってみる
こんにちは、飲み会大好き内山です。
そろそろ夏ですね。そろそろプレミアムマンデーでもしてビアガーデンに行きたいですねー。
今回は真面目に技術関連のネタを書きます。
■AWS(EC2)
AWS(EC2)良いですよね。ちょくちょく使ってます。
ちょっと試したいツール入れみたり、自分用の自由にできる環境作ってみたり
簡単なアプリケーションサーバ立てたり、etc。
案件・プロジェクトとは別に、チーム内のツールとか情報共有とか
暇になったときにちょっとサーバ立てるのになんだかんだ使ってます。
とりあえずやって不要なら壊す。既存の環境や社内サーバのリソースを意識しないで
気軽にいじることができるのは精神的にとても健康的な手段だと思ってます!
ただ、AWSをやっていて気にするのが「料金」。
1時間あたりが安くてもやはり常時起動しっぱなしだと塵が積もってそこそこの金額になりますよね。
遊びで利用しているとな放置していると意味もなく使用量が積重なってしまい罪悪感が結構あります。
不要なときに止めればよし、と思うのですがどうしても忘れてしまうんですよね。よくやらかしてました。
料金がかかってしまうと気軽に使えなくなってしまったり、上からの目につけられてしまいます。
みんなが安心して使える工夫をしたいですよね。
上記の問題を解決するために、
現在、特定の時間になったら自動的にインスタンスを停止するように1台のEC2サーバからシェルを実行してます。
今回のはそのノウハウを共有したいと思います。
■EC2の自動停止
やりたいことは下記
実現方法は下記
やっていることはだいぶ単純です。
AWS CLIでインスタンスの一覧取得コマンドを実行、その後、起動中のものに関して、停止コマンドを実行
その際に、インスタンスIDでホワイトリストを用いて判定する。
そして結果を対象のWebhook先の形式に併せてCurlするだけです。
ポイントは
以下にサンプルコードを記載します。
これで安心してAWS(EC2)を楽しみましょう!
停止の他に、自動起動や状態確認の処理を加えたサンプルをGithubに載せてます。
よかったら参考にしてください。
参考サイト:
書いた人:飲み会大好き 内山