管理员如何管理他们的 EC2 EBS 和快照?

管理员如何管理他们的 EC2 EBS 和快照?

我的公司正在将托管迁移到亚马逊,我正在处理所有迁移问题。从物理硬件过渡到临时虚拟机是一个相当大的挑战。

最后的挑战之一是弄清楚如何管理我们的 EBS 和快照。由于目前没有办法描述性地命名它们或添加含义,我想知道管理员如何管理他们的资源。对于一两台服务器来说这不是什么大问题,但那些运行多台服务器的人如何处理事情。当他们拥有大量服务器时,每个人都使用第三方工具(如 RightScale/Scalr)吗?或者你在维护 wiki 或其他辅助文档吗?

答案1

我使用 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 实现相比速度极慢。

答案2

亚马逊正在逐步添加进行有效管理所需的所有功能,如果亚马逊想要吸引企业市场,这些功能必不可少。已添加标签,并即将推出增强功能,以允许用户仅访问某些功能。将来肯定会处理脚本和部署。我正在将这些功能添加到我的免费工具 ElastDream 中。

答案3

除了编写自己的工具来根据文本标签索引 EBS 和快照 ID 之外,我发现使用免费的右尺度帐户并分配昵称是管理我们的 EBS 卷和快照的最佳方式。

我个人认为,无法为 EC2 实例、AMI 或卷分配易于记忆的标签是亚马逊当前产品的一个巨大漏洞 - 对我来说这似乎是显而易见的。

答案4

ElasticFox 无疑是(手动)管理 EC2 最方便的工具之一。但关键部分是 - 定期对实例进行映像处理 - 在启动新实例后设置一些自动初始化: - 分区并安装临时驱动器 - 在 EBS 卷可用时安装它 - 从 EBS、共享存储或 S3 恢复文件和数据库。 - 启动服务(MySQL、Apache、Tomcat,随便你怎么说。)

相关内容