如何更新AWS自动缩放启动的新实例?

Neo*_*ang 5 cloud amazon-web-services autoscaling aws-opsworks

我们使用AWS cloudformation服务来初始化我们的堆栈,并设置自动扩展服务以在负载上升时启动新的应用服务器.

我的理解是Auto Scaling只能将预定义的AMI作为新实例启动.这些实例可能与其他正在运行的实例不同,因为我们可能已更新在这些实例上部署的包/源代码.

如何使新实例更新?我是否应该在每次向正在运行的实例部署新内容时更新AMI?或者无论如何在自动缩放时触发新实例(Opsworks)上的自动部署?

我是AWS新手,所以请原谅我,如果我的问题很简陋的话.

bsv*_*gen 8

有多种方法可以做到这一点.我首选的方法是永远不要直接触摸服务器,而是每当我部署新版本的软件时创建一个新的AMI.

为此,请使用AutoScalingRollingUpdate属性作为自动缩放组.然后ImageId,当您更改启动配置时,AWS将自动将旧服务器替换为新服务器作为滚动升级.

我有一个简单的部署脚本,它创建一个新的AMI,替换ImageId模板,然后进行堆栈更新 - AWS负责其余部分.


Ash*_*han 5

从Beanstalk创建EC2实例时,它会根据指定的环境选择自动创建AutoScaling组并启动配置.从基础AMI创建实例是使用自定义代码调用用户数据完成的,该用户数据包括用于创建文件夹和安装相关软件的shell脚本.

您可以在此处添加新的shell脚本或命令,以便在启动新实例之前执行自定义工作.这样就简单多了.例如,您可以在启动实例之前运行yum update

查找用户数据部分转到EC2控制台 - >转到启动配置部分(左侧) - >选择正确的启动配置并将其复制 - >单击查看用户数据 - >根据需要添加脚本和命令 - >修改相关Auto Scaling组指向新的启动配置