如何为每个单独的AMI/EBS设置自动定期快照?

11

Amazon是否支持任何自动定期快照的功能,可以为每个单独的AMI/EBS配置?

我的目标是让每个AMI定期自行备份,而不依赖于外部脚本等。


你更关心备份EBS卷还是定期从机器上创建新的AMI?你实际上想要备份什么? - Mike Brant
我更关心备份EBS卷。 - Faris Zacina
亚马逊没有内置此功能。但是您可以设置cronjob来执行该任务。您可以在此处阅读我如何通过10个步骤进行设置的说明:https://dev59.com/elrUa4cB1Zd3GeqPghmj#22666932 - Sergey Romanov
5个回答

7
您可以使用AWS命令行工具来自动化EBS快照。只需安排一个cron作业或类似的任务,在您的EBS卷上按所需间隔运行ec2-create-snapshot命令即可。
如果您不想安装命令行工具,也可以通过http进行API调用来完成相同的操作。
有关创建EBS快照的更多信息,请参见以下链接: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html

5

使用这段Python代码

from boto.ec2.connection import EC2Connection
from datetime import datetime
import sys

if __name__ == '__main__':

    conn = EC2Connection('aws_access_key_id', 'aws_secret_access_key')

    volumes_id={'vol-2354534'}

    description = 'Created by crontab  at ' + datetime.today().isoformat(' ') 

    for vol_id in volumes_id :

        snapshot  = conn.create_snapshot( vol_id ,description)        

1
我创建了一个小的Perl程序,https://github.com/sciclon/EBS_Snapshots 一些功能: * 程序可以运行在守护进程模式或脚本模式(crontab)
  • 您可以选择本地附加卷或远程卷

  • 您可以定义日志文件

  • 您可以为每个卷定义快照数量

  • 您可以为每个卷定义它们之间的频率

  • 当频率和数量达到限制时,会像“轮询”一样工作,删除最旧的快照。

  • 您可以一次性重新调整数量。我的意思是,如果您有6个快照,并将数量修改为3,则该过程将自动重新调整。

  • 您可以定义“前置脚本”执行,可以添加要在执行快照之前执行的代码,例如尝试卸载卷或停止某些服务,或者检查实例负载。主进程将等待退出代码,“0”表示成功,您可以根据退出代码定义是否继续。

  • 您可以定义“后置脚本”执行以在拍摄快照后执行任何脚本(例如发送电子邮件通知您)

  • 您可以添加“受保护的快照”以跳过您定义的快照,我的意思是它们将处于“只读”状态,它们永远不会被删除。

  • 您可以在守护进程模式下“即时”重新配置脚本,该脚本接受信号和IPC。

  • 它具有“本地缓存”,以避免多次请求API。您可以添加或修改配置文件中的任何配置,并在不杀死进程的情况下重新加载。


0
AWS管理控制台没有内置的自动化功能来创建和维护EBS快照。您可以尝试使用脚本、第三方云管理控制台进行基本的EBS快照自动化,或者使用专门的基于快照的备份和恢复管理解决方案来管理EC2实例和EBS卷,这些解决方案可以在AWS市场或其他地方获得。

0
AWS现在提供数据生命周期管理(请参阅文档),这可能会对您有所帮助。 AWS将其定义为一种“安排和管理EBS快照的创建和删除”的方法
您可以从EC2控制台访问它,并搜索“生命周期管理器”。然后,您将被引导开始使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接