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

Cai*_*ifa 1 deployment load-balancing ruby-on-rails amazon-ec2 autoscaling

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

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

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

Mik*_*ant 5

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

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

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

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