Amazon EC2 + Auto Scaling +负载均衡+ Rails +部署

时间:2012-08-14 14:37:25

标签: ruby-on-rails deployment amazon-ec2 load-balancing autoscaling

我对Amazon EC2中的Auto Scaling有一些疑问。

  • 我每天在GitHub上多次在我的应用程序中运行部署,我需要编译Asset Pipeline以将静态数据发送到Amazon S3。如何将我的应用程序(更新)复制到其他活动服务器?
  • 对于由Auto Scaling启动的服务器?

我希望他们可以帮助我,谢谢!

2 个答案:

答案 0 :(得分:5)

我假设您已为应用程序确定了启动配置。我们这样做的方法是使用新的代码库创建一个新的AMI。然后更新启动配置以反映新的AMI。

当我们准备开始更新时,我们只需在负载均衡器中终止实例,然后让启动配置启动新AMI的新实例。

例如,假设您的启动配置状态表明您至少有8个实例,最多12个实例。并说你目前正在运行10个实例。我们将终止(或仅从负载均衡器中删除)一些实例以获得低于最小实例(例如4个实例)。然后,它将启动两个新实例以满足最小启动配置。一旦这些成功地在负载均衡器中,我们将终止或多4个实例,并让4个新实例启动。然后最终终止最后两个实例。

这允许将新AMI分阶段部署到生产环境中,同时最大限度地减少对serer集群的负载影响。当然,如果你有一个需要更新数据库模式的情况,或者你需要更换硬件停机时间,这会有所不同,因为你需要更改启动配置,终止所有实例,进行数据库迁移,然后启动新实例

答案 1 :(得分:0)

尝试使用ChefPuppet等配置管理工具。

我不确定AWS自动扩展实例是否有任何开箱即用的解决方案。 但是,通过使用实例用户数据和主厨,可以复制更新的部署。