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

时间:2012-10-23 11:35:35

标签: amazon-web-services snapshot ami

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

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

5 个答案:

答案 0 :(得分:7)

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

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

有关创建EBS快照的详细信息,请参阅链接。

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html

答案 1 :(得分: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)        

答案 2 :(得分:1)

我创建了一个小型Perl程序https://github.com/sciclon/EBS_Snapshots

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

  • 您也可以只选择本地附加卷或遥控器

  • 您可以定义日志文件

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

  • 您可以为每个卷定义其中的频率

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

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

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

  • 您可以定义“postscript”执行以在拍摄快照后执行任何脚本(例如电子邮件告诉您)

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

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

  • 它有一个“本地缓存”,以避免多次请求API。您可以在配置文件中添加或修改任何配置,然后重新加载而不会中断该过程。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

的一种方式。

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