EC2 自動停止設定

ec2-auto-stop

AWSの学習をしてて、EC2の停止を忘れることがあったため、EC2の自動停止設定についての備忘録についてまとめました。

EC2のSSH接続に関する記事は以下

参考 EC2踏み台サーバを経由してssh接続ITサービス指向エンジニアブログ

仕事が終わって家族が就寝後、24:00までには学習を終えることが多いため、24:00になったらEC2を自動停止する設定を行いました。

設定手順は以下の流れで設定します。

STEP.1
IAMロールの作成
ユースケースにSystem Manager, ポリシーにAmazonSSMAutomationRoleのチェックを入れます
STEP.3
ポリシーを編集
ロールの作成後に信頼ポリシーを編集します
STEP.4
Amazon EventBridgeのルールを作成
どの時間帯で自動停止するかのスケジュール設定をします
System Managerとは
AWSのオペレーションタスクを自動化することができるサービスです。
今回の記事では、EventBridgeとの連携でリソースの起動停止のスケジューリングを操作します。

オートメーションにおける費用感

AWS公式ドキュメントの内容を引用します。

AWS Systems Manager の機能であるオートメーションでは、AWS リソース全体における一般的な反復 IT オペレーションや管理タスクを安全に自動化できます。実際に使用した分に対してのみ料金が発生します。また、ステップの数と実行時間に基づき、請求されます。

AWS公式ドキュメント

System Managerのドキュメント

DevelopsersIOのノーコードで運用自動化 System Manager Automationを見直したいに書かれているので、こちらの記事を参考にすると良いでしょう。

ノーコードで運用自動化! Systems Manager Automationを見直したい | DevelopersIO

こんにちは。 ご機嫌いかがでしょうか。 “No human labor is no human error” が大好きな 吉井 亮 です。 AWS を使用するメリットは多くありますが、そのうちの一つに「自動化が容易に実装できる」があると考えています。 作業自動化はエラーを減らす、人的負荷を減らす、社内の複雑なフローを減らす効果が見込めます。 積極的に自動化を推進していきたいところです。 本エントリでは Systems Manager Automation (SSM Automation) を紹介します。 SSM Automation は AWS re:Invent 2016 の Systems Manager (当時は EC2 Systems Manager) 発表時から実装されています。それ以降進化を重ねてとても便利で使い勝手の良い機能です。ぜひこの機会にお試しください。 AWS リソースをデプロイ、構成、維持管理していくためのソリューションやタスク実行に役立つ機能です。 AWS が用意している事前定義されたドキュメント、または、ご自身で作成するカスタムドキュメントを利用して作業を自動化します。 ドキュメントは OS コマンドや AWS API を記述した一連のスクリプトだと考えてもらうと解りやすいかもしれません。 ユーザーガイド からメリットを抜粋します。

IAMロールの作成

IAMの画面からロール→ロールの作成

信頼されたエンティティを選択

信頼されたエンティティタイプ: AWSサービス

ユースケース: System Manager

許可ポリシーに「AmazonSSMAutomationRole」を検索し、

ポリシーにチェックを入れて次へ

ロールの詳細でロール名を入力し、ロールの作成をする

以下のポリシーはロール作成後に、

ssm.amazonaws.comevents.amazonaws.comに変更する

変更方法は作成したロールを選択し、信頼関係タブを選択→信頼ポリシーを編集し、

以下のように設定する

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "events.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

Amazon EventBridgeのルールを作成する

CloudWatchの画面からイベント→ルールの順で作成しようとするとCloudWatch EventsはEventBridgeとなりました、とあるのでAmazon EventBridgeへ移動します。

移動すると以下のような画面が表示されます

ルールの作成をします。

名前とルールタイプをスケジュールのラジオボタンにチェックをします。

スケジュールパターンを設定

特定の時刻のラジオにチェックを入れ、

Cron式を定義します。

例)

毎日24:00にEC2を停止したい場合

時間日付曜日
015**?*

ローカルタイムゾーンを選択すると日本時間でスケジュールパターンを確認できます。

設定は日本時間で実際に起動する9時間後に設定します。

ターゲットタイプ: AWSサービス

ターゲットを選択: System Manager オートメーション

上記を選択

ドキュメント: AWS-StopEC2Instance

を選択

自動化パラメータは

InstanceId: インスタンスのIDを入力

複数入力時は[”インスタンスID_1”,”インスタンスID_2”]のように入力

実行ロールは既存のロールを使用し、作成したロールを選択し次へ

以下のようにイベントスケジュールが作成されたので、24:00に対象のEC2が停止すれば問題なく起動しています。

以上でEC2自動停止設定が起動し、EC2が停止されていれば問題ないかと思います。

最後にAWS初学者向けのAWS本をご紹介しておきます。
AWSのサービスの基本から理解したいという方は以下の書籍はおすすめです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です