Answers:
我使用ec2-consistent-snapshot(http://alestic.com/2009/09/ec2-consistent-snapshot)拍摄快照(在RHEL / CentOS派生的Amazon Linux上)-它是用Perl编写的,并且直接使用API 。您指定要快照的卷,它允许您添加描述。
(在AWS控制台中,如果您需要更精细的控制,则可以添加标签,但是对于简单备份来说,这可能是不必要的,并且上面使用的Perl模块尚不支持(Net :: Amazon :: EC2))。
上面的脚本不会删除快照(只能创建新快照-始终如一(即,它可以在快照之前冻结磁盘/数据库)。由于它是相当常用的,并且我找不到兼容的Perl脚本来删除我写的旧快照我自己的(http://www.thatsgeeky.com/2011/06/rotating-ebs-snapshots-ec2-prune-snapshots/)。它可以很好地完成工作(祖父-父亲-儿子轮换),并使用相同的依赖项和参数如上脚本。
当然,两者都设置为通过Cron运行。
(理论上,将一些类似的脚本(例如,用PHP和Ruby编写的脚本)连接到数据库,并维护自己的卷和快照快照日志应该很容易-每个快照都有唯一的ID,因此只要记录下来,任何进一步的内部组织都应该是可能的[但是,出于备份目的,卷ID和日期通常就足够了]
不要使用CLI工具-它们是用Java编写的,与任何直接的API实现相比,它的运行速度很慢。
我没有编写自己的工具来针对文本标签为EBS和快照ID编制索引,但我发现,使用免费的RightScale帐户并分配昵称是管理EBS卷和快照的最佳方法。
我个人认为,无法为EC2实例,AMI或卷分配易于记忆的标签是当前Amazon产品中的一个大漏洞-对我而言,这似乎很容易。
我使用ElasticFox来管理快照(以及所有服务器)。它具有标签,可以轻松跟踪哪个是哪个。
当我要以编程方式进行操作时,我还会使用boto库。但是,如果这样做,则需要创建自己的数据存储。SQS和Sqlite是不错的选择。
ElasticFox无疑是(手动)管理EC2的最便捷工具之一。但是关键部分是-定期对实例进行映像-启动新实例后设置一些自动初始化:-分区并挂载临时驱动器-可用后挂载EBS卷-从任一EBS还原文件和数据库,共享存储或S3。-启动服务(MySQL,Apache,Tomcat,您可以命名)。
尽管它正在迅速改进,但对于许多日常任务而言,AWS控制台的级别太低。如果您现在需要此功能,则可以使用ec2 cli工具来管理快照,也可以使用第三方工具来咬牙切齿,编写自己的脚本。对于EBS卷管理,上面提到的是不错的选择,另一个选择是EBS管理工具,因此您可以安排备份,命名,还原它们,例如BitNami Cloud Hosting(有免费层)
我在博客http://three99.com/posts/python-grandfather-father-son-snapshots-backup-for-ec2/上有自己的脚本来进行轮换备份(祖父-父亲-儿子)