1

我有几个在生产模式下运行的基于 ubuntu 的 ec2 实例。我的问题是,当流量增加时,我会手动启动实例,从 github 更新代码。

现在我必须配置自动缩放,以便每当 API 启动新实例时,它都会启动最新的 AMI 并附加到负载均衡器,否则我必须手动提取代码。

在这里更清楚地说是我打算做的事情。

  1. 每天对实例进行定期快照。
  2. 从快照中创建一个 AMI 并保留它。
  3. 在创建快照时,不应有任何停机时间。
  4. 在 Auto Scaling 配置中,它应该启动最新的 AMI 并将其附加到负载均衡器

请帮帮我

4

1 回答 1

3

与其重新构建 AMI 并定期更改它,不如构建一个 AMI,它会在启动时自动从您的代码存储库中提取,之后可能会定期提取。这假设您的 AMI 中唯一的区别是代码。

例如,如果您使用 SVN,您可以使用 tag/latest 标记您最新的生产版本,并始终从该路径中提取。现在您有一个 AMI,它在启动时始终具有最新代码。您甚至可以每 5 分钟运行一次 cron 作业,以查看签出的标签和修订与您的 SVN 服务器报告的最新内容。如果这种情况发生了变化,它会自行终止,并且自动缩放会启动替换;或者它只是进行 svn 更新并获取最新的更改并不断更新。

有人担心构建会导致您的实例无法正常运行,但您应该能够在单元和集成测试中发现这一点。

这个怎么做?许多选项,但最好使用您的操作系统启动脚本。有很多方法可以自动访问您的代码存储库。我确定还有其他有关此的 StackOverflow 问题。

于 2013-03-11T19:14:09.300 回答