获取S3存储桶的脚本,压缩它,将压缩文件推送到SFTP服务器

时间:2014-03-06 15:35:09

标签: scripting amazon-s3 backup

我有一个带有大约100 gb小文件的s3存储桶(在文件夹中)。

我被要求每周将其备份到本地NAS。

我可以访问连接到S3存储的EC2实例。

My Nas允许我运行sFTP服务器。

我也可以访问本地服务器,我可以在其中运行cron作业以在需要时提取备份。

我怎样才能最好地解决这个问题?如果可能,我只想下载已添加或更改的文件,或者在服务器端压缩它,然后将压缩文件推送到Nas上的SFtp。

最终目标是在我的Nas上对S3存储桶进行完整备份,每周传输量最低。

欢迎任何建议!

感谢您的帮助!

瑞安

1 个答案:

答案 0 :(得分:0)

我认为实现这一目标的最具扩展性的方法是使用AWS Elastic Map Reduce和Data管道。

架构是这样的:

您将使用数据管道将S3配置为输入数据节点,然后使用pig / hive脚本将EC2配置为执行将数据发送到SFTP所需的处理。 Pig可扩展为具有自定义UDF(用户定义函数)以将数据发送到SFTP。然后,您可以设置此管道以定期间隔运行。说到这一点,它需要相当多的阅读来实现所有这些 - 但如果您看到未来的数据转换需求,那么这是一项很好的技能。

从这里开始阅读:

http://aws.typepad.com/aws/2012/11/the-new-amazon-data-pipeline.html

类似的方法可以用于定期备份DynamoDB到S3,从FTP服务器读取文件,处理和移动到说S3 / RDS等。