Amazon EC2のAMIイメージを自動取得して保持日数が過ぎたら削除
画像の保存をEC2に戻した事もあってEC2のバックアップの自動取得を勉強がてらやってみました。
当ブログサイトのEC2に対して定期実行しているので何かあれば修正します。
- Amazon EC2のAMIイメージを自動取得
- 保持日数が過ぎたAMIを登録解除して
- スナップショットも削除
- 結果はSlackへ通知
- CloudWatchイベントからLambdaを実行
- LambdaのランタイムはPython 3.6
目次
ソースコード
- AMIの情報(IDとスナップショット)取得では最初、Ownersを指定しなかったのでパブリックAMIも含めて全部見に行ってたみたいで処理が終わりませんでした。
-
purge_daysを加算したCreationDateと現在を比較して削除対象にするか判定しています。
このまま使う場合
- ダウンロードしたコードをzipにしてLambda関数を作成します。
- Slackでチームを作成、または既存のSlackでIncoming Webhookを設定します。
- Slackで #ec2_create_imageチャンネルを作ります。
- 環境変数を設定します。
- LambdaのロールにはEC2を扱える権限のポリシーが必要です。
環境変数
| 環境変数名 | 内容 | 例 |
|---|---|---|
| REGION_NAME | リージョン | ap-northeast-1 |
| TARGET_NAME | EC2 Nameタグ | |
| PURGE_DAYS | イメージの保持日数 | 7 |
| SLACK_URL | SlackのURL | https://hooks.slack.com/services/~~~ |
| AWS_ACCOUNT_ID | AWSアカウントID | 123456789012 |
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で
Elastic Beanstalk への flask アプリケーションのデプロイ …
-
-
CloudWatchアラームをAWS CLIでテスト
CloudWatchアラームをテストするコマンドです。 –state …
-
-
AWSエンコードされたエラーメッセージをデコードするコマンドのメモ
Stdout: couldn’t create ENI: Unaut …
-
-
AWS CloudHSMを起動してみました
なかなか触る機会のないサービス、CloudHSM。 起動してみました。 手順はユ …
-
-
AWS Transit GatewayのVPN接続
上記のような構成で、オンプレミス側は東京リージョンのVPCでVyOSを起動して接 …
-
-
AWS Code Commitをプライベートリポジトリとして使う
GitHubでもいいんですが、アクセスキーとかパスワードとかコンフィグ系で書いて …
-
-
Feedlyのフィードを自動でSlackへ投稿する(AWS Lambda , Amazon DynamoDB)
やりたいこと Feedlyで共有したいフィードに特定のタグを付けます。 特定のタ …
-
-
Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる
Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …
-
-
AWS Cloud9で環境を共有する
(特にリモート環境では)画面共有をしたり、リポジトリを共有したり、コーディング環 …
-
-
AWS SSOのパスワードリマインダーでADのパスワードを変更
AWS Managed Microsoft ADを構築してユーザー追加までで構築 …


