AWS SSMでEC2の起動/停止をスケジューリングしてみた
2024.11.05
AWS Systems Manager(AWS SSM)の一機能であるAWS Systems Manager Quick SetupのResource Schedulerを使用し、EC2の起動・停止を設定します。
検証環境等で夜間帯に利用がないEC2などのAWS リソースを停止することで、コストを削減する事を目的としています。本記事では、その設定方法をご紹介します。
はじめに
検証/開発等の社内環境で特定時間帯(夜間/休日など)に利用のないAWSリソース(EC2など)を停止することは、コスト削減方法の一つとして知られています。
その実装方法は、主に以下2点が主流です。
私自身Lambdaについては得意ではなかったため、今回ご紹介するResource Schedulerを利用した方法はUIをクリックして簡単に設定ができるため魅力に感じました。
リリースからすでに2年経過しており、多くの方が実践されているかと思いますが、改めて方法をご紹介します。
AWS Systems Manager(AWS SSM)とは?
AWS Systems Managerとは、AWSのアプリケーションやリソースを一元管理するための運用ハブです。以下は、AWS Systems Managerの主な機能と利点です。
機能名 | 説明 |
---|---|
アプリケーション管理 | アプリケーションの運用情報を一元管理し、問題を迅速に解決できます。 |
変更管理 | 運用変更のリクエスト、承認、実施、報告を一元管理できます。 |
ノード管理 | 複数のAWSアカウントやリージョンにまたがるノードを管理し、コンプライアンスチェックやインベントリ管理が可能です。 |
Operation管理 | インシデント管理や運用データのダッシュボード表示が可能です。 |
Quick Setup | AWSサービスの設定を自動化し、ベストプラクティスに従った設定が簡単に行えます。 |
共有リソース | AWS Systems Managerは、AWSリソースの管理や設定を行うために、いくつかの共有リソースを使用します。複数のアカウントやリージョンでリソースを効率的に管理することができます。具体的には、ドキュメントやパラメータストアなどが含まれます。 |
※詳細について公式ドキュメントをご参照ください。
今回は、上記表の「Quick Setup」機能を利用していきます。
AWS SSMを使用するメリットは?
AWS SSMを使用するメリットとして前述の通りコスト削減はもちろんですが、下記の通りセキュリティ面の強化にも繋がるうえに管理がしやすいというところが最大の特徴です!
メリット | 詳細 |
---|---|
コスト削減 | 必要な時にのみリソースを起動・停止することで、コストを抑えることができます |
セキュリティ強化 | 踏み台サーバが不要になり、直接かつ安全にインスタンスにアクセスできます |
管理の簡素化 | SSH キーの管理やサーバのポート開放作業が不要になります |
スケーラビリティ | 複数のアカウントやリージョンにまたがるリソースを一元管理できます |
柔軟なスケジュール設定 | 自動的にリソースの起動・停止をスケジュールでき、運用の手間を省けます |
これらのメリットを活用して、効率的かつ安全なクラウド運用を目指しましょう!
実際の設定方法
今回は、検証環境を営業日(月~金) AM8:00に起動 / PM18:00に停止となるように設定していきます。
事前準備
自動起動ON/OFFをしたい対象EC2インスタンスに対して自動起動/停止用のタグと判別できるよう任意のタグを付与します。今回は以下のように付与します。
Name | Value |
---|---|
Instance-run-8-18 | start |
Resource Scheduler 設定
事前準備が完了したので AWS System manager(以後 SSM と省略します)で設定をしていきます。
「System Manager」から左ペイン上部の「高速セットアップ」画面へ遷移し、「ライブラリ」タブ にて「Resorce Scheduler の作成」をクリックします。
次に、Resorce Schedulerを設定していきます。
項目名 | 説明 |
---|---|
インスタンスタグ | 事前準備 項 で設定したタグを入力します。 |
タイムゾーン | デフォルトで Asia/Tokyo となっているので基本は変更不要です。 |
スケジュールの曜日 | 起動/停止をしたい曜日を指定します。デフォルトで 月~金 が設定されています。 |
インスタンスの開始時刻 | インスタンスを起動したい時刻を指定します(JST) |
インスタンスの終了時刻 | インスタンスを停止したい時刻を指定します(JST) |
ターゲット | 基本は 現在のリージョン で問題ありません。※複数リージョンに展開したい場合は、「リージョンを選択」で対象にチェックをつけます。作成を選択します。 |
入力内容に問題なければ、「作成」ボタンをクリックします。
はじめはグレーのサークルですが、各リソースが作成されると以下のようにグリーンのサークルに変化します。
これにてResource Schedulerの設定は完了となります。
続いて、スケジューリングした時刻にインスタンスが起動/停止するかを確認します。
起動時刻まで待機し・・・
タグを付与したインスタンスが起動したことを確認しました!
その後、停止時刻にインスタンスが停止したことも確認できました!
最後に
今回紹介した機能をご利用いただくことで、就業前インスタンス起動漏れや就業後のインスタンス停止漏れを防ぐことができ、過度な料金発生を抑制することができます。
また、何らかの原因で定刻にEC2が起動していない場合でも、JIG-SAWにAWSの運用をお任せいただいている企業様ならJIG-SAWオペレーターにて手動でシステムを起動します!
この記事を読んで、この設定を行う時間がない、自身でスケジュールの設定を行うことが難しいとお悩みの企業様は、お気軽にご相談ください。
弊社のシステムの監視・運用サービス では、スケジュールの設定をはじめとする、様々な運用業務も代行可能です。障害が発生した場合、原因の切り分けから実際の復旧作業まで実施することもできるため、夜間休日の障害でも安心です。