Code Monkey home page Code Monkey logo

aws-ebs-snapshots-lambda's Introduction

Overview

This is for managing AWS EC2 EBS volume snapshots. It consists of a snapshot creator and a snapshot manager.

Functionality:

  • Automatic snapshots (on whatever schedule you prefer)
  • Automated expiration of old snapshots
  • Ability to configure retention period on a per EC2 instance basis (applying to all volumes attached to said instance)
  • Ability to manually tag individual snapshots to be kept indefinitely (regardless of instance retention configuration)
  • Does not require a job/management instance; no resources to provision to run snapshot jobs (leverages AWS Lambda)

Implementation Details

It is implemented as a set of two Python based functions intended to run in AWS Lambda (which also handles the job scheduling). This makes it self-contained and easier to setup, without any external resources needed.

Configuration is done through AWS tags. It's easy to configure which instances should have their volumes backed up and how long their snapshots should be retained for. It's also possible to tag certain snapshots for indefinite retention.

The creator function is intended to be ran on a regular basis (i.e. daily), using the built-in AWS Lambda scheduler, to create snapshots for the defined instances/volumes. The manager is also intended to be ran on a regular basis (i.e. also daily, and handles snapshot expiration/retention.

This is based on code originally posted by Ryan S. Brown in Scheduling EBS Snapshots - Part I and Part II.

For the moment, read these links for documentation on how to setup/use. I've extended it a tiny bit though and need to add docs. :) For hints on changes, see the CHANGELOG

Ideas and To Do items are currently tracked in IDEAS.

Files:

Each file implements a single AWS Lambda function.

  • ebs-snapshot-creator.py
  • ebs-snapshot-manager.py

Related:

Other Relevant Resources (especially if you're going to customize):

aws-ebs-snapshots-lambda's People

Contributors

joshtrichards avatar markstos avatar

Watchers

 avatar  avatar  avatar

Forkers

pavan3401

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.