How to Leverage AWS Lambda for DevOps Backup and Recovery

Lost data can mean lost business, so how can you make sure the cloud doesn’t bring you down? By keeping close tabs on what information has changed, who changed it and when. That means identifying all of the failure or disaster situations that can occur and their potential business impact – in advance.

Here are three useful Amazon Web Services (AWS) tools to consider:

I. CloudTrail is a web service that provides an account audit trail for all actions occurring in the console and through the API. Monitoring and alerts can let you know if unexpected changes are being made and by whom.
II. Config is a fully managed service with an AWS resource inventory, configuration history and configuration change notifications to enable security and governance.
III. Lambda can be used to run backup procedures without provisioning or managing servers. You can leverage the AWS API directly to manipulate your cloud resources and automatically trigger events from other AWS services.

Lambda is particularly hot right now in the DevOps world because it’s scalable and reliable and doesn’t include a lot of overhead and cost – plus you can use it to customize your backup plan to your business and infrastructure needs. Lambda is worth a closer look.

AWS Lambda as a Backup Tool

Lambda is an event-driven, server-less computing platform provided as a part of the AWS. Introduced at AWS re:Invent 2014, an AWS global cloud computing conference, Lambda makes it easier to build on-demand apps that are responsive to events. You can write your own backup procedures without having to maintain any extra infrastructure. It’s an ideal compute platform for setting up a fully automated backup system and running code – so long as you know one of its supported languages (Node.js, Java, C#, and Python).

Lambda allows you to set your backup script to execute only when needed. You can back up specific data sets by setting the script to trigger based on time (every minute, every 10 minutes, or nightly) or an action (such as when someone writes something to an S3 bucket).

For example, you can snapshot your database every night, then trigger the Lambda function to copy that snapshot to your backup account. If you’re writing 500,000 receipts to an S3 bucket a day, you can run your Lambda script 500,000 times and keep a real-time backup.

Lambda is cloud native, so you don’t need to pay a big licensing fee and invest in a backup product that doesn’t fit your needs. A cloud-native product enables simple communication between tools. If you’re backing up an RDS database, your Lambda function can essentially talk directly to it because they both live in the Amazon world and speak the same language. You can also assign Lambda functions to handle security policies and permissions.

Barriers to Entry

To date, Lambda isn’t as widely used as more traditional solutions. Barriers to entry include lack of familiarity with the platform and the level of effort required to use it. With Lambda, you have to decide what you want to back up, write code, make sure the code won’t fail and create contingency plans for handling outliers. Unwieldy, expensive backup solutions can seem more efficient due to their turnkey nature.

AWS Lambda in a Nutshell

Still, the strategic benefits of Lambda outweigh the challenges:

  • Gain a cloud native platform with no extra infrastructure management required.
  • Customize AWS Lambda backups to meet your needs, leveraging Python and Boto 3 (the Python SDK) to write backup functions.
  • Use AWS API functionality to copy, back up, change permissions and move resources around.
  • Gain more flexibility, reliability and durability, along with lower costs and automatic scalability (from a few requests per day to thousands per second).

To take full advantage of AWS Lambda backup capabilities, you’ll need to think outside the box. Take the road less traveled, and you’ll derive immense benefit along the way.