Amazon web services 如何为每个AMI/EBS设置自动计划快照?

Amazon web services 如何为每个AMI/EBS设置自动计划快照?,amazon-web-services,snapshot,amazon-ami,Amazon Web Services,Snapshot,Amazon Ami,Amazon是否支持可以为每个AMI/EBS配置的任何类型的自动计划快照 我的目标是让每个AMI自己定期备份,而不依赖外部脚本和类似的工具。您可以使用AWS命令行工具自动执行EBS快照。只需在ebs卷上按所需的时间间隔安排一个cron作业或类似的运行ec2 create snapshot命令 如果您不想安装命令行工具,也可以通过http进行API调用来执行相同的操作 有关创建EBS快照的更多信息,请参阅链接 使用此python代码 from boto.ec2.connection import

Amazon是否支持可以为每个AMI/EBS配置的任何类型的自动计划快照


我的目标是让每个AMI自己定期备份,而不依赖外部脚本和类似的工具。

您可以使用AWS命令行工具自动执行EBS快照。只需在ebs卷上按所需的时间间隔安排一个cron作业或类似的运行
ec2 create snapshot
命令

如果您不想安装命令行工具,也可以通过http进行API调用来执行相同的操作

有关创建EBS快照的更多信息,请参阅链接

使用此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)        

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

我创建了一个小型Perl程序

一些功能:*程序以守护程序模式或脚本模式运行(crontab)

  • 您只能选择本地附加卷或远程卷

  • 您可以定义日志文件

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

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

  • 当达到删除最旧快照的限制时,频率和数量将像“循环”一样工作

  • 您可以在一个步骤中重新调整数量,我的意思是,如果您有6个快照,并且您在3个步骤中修改了数量,那么过程将自动重新调整

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

  • 您可以定义“postscript”执行,以在拍摄快照后执行任何scrip(例如,一封告诉您该快照的电子邮件)

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

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

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


AWS现在提出了数据生命周期管理(请参阅),这可能会对您有所帮助。AWS将其定义为“计划和管理EBS快照的创建和删除”的一种方式


您可以从EC2控制台访问它并搜索“Lifecycle Manager”。然后指导您开始

您更关心的是备份EBS卷,还是定期从计算机实际创建新的AMI?您实际要备份的是什么?我更关心的是备份EBS卷。Amazon没有内置的。但是您可以设置cronjob来执行该任务。您可以在此处阅读我关于如何通过10个步骤进行设置的说明: