AWS Systems Manager AutomationでEC2の自動停止
Systems Manager Automationがない時代に、Lambdaを使ってEC2, RDSの自動停止、開始を実行してたので、触ったことがありませんでした。
でも、ニーズとしては多いので試しておこうと思って試してみたら、超簡単でした。
AWSも最近ノーコードなサービスが増えてきました。
目次
構成
時間トリガーで実行するので、CloudWatch Eventsから実行します。
IAMロールの作成
CloudWatch Evetnsの設定時に、IAMロールの新規作成も出来るのですが、その方法でやると
“The Automation definition used by an SSM Automation target must contain an AssumeRole which evaluates to an IAM arn.”エラーになったので、あらかじめ作成することにしました。
AWS管理ポリシーの「AmazonSSMAutomationRole」をアタッチしました。
“ec2:StartInstances”,”ec2:StopInstances”がActionに含まれてるので、EC2の停止、開始は大丈夫そうです。
信頼ポリシーは、”events.amazonaws.com”を有効にします。
ロールを作るときに、ロールを使用するサービスでCloudWatch Eventsを選択して、ポリシーをアタッチしなおすか、ロールを使用するサービスでEC2を選択して、信頼ポリシーを編集するかのどちらかかで作れます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } |
CloudWatch Eventsの設定
止め忘れを防ぎたいので、毎日実行のスケジュールにします。
例えば毎日18:30に実行するときは、Cron式で 30 9 * * ? * と書きます。
ターゲットを SSM Automation、ドキュメントをAWS-StopEC2Instance、インスタンスIDを指定して、既存のロールであらかじめ作成したロールを設定しました。
あとは名前と説明を入力して作成です。
結果確認
実際に時間になったらEC2が停止しました。
SystemsManager Automationダッシュボードにも実行結果が記録されています。

コードを書かなくても運用の自動化ができます。
さらにやるべき他の作業に集中することができますね。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿する
Microsoft Teamsの検証を始めましたので、Slackで自動化している …
-
-
AWS CodeCommitのリポジトリをiPhoneのWorkingCopyアプリから使う
iPhoneからも執筆できるようにしておこうと思いまして、iOSアプリのGitク …
-
-
AWS Organizations EC2宣言型ポリシーを設定する
2024/12/1に発表されましたOrganizationsの宣言型ポリシーを設 …
-
-
AWS Systems Manager Session ManagerでLinuxインスタンスのRun Asサポートを有効にする
AWS Systems Manager Session Managerの設定画面 …
-
-
AWS Lambda KMSを使って環境変数を暗号化、復号化する(Python)
Lambda内で外部APIを使用する場合などをユースケースとして、環境変数をKM …
-
-
AWS Lambda Layersのアーカイブファイルをダウンロードする
Cloud9にLambda Layersをダウンロードしたかったので検索してみた …
-
-
別アカウントのVPCからAWS PrivateLinkを使う
VPC エンドポイントサービス (AWS PrivateLink)を参考にしまし …
-
-
AWS Organizations SCPがリソースベースのポリシーには影響しないことを確認
AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確 …
-
-
特定AWSアカウント特定リージョンのCloud9環境を削除するLambda(Python)
やりたいこと 特定アカウント内特定リージョン内のCloud9環境を全部削除したい …
-
-
AWS WAF Web ACLとルールをv1(Classic)からv2に自動移行しました
新しいものは、課題が解決されていたり、機能追加されたりするのでいいものです。 長 …




