我有一个Amazon Ec2架构,我有多个服务器连接到ELB服务器。我根据流量要求,根据需要手动扩展服务器并连接更多服务器。
我使用Capistrano部署我的应用程序,当前在连接新服务器时,我总是需要手动检查新服务器是否有新的应用程序版本,如果没有,请部署到新服务器。
我想知道如果新服务器代码库发现自己过时,新服务器是否有更清洁的实践自动更新。我尝试使用亚马逊CodeDeploy,但它并没有解决我的目的。它只是为我提供了一个部署管理控制台。亚马逊是否提供了一种在服务器启动时尝试自我部署的方法?
提前致谢。
答案 0 :(得分:2)
最简单的方法可能是在启动Amazon EC2实例时使用用户数据脚本。
这涉及提供在新实例启动时自动运行的脚本。该脚本可以下载和安装软件,使用中央监控系统注册新服务器,更新配置等。一些公司使用脚本启动配置管理系统,如Chef,Puppet或Ansible。
以下是一些细节:
另一种选择是使用预配置的亚马逊机器映像(AMI),它已经安装了所有新软件。从更新的AMI启动新实例意味着他们已经安装了该软件。
当然,这需要在每个软件版本中创建一个新的AMI。有些公司使用Netflix Aminator和Packer等工具自动执行此流程。