OpsWorks 基于负载的实例与自动扩展组?

Posted

技术标签:

【中文标题】OpsWorks 基于负载的实例与自动扩展组?【英文标题】:OpsWorks load-based instance vs auto scaling group? 【发布时间】:2017-09-03 10:10:07 【问题描述】:

有谁知道基于负载的自动扩展与 OpsWorks 上具有显式自动扩展组之间的区别是什么?

这个:http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-autoscaling-loadbased.html

与https://aws.amazon.com/blogs/devops/auto-scaling-aws-opsworks-instances/

对于load-based 实例,如何将一个添加到目标组?

OpsWorks 的一层可以有多个 Auto Scaling 组吗?

我正在考虑使用 ALB 来路由我们的流量,它不能作为 Opsworks 中的独立层。

因此,对于一种类型的请求,我需要将请求通过管道传输到 1 个 Auto Scaling 组,而将其余请求通过管道传输到另一个 Auto Scaling 组。

我只是不确定什么是基于负载的实例,并且对它们没有提供默认的初始机器数量感到困惑。

对于两组之间的 ALB 路由流量,我应该使用哪一个?

【问题讨论】:

【参考方案1】:

让我给你分答案。

有谁知道Automatic Load-based 和Automatic Load-based 的区别是什么? 扩展与在 OpsWorks 上具有显式自动扩展组是什么?

基于负载的自动缩放:

Amazon Opsworks Service 为您提供基于负载的自动扩展功能,您可以在其中将实例添加到堆栈中的层并直接设置自动扩展配置策略。 基于负载的缩放会根据您设置处理的负载来扩大或缩小实例。您需要使用参数设置阈值并定义扩展策略。

OpsWorks 上的显式 Auto Scaling 组:

Amazon Opsworks Service 允许您将现有实例添加到堆栈中的层。这意味着您可以设置自动缩放启动配置并根据负载设置纵向扩展和缩减事件。然后创建一个 Autoscaling 组并在其中启动实例。然后,您可以转到 Opsworks 并将这些现有实例添加到堆栈中的层。因此,当负载增加或减少超过或小于设置的阈值时,自动缩放组会处理缩放。

对于基于负载的实例,如何将一个添加到目标组?

一旦您准备好基于负载的实例,您可以直接从 Opsworks 中的基于负载的自动扩展或在 OpsWork 上显式使用 Auto Scaling 组启动,您可以转到 EC2 控制台中的应用程序负载均衡器并配置必要的配置和然后在 Register targets TAB 中注册您刚刚使用 ALB 创建的基于负载的实例。

OpsWorks 的一层可以有多个 Auto Scaling 组吗?

是的,您可以在一层 OpsWorks 中拥有多个 Auto Scaling 组。

对于两组之间的 ALB 路由流量,我应该使用哪一个?

您可以使用任何组。

这样您就可以将请求通过管道传输到 1 个 Auto Scaling 组,以获取一种类型的 请求,其余发送到另一个 Auto Scaling 组。

请参考一次自动缩放。

我只是不确定什么是基于负载的实例

基于负载的实例是配置了基于负载的扩展配置的实例。您需要设置阈值、配置和事件来定义何时放大和缩小。 EX:假设,如果您在初始阶段运行 5 个实例,并且您希望应用程序运行,即使您的负载增加以最大限度地减少停机时间,您将设置自动缩放配置,以便如果实例的平均 CPU 利用率增加超过 70% 启动还有2个实例。您可以在更多因素上设置放大和缩小。

希望对你有帮助:)

【讨论】:

【参考方案2】:

OpsWorks 是一种配置管理工具,它利用 Chef 来配置您的基础架构。 OpsWorks 在横向扩展方面使用了与auto-scaling 组不同的方法。

与自动扩展组不同,您在 OpsWorks 堆栈(层)上预定义了这些实例,并且在触发某个指标(阈值)时启动它们(CloudWatch 数据:CPU、内存、负载。 ..等)。

OpsWorks 将不会生成(创建)任何新实例,但只能启动您之前创建的实例并将它们设置为基于负载的实例。这也可用于 OpsWorks,不能用于 OpsWorks 之外的任何其他服务。

AWS EC2 自动扩展实际上可以在您的 AWS 环境中启动大量实例(不需要需要预先创建的实例),并且与 OpsWorks 基于负载的扩展一样,可以由 CloudWatch 警报(CPU、内存、负载...等)触发。

默认情况下,自动缩放在 OpsWorks 上不可用,并且没有内置方法可以将自动缩放组与您的 OpsWorks 堆栈关联,但需要做一些工作才能实现。阅读它here。

【讨论】:

很好的答案。我认为重要的是要指出 OpsWorks 基于负载的扩展不使用 Auto Scaling。不同的技术。 主要区别在于 OpsWorks 基于负载的扩展不会创建新实例,它只会根据需要启动或停止它们。 EC2 自动缩放会。

以上是关于OpsWorks 基于负载的实例与自动扩展组?的主要内容,如果未能解决你的问题,请参考以下文章

AWS OpsWorks 基于负载的实例(如 EC2 自动扩展)

如何启动基于负载的 opsworks 实例?

如何将使用自动扩展组和 ECS IAM 创建的 EC2 实例添加到 OpsWorks 堆栈?

使用基于负载的实例时,Amazon OpsWorks 自定义说明书未更新

应用程序负载均衡器在自动缩放组打开新实例之前不会保留请求

为啥 AWS Auto Scaling 在扩展期间会启动多个实例?