我的公司正在把我们的托pipe移动到亚马逊,我正在工作,虽然所有的迁移问题。 从物理硬件过渡到瞬态虚拟机已经是一个相当大的挑战。
最后一个挑战之一就是搞清楚如何pipe理我们的EBS和快照。 由于他们目前没有方法来描述性地或者增加意义,所以我想知道pipe理员如何pipe理他们的资源。 一台或两台服务器没有太多的问题,但是运行多台服务器的服务器是如何处理的。 每个人都在使用第三方工具(如RightScale / Scalr)时,他们的服务器less数几个? 还是你正在维护维基或其他辅助文件?
我使用ec2-consistent-snapshot( http://alestic.com/2009/09/ec2-consistent-snapshot )来获取我的快照(在RHEL / CentOS衍生的Amazon Linux上) – 它是用Perl写的,直接使用API 。 您指定要快照的卷,并允许您添加说明。
(在AWS控制台中,您可以添加标签,如果您需要更细粒度的控制,但是可能不需要的简单备份,并且尚未被上面使用的Perl模块(Net :: Amazon :: EC2)支持)。
上面的脚本并没有删除快照(只创build新的快照),即一致的(即可以在快照之前冻结磁盘/数据库)。由于它是相当常用的,我找不到兼容的Perl脚本来删除旧快照我自己做的(祖父 – 父子轮换),并使用相同的依赖关系和参数如上面的脚本。
当然,两者都可以通过Cron运行。
(从理论上讲,应该很容易地将一些类似的脚本(例如用PHP和Ruby编写的脚本)挂接到数据库,并维护自己的日志卷和快照 – 每个快照都有一个唯一的ID只要logging下来,任何进一步的内部组织都应该是容易实现的。[但是,为了备份目的,卷ID和date通常是足够的])
不要使用CLI工具 – 它们是用Java编写的,与任何直接的API实现相比,速度都很慢。
逐渐地,亚马逊正在增加所有需要做的有效pipe理的function,如果亚马逊需要吸引企业市场的话。 标签已被添加和增强,允许用户只能访问某些function即将到来。 将来肯定会处理脚本和部署。 我将这些function添加到我的免费工具ElastDream。
编写自己的工具来索引EBS和快照ID对照文本标签,我发现使用免费的RightScale帐户和分配昵称是pipe理我们的EBS卷和快照的最佳方法。
我个人认为,无法为EC2实例,AMI或卷指定一个易于记忆的标签是当前亚马逊产品的一大漏洞 – 对我来说,这似乎是一件容易的事情。
我使用ElasticFox来pipe理我的快照(以及我所有的服务器)。 它有标签,可以很容易地跟踪哪一个是哪个。
当我想以编程方式做事时,我也使用boto库。 但是,如果你这样做,你将需要创build自己的数据存储。 SQS和Sqlite是很好的select。
ElasticFox肯定是(手动)pipe理EC2最方便的工具之一。 但关键的部分是 – 定期对您的实例进行映像 – 一旦新实例启动,就设置一些自动初始化: – 分区并挂载临时驱动器 – 一旦有EBS卷可用,挂载EBS卷 – 从EBS,共享存储或S3。 – 启动服务(MySQL,Apache,Tomcat,你的名字)
我们使用厨师来pipe理我们所有的EC2资源。
AWS控制台对于许多日常任务来说太低级,尽pipe它正在迅速提高。 如果您现在需要这个function,那么您需要咬紧牙关,利用ec2 cli工具编写自己的脚本来pipe理快照或使用第三方工具。 对于EBS卷pipe理,已经提到的那些是好的,另一种select是EBSpipe理工具,所以你可以安排备份,命名,还原他们等BitNami云主机 (有一个免费的层)
我有自己的脚本在我的博客上做循环备份(祖父 – 父亲 – 儿子) http://three99.com/posts/python-grandfather-father-son-snapshots-backup-for-ec2/