Skip to content

Instantly share code, notes, and snippets.

@yannmh
Forked from mzupan/lambda.py
Created July 17, 2017 18:41
Show Gist options
  • Save yannmh/f8b4f687bd1a7b96b09930f88f642e46 to your computer and use it in GitHub Desktop.
Save yannmh/f8b4f687bd1a7b96b09930f88f642e46 to your computer and use it in GitHub Desktop.
AWS Lambda job to backup RDS instances
import boto3
import datetime
def lambda_handler(event, context):
print("Connecting to RDS")
client = boto3.client('rds')
print("RDS snapshot backups stated at %s...\n" % datetime.datetime.now())
client.create_db_snapshot(
DBInstanceIdentifier='web-platform-slave',
DBSnapshotIdentifier='web-platform-%s' % datetime.datetime.now().strftime("%y-%m-%d-%H"),
Tags=[
{
'Key': 'CostCenter',
'Value': 'web'
},
]
)
for snapshot in client.describe_db_snapshots(DBInstanceIdentifier='web-platform-slave', MaxRecords=50)['DBSnapshots']:
if create_ts < datetime.datetime.now() - datetime.timedelta(days=7):
print "Deleting snapshot id:", snapshot['DBSnapshotIdentifier']
client.delete_db_snapshot(
DBSnapshotIdentifier=snapshot['DBSnapshotIdentifier']
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment