我想知道是否有一种简单的方法或最佳实践来确保AutoScaling组中的所有实例都是用该AutoScaling组的当前启动配置启动的。
举个例子,设想一个名为www-asg的自动缩放组,其中有4个所需的实例,它们在ELB后面运行ELB服务器。我想更改AMI或用于启动这个自动缩放组的实例的用户数据。因此,我创建了一个新的启动配置www-cfg-v2,并更新了www-asg来使用它。
# create new launch config
as-create-launch-config www-cfg-v2 \
--image-id 'ami-xxxxxxxx' --instance-type m1.small \
--group web,asg-www --user-data "..."
# update my asg to use new config
as-update-auto-scaling-group www-asg --launch-configuration www-cfg-v2到目前为止,所有4个正在运行的实例仍然使用旧的启动配置。我想知道是否有一种简单的方法可以用新实例替换所有正在运行的实例,以强制执行新的配置,但是总是确保最小的实例保持运行。
我目前实现这一目标的方式如下。
我基本上已经自动化了这个程序,但我觉得必须有更好的方法来实现同样的目标。有谁知道更有效的方法吗?
马蒂亚斯
在官方的AWS EC2 Forum上也发布了这个问题。
发布于 2013-10-08 14:02:20
这没什么不同,但你可以:
我以这种方式进行部署,根据我的经验,我可以从一个ASG转到另一个ASG,而不必来回跳。但正如我所提到的,这并没有太大的不同。
也许值得一看:https://github.com/Netflix/asgard,它是一个Netflix工具,用于管理自动标度组。我最终没有使用它,但它还是很有趣的。
发布于 2014-05-27 13:58:30
老问题我知道,但我想我会分享我的方法。
我更改了ASG的启动配置,然后启动与ASG中当前相同数量的实例,因为它们可以(自动测试)附加到ASG中。一旦机器被添加,我们的部署系统就会更新我们的清漆负载平衡器,以使用新的实例,并终止旧的实例。
以上所有的都是自动化的,一个完整的站点规模的切换大约需要5分钟,这取决于发射时间。
如果您想知道,我们将在添加或删除实例时使用SNS处理更新清漆,或者在负载平衡器扩展(几乎从未发生)的情况下,部署系统将更新我们的route53配置。
我认为这几乎涵盖了一切
https://stackoverflow.com/questions/19218395
复制相似问题