[円安対策]EC2インスタンスを自動で止めてコスト削減

2022.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

みなさん、円安の最中いかがお過ごしでしょうか。

2022年、5月に1ドル130円台に突入してから円安が続いております。もう半年以上この付近のレートで推移していますね。
AWSは支払いがドル建て請求なので、リソースの使用量が変わらなくても支払額が大きくなってしまうような状況です。

そんな中で、AWSの利用費を少しでも下げるために、使用していない時間にEC2を自動で停止する方法を紹介します。

その前に:どれくらい安くなるの?

具体的な方法の解説に入る前に、実際に利用費がどれくらい安くなるのか試算してみます。

例1:東京リージョンでm5x.largeを1ヶ月丸々起動した場合
0.248 USD × 24h × 31d = 184.512 USD

例2:東京リージョンでm5x.largeを8時間、22日 起動した場合
0.248 USD × 8h × 22d = 43.648 USD

→75%以上の費用削減に!

これをEC2だけでなく、RDSなどにも適応することで、全体の余分なコストを抑えることができるようになります。

自動停止をする方法:opswitchの使い方

今回は opswitch を利用します。
opswitch はクラスメソッドが提供している、AWSをノーコードで操作できるサービスです。

コーディング等は一切無しで、ブラウザのみの設定でAWSのリソースを制御することができます!
また、よくある権限周りのトラブルも opsiwtch が自動で作成するので、ロールを自分で作ったり権限管理のストレスに悩まされたりすることはありません!
では早速使い方の説明をしていきます。

会員登録

まず、opswitch の新規登録ページ から会員登録を行います。

組織作成

会員登録が完了したら、初めに「組織」を作成します。 同じ組織に所属しているメンバーで、これから設定する内容を共同で管理することができます。

メニューから「組織一覧」をクリックします。

次に、画面下部の「組織作成」ボタンをクリックします。

組織名を入力し、「保存」をクリックすることで組織の作成が完了します。

利用中のAWSアカウントと連携

次に、利用中のAWSアカウントとopswitchを連携します。

メニューから「AWSアカウント設定」をクリックします。

次に、「AWSアカウント連携作成」をクリックします。

次のような画面が表示されるので、画面の案内に従って、連携を完了させます。

必要な情報を入力し、「作成」をクリックして完了です。
AWSアカウントとの連携が完了したら、タスクの作成に移ります。

タスクの作成

次にEC2を停止するタスクを作ります。 タスクとは「どのリソースに、どのような処理を行うのか」を定義するものです。

メニューから、「EC2インスタンスの起動・停止」をクリックします。

次に「作成」タブをクリックし、タスクの名前と操作を行いたいインスタンスについているタグを指定します。

下記では、リージョンは東京、Keyが “Environment” かつ Value が “Develop” になっているインスタンスを停止するよう設定しました。 ※リージョンは、対象のインスタンスが存在するリージョンを選んでください。

保存をしたら、次はジョブの作成です。

ジョブの作成

最後に、ジョブを作成します。 ジョブは「いつ、どんなタスクを実行するか」を定義するものです。

メニューから「ジョブ」をクリックします。

「ジョブの追加」ボタンをクリックし、ポップアップにジョブの名前を入力します。

ポップアップで「追加」ボタンを押すと、ジョブの編集画面が表示されます。

今回は、「平日のみ、毎日19時」に実行するように設定してみます。

スケジュールは「週次」を選択し、月〜金にチェックを入れます。 時間は「19時00分」に設定します。

タスクには、種別から「EC2インスタンスの起動・停止」を選択し、 先ほど作成したタスクを選択します。

最後に「更新」ボタンを押して、完了です!

起動をする際には、同じように「起動タスク」を作成し、平日の朝9時に実行されるようなジョブを作ればOKです。

最後に

以上が、opswitchを使ったEC2インスタンスの自動停止でした。 以前はLambda でスクリプトを書いたりしていましたが、徐々にEventBridge Sheduler などの機能も追加されてきています。

しかしIAMロールの設定などが必要で、少しハードルが高い方もいらっしゃるかと思います。 そういった方はぜひ、 opswitch でEC2やRDSのコスト削減に活用いただければと思います!