AWS ECS 容量提供商

Posted

技术标签:

【中文标题】AWS ECS 容量提供商【英文标题】:AWS ECS Capacity providers 【发布时间】:2020-05-29 02:52:00 【问题描述】:

我为特定的 ecs 集群 (t2.small) 创建了一个容量提供程序,它也附加到了 auto-scaling-group。 现在我正在运行 2 个具有类似资源的任务,这些任务完全利用了 t2.small。这是一个最多运行 5 秒的批处理作业。现在,当我将所需的服务任务数设置为 4 或 6 时,我的集群永远不会向外扩展。根据https://aws.amazon.com/blogs/containers/deep-dive-on-amazon-ecs-cluster-auto-scaling/ 的说法,当期望计数增加到 4 时,我的 CapacityProviderReservation 应该达到 200%。但平均和最大 CapacityProviderReservation 不会超过 100%。

我已经为服务设置了自动扩展策略,但我仍然无法使用容量提供程序扩展实例。谁能解释一下如何实现它

【问题讨论】:

【参考方案1】:

在那篇深入探讨的文章中,它解释了:

CapacityProviderReservation = M / N * 100

地点:

M = 集群应该拥有的实例数 N = 当前集群中的实例数

计算“M”的因素之一,是当前任务数加上处于“PROVISIONING”状态的任务。

为了使服务进入“PROVISIONING”状态,还必须将服务配置为使用容量提供程序。

一旦我转换了一堆服务并对其进行了扩展,它们就没有容量了,它们并没有立即失败,而是进入了“PROVISIONING”状态。

此时,CapacityProviderReservation 已超过 100%,集群已扩展以满足需求。

【讨论】:

以上是关于AWS ECS 容量提供商的主要内容,如果未能解决你的问题,请参考以下文章

aws - ECS 容量提供者权限

使用 terraform 的 AWS ECS 容量提供程序

ECS 容量提供程序是不是实际适用于每个 ec2 实例的一项任务?

如何为 AWS ECS 任务定义提供环境变量?

AWS CDK 是不是提供用于部署 ECS 应用程序的构造?

AWS — AWS ECS