首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动缩放组启动配置更改

自动缩放组启动配置更改
EN

Stack Overflow用户
提问于 2013-10-07 06:34:10
回答 2查看 6.9K关注 0票数 11

我想知道是否有一种简单的方法或最佳实践来确保AutoScaling组中的所有实例都是用该AutoScaling组的当前启动配置启动的。

举个例子,设想一个名为www-asg的自动缩放组,其中有4个所需的实例,它们在ELB后面运行ELB服务器。我想更改AMI或用于启动这个自动缩放组的实例的用户数据。因此,我创建了一个新的启动配置www-cfg-v2,并更新了www-asg来使用它。

代码语言:javascript
复制
# 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个正在运行的实例仍然使用旧的启动配置。我想知道是否有一种简单的方法可以用新实例替换所有正在运行的实例,以强制执行新的配置,但是总是确保最小的实例保持运行。

我目前实现这一目标的方式如下。

  1. 为给定的自动标号组保存当前运行实例的列表
  2. 临时增加所需实例的数量+1
  3. 等待新实例可用
  4. 从列表中终止一个实例 作为终止-实例-在自动缩放-组i-XXXX \-不减少-期望-容量-强制
  5. 等待替换实例可用
  6. 如果留下多个实例,则使用4重复。
  7. 从列表中终止最后一个实例 作为终止-实例中的自动缩放-组i-XXXX \-减少-期望-容量-强制
  8. 完成后,所有实例现在都应该使用相同的启动配置运行。

我基本上已经自动化了这个程序,但我觉得必须有更好的方法来实现同样的目标。有谁知道更有效的方法吗?

马蒂亚斯

在官方的AWS EC2 Forum上也发布了这个问题。

EN

回答 2

Stack Overflow用户

发布于 2013-10-08 14:02:20

这没什么不同,但你可以:

  1. 创建新的LC
  2. 使用新的LC创建新的ASG
  3. 缩小旧的助理秘书长
  4. 删除旧的asg和LC

我以这种方式进行部署,根据我的经验,我可以从一个ASG转到另一个ASG,而不必来回跳。但正如我所提到的,这并没有太大的不同。

也许值得一看:https://github.com/Netflix/asgard,它是一个Netflix工具,用于管理自动标度组。我最终没有使用它,但它还是很有趣的。

票数 1
EN

Stack Overflow用户

发布于 2014-05-27 13:58:30

老问题我知道,但我想我会分享我的方法。

我更改了ASG的启动配置,然后启动与ASG中当前相同数量的实例,因为它们可以(自动测试)附加到ASG中。一旦机器被添加,我们的部署系统就会更新我们的清漆负载平衡器,以使用新的实例,并终止旧的实例。

以上所有的都是自动化的,一个完整的站点规模的切换大约需要5分钟,这取决于发射时间。

如果您想知道,我们将在添加或删除实例时使用SNS处理更新清漆,或者在负载平衡器扩展(几乎从未发生)的情况下,部署系统将更新我们的route53配置。

我认为这几乎涵盖了一切

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19218395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档