Skip to content

Instantly share code, notes, and snippets.

@atrakic
Forked from eduardcloud/LambdaEfsBackup.py
Created December 3, 2018 19:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atrakic/4c3e78919f0dd0268f0bc2cb8ffa9afa to your computer and use it in GitHub Desktop.
Save atrakic/4c3e78919f0dd0268f0bc2cb8ffa9afa to your computer and use it in GitHub Desktop.
Backup EFS file-system to S3 with lambda function
import boto3
import time
region = 'eu-west-1'
user_data_script = """#!/bin/bash
instanceid=$(curl http://169.254.169.254/latest/meta-data/instance-id)
cd /
mkdir moodledata
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-xxxxxxxxxxc.efs.eu-west-1.amazonaws.com:/ moodledata
tar czf mooodledata-backup-$(date +%d-%m-%Y_%H-%M).tar.gz /moodledata
aws s3 mv mooodledata-backup-*.tar.gz s3://xxxxxxxxx/
aws ec2 terminate-instances --instance-ids $instanceid --region eu-west-1 """
# Amazon Linux (ami-ebd02392)
def lambda_handler(event, context):
ec2 = boto3.client('ec2', region_name=region)
new_instance = ec2.run_instances(
ImageId='ami-ebd02392',
MinCount=1,
MaxCount=1,
KeyName='xxxxx-key',
InstanceType='t2.micro',
SecurityGroups=['default'],
IamInstanceProfile={'Name':'EFSBackupRole'},
UserData=user_data_script)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment