ヤマムギ

growing hard days.

*

Amazon EC2のAMIイメージを自動取得して保持日数が過ぎたら削除

   


画像の保存をEC2に戻した事もあってEC2のバックアップの自動取得を勉強がてらやってみました。
当ブログサイトのEC2に対して定期実行しているので何かあれば修正します。

  • Amazon EC2のAMIイメージを自動取得
  • 保持日数が過ぎたAMIを登録解除して
  • スナップショットも削除
  • 結果はSlackへ通知
  • CloudWatchイベントからLambdaを実行
  • LambdaのランタイムはPython 3.6

ソースコード

Githubはこちらです。

  • AMIの情報(IDとスナップショット)取得では最初、Ownersを指定しなかったのでパブリックAMIも含めて全部見に行ってたみたいで処理が終わりませんでした。

  • purge_daysを加算したCreationDateと現在を比較して削除対象にするか判定しています。

このまま使う場合

  1. ダウンロードしたコードをzipにしてLambda関数を作成します。
  2. Slackでチームを作成、または既存のSlackでIncoming Webhookを設定します。
  3. Slackで #ec2_create_imageチャンネルを作ります。
  4. 環境変数を設定します。
  5. 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


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

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

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

 - AWS , ,

ad

ad

  関連記事

Amazon CloudSearchからAmazon Elasticsearch Serviceへ変えました

全文検索をする必要がありまして、本当はCloudSearchを使い続けたいのです …

API GatewayのアクセスログをCloudWatchに記録する

Amazon API GatewayのアクセスログをCloudWatchに記録で …

slackのbotにWikipediaを調べてもらう(Python on AWS Lambda + API Gateway)

slackのbotに少しでも役に立ってもらおうと、Wikipediaを調べてもら …

ブラウザからJavaScript SDKを使ってAmazon S3 への写真のアップロードチュートリアルをやってみました

ブラウザから Amazon S3 への写真のアップロードをやってみました。 HT …

AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する

参考ページ クイックスタート: 実行中の EC2 インスタンスに CloudWa …

AWS OrganizationsでAWSアカウントを25作りたいのでPythonで作った

AWSアカウントを25作る必要があったので、Lambda Python 3.7で …

AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る

Amazon LinuxにGitをインストールする Gitをインストールして自動 …

QuickSightのVisualizeをダッシュボード化して定期メール

「Backlogの実績工数をAmazon QuickSightで可視化してわかっ …

S3 VPCエンドポイント設定前と設定後を確認

S3のVPCエンドポイントを設定した際に、S3バケットのAPIエンドポイントへの …

WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する

このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …