ヤマムギ

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


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

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

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

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

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

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

 - AWS , ,

ad

ad

  関連記事

AWS Network Firewallの入門

公式のGetting started with AWS Network Fire …

Route 53 の加重ラウンドロビンルーティングでロードバランサー

Route 53の加重ラウンドロビンで両方1に設定してみました。 上図はイメージ …

AWS LambdaのSQSへの自前ポーリングをやめてSQSイベントソーストリガーに変更した

以前は、LambdaがSQSからメッセージを受信するには、キューをポーリングして …

API Gateway Lambdaプロキシ統合で渡されるリクエストを確認しました

API Gatewayの統合リクエストでLambdaを指定するときにプロキシ統合 …

AWS CodeBuildのチュートリアルをやってみました

こちらユーザーガイドの最初の方にあるチュートリアルです。 コンソールを使用した …

AWS CDKでクロススタックリファレンスをする

CloudFormationで複数のスタックで参照することがあります。 それをC …

AWS Transit GatewayのAcceleratedサイト間VPN接続確認

Transit GatewayでVPN接続を作成するときに、Global Acc …

TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する

Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意 …

AWS CloudShellでboto3(SDK for Python)使うならpython3

本の執筆をしていて、ちょっとAWS CLIやSDKのふるまいを確認したいことがあ …

AWS Systems Manager Session Managerでログを有効にする

AWS Systems Manager Session Managerでのコマン …