ヤマムギ

growing hard days.

*

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を選択して、信頼ポリシーを編集するかのどちらかかで作れます。

CloudWatch Eventsの設定

止め忘れを防ぎたいので、毎日実行のスケジュールにします。
例えば毎日18:30に実行するときは、Cron式で 30 9 * * ? * と書きます。

ターゲットを SSM Automation、ドキュメントをAWS-StopEC2Instance、インスタンスIDを指定して、既存のロールであらかじめ作成したロールを設定しました。

あとは名前と説明を入力して作成です。

結果確認

実際に時間になったらEC2が停止しました。

CloudWatchメトリクスもできてます。

SystemsManager Automationダッシュボードにも実行結果が記録されています。

コードを書かなくても運用の自動化ができます。
さらにやるべき他の作業に集中することができますね。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

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に自動移行しました

新しいものは、課題が解決されていたり、機能追加されたりするのでいいものです。 長 …