AWS Fargate、Amazon ECSの起動と停止を自動化できる無料ツールを紹介します

2023.10.31

はじめに

弊社が提供する無料のAWS運用かんたん自動化ツール「opswitch」を使って、夜間や土日祝日などの使わない時間帯に開発環境のAWS Fargate、Amazon ECSを停止させる方法を紹介します。プログラムなどの知識はなくても、Webの操作だけで設定を行えます。Fargateを例に説明をすすめます。ECS(ECS on EC2)の場合は「タスクの作成」が少し違いますので補足をご覧ください。

準備

ユーザーガイド opswitchを開始するを参考に以下の初期設定を完了させてください。

  • opswitchのアカウント作成
  • opswitchアカウントの初期設定
    1. ユーザー属性情報登録
    2. 組織作成
    3. AWSアカウント連携作成

タスクの作成

それではFargateを起動させるタスクから作成します。

Management Consoleでタスク数を変更したいECSサービスにタグをつけます。どのサービスを対象にするかの判定に使うので値はなんでもよいです。

opswitchにログインして、ヘッダーのメニューから「タスク」-「ECS」-「ECSサービスのタスク数変更」をクリックします。

タスクの一覧が表示されます。作成したタスクはこの画面から編集や削除することができます。最初は0件ですので作成ボタンをクリックします。

タスクの名前(何でもよいです。)、組織、AWSアカウント、リージョンなど条件を入力し対象のタグは手順1でつけたタグを指定してください。「必要なタスク」にはタスク数を指定します。起動タスクなので1以上にしてください。最後に一番下にある保存ボタンをクリックしてください。

続いてFargateを停止させるタスクを作成します。作成したタスクを一覧からコピーします。

「名前」と「必要なタスク」を変更します。「必要なタスク」は0にして下さい。

ジョブの作成

作成したタスクをスケジューリングします。ヘッダーの「ジョブ」をクリックしてジョブ一覧を表示し、画面上にある「作成」ボタンをクリックします。

ジョブの設定を行います。ジョブの名前を何でもよいので入力します。スケジュールを「週次」にし、FargateやECSを起動する曜日と時間を指定します。日本の祝日には起動したくない場合は「日本の祝日はジョブの実行をスキップする」にチェックを入れてください。「日付を確認」ボタンを押すとスキップする日付を確認できます。最後に下のタスクという項目で手順4で作成したタスクを選択します。

同じように停止ジョブを作成します。

これで完了です。平日の8:00に1タスク起動して、18:00に0タスクになり停止します。日本の祝日には起動しません。

年末年始や夏休みなど、会社が休みの日に起動ジョブをスキップしたい場合は「ジョブの実行をスキップする日付を指定」を設定することでスキップできます。詳しくはユーザーガイドのこちらのページをご覧ください

最後に

最後に上記の設定を行うことでどの程度コストカットになるかを計算します。来月2023年11月を例に挙げますと、停止しない場合は30日×24時間で720時間です。opswitchを使って起動停止した場合は土日祝日を除いた平日20日×10時間で200時間です。約72%のコストカットになります。これは大きいですね。

opswitchは AWS ファンデーショナルテクニカルレビュー (FTR) を通過した「AWS 認定ソフトウェア」です。ぜひお試しください。

補足

ECS on EC2でAutoScalingを使っている場合は「Auto Scaling グループのサイズ変更」タスクでAutoScalingの「希望するキャパシティ」を変えることで起動停止できます。ユーザーガイドの以下をご覧ください。

Auto Scaling グループのサイズ変更