我无法理解 Auto Scaling 组、ECS 容量提供商和服务 Auto Scaling 的属性之间的差异。我正在使用 terraform 来创建基础设施并部署服务。
我在一个 ECS 服务中有一个 API,基本上可以处理所有请求,但为了以防万一,我创建了 2 个 API。任务定义设置为使用 512 cpu 和 1024 内存。
如果我的 API 可以扩展,我需要能够扩展和扩展容器或 EC2 实例。
min
和 max
尺寸是多少?可伸缩的 EC2 实例数量?minimum
和 maximum
扩展步长是多少?如果我将最大值设置为10,是否意味着可以同时横向扩展10个EC2实例?我需要设置这个吗?min
和max
容量是多少?基于目标跟踪可以部署多少个ECS服务?根据我的理解,如果 API 达到 70% cpu,则扩展到 2 个服务(仍然只需要一个 EC2 实例)。下一次扩展意味着新的 EC2 实例。第5个不行。这是正确的吗?
ASG 的最小和最大尺寸是多少?可伸缩的 EC2 实例数量?
是的,没错
ECS 容量提供商的最小和最大扩展步长是多少?如果我将最大值设置为10,是否意味着可以同时横向扩展10个EC2实例?我需要设置这个吗?
这是 ECS 容量提供商的 ECS 托管扩展 设置的一部分。如果您启用了 ECS 托管扩展,那么这些设置基本上会覆盖 ASG 中的设置,并允许 ECS 直接控制 EC2 实例的扩展。这基本上允许 ECS 直接在 ASG 中设置“所需计数”设置。在大多数情况下,您希望启用托管扩展,因此您需要设置这些值。
在您的具体情况下,您肯定希望将这些值设置为
1
。
ECS服务弹性伸缩的最小和最大容量是多少?基于目标跟踪可以部署多少个ECS服务?
这是该服务可以部署的 ECS 任务的数量。
根据我的理解,如果 API 达到 70% cpu,则扩展到 2 个服务(仍然只需要一个 EC2 实例)。下一次扩展意味着新的 EC2 实例。第5个不行。这是正确的吗?
这对我来说看起来是正确的。
我想指出的是,如果您改用 Fargate 而不是 EC2,ASG 和容量提供程序就会消失,您将拥有一个更简单的配置。而且您只需为正在运行的容器/任务所需的资源付费,而不是在仅运行 1 个任务时为可支持 2 个任务的 EC2 实例付费。