ECS服务弹性伸缩和弹性伸缩组
ECS Service auto scaling and auto scaling group
我决定开始使用 AWS ECS 服务,并创建了集群和一项服务我的问题是我想将它连接到 AWS Auto Scaling 组。
我已经关注了以下 guide.
指南有效,我的问题是这完全是浪费钱。
向导说当我的服务预留的总CPU台数量超过75台时,我需要添加机器,但实际上我的服务总是预留100%
因为我不想浪费钱,而且把 3 个 nodejs 任务放在 2 cpu 机器上也没什么用,反正没有硬限制。
这几天我都在苦思冥想,我不知道如何让它们一起工作正确
编辑:
目前是这样的:
CPU 超过 75%,服务扩展在同一台服务器上创建了 2 个新任务,这意味着现在我有 1 个实例和 4 个任务
实例预留现在 100%,Auto Scaling 组正在创建新实例
创建新实例后,服务扩展将从旧实例中删除 2 个任务并向新实例添加 2 个新任务
只有我一个人,还是整个过程看起来都是浪费时间?这真的应该是这样还是(可能)我做错了什么?
我认为您缺少一些见解。
要使 ECS 自动缩放正常工作,您还必须在 ECS Service level 上设置缩放。
然后,缩放流程将如下所示:
- ECS 服务已达到 100% 使用率 CPU 并已保留 100% CPU
- ECS 服务通过启动附加任务进行扩展,使预留 CPU 总量达到 200%
- Auto Scaling 组发现预留容量多于可用容量并启动新机器。
此外,你可以在2 CPU台机器上完美运行多个nodejes任务。尤其是在微服务环境中,这些 nodejs 服务可能非常小(例如 128 CPU),但在同一台主机上仍然 运行 完美无缺。
最后我想,我想做的事是不可能的。
无法像在 Kubernetes 中那样使用 ECS 创建资源优化的集群。
(当然除非你用 lambda 写了一些魔法)
服务自动缩放和自动缩放组不能协同工作,但是,您可以使其与 fargate 完美配合,但它的扩展性很大,主要问题是您没有集群预留触发器高于 100%
我决定开始使用 AWS ECS 服务,并创建了集群和一项服务我的问题是我想将它连接到 AWS Auto Scaling 组。 我已经关注了以下 guide.
指南有效,我的问题是这完全是浪费钱。
向导说当我的服务预留的总CPU台数量超过75台时,我需要添加机器,但实际上我的服务总是预留100% 因为我不想浪费钱,而且把 3 个 nodejs 任务放在 2 cpu 机器上也没什么用,反正没有硬限制。
这几天我都在苦思冥想,我不知道如何让它们一起工作正确
编辑: 目前是这样的:
CPU 超过 75%,服务扩展在同一台服务器上创建了 2 个新任务,这意味着现在我有 1 个实例和 4 个任务
实例预留现在 100%,Auto Scaling 组正在创建新实例
创建新实例后,服务扩展将从旧实例中删除 2 个任务并向新实例添加 2 个新任务
只有我一个人,还是整个过程看起来都是浪费时间?这真的应该是这样还是(可能)我做错了什么?
我认为您缺少一些见解。
要使 ECS 自动缩放正常工作,您还必须在 ECS Service level 上设置缩放。
然后,缩放流程将如下所示:
- ECS 服务已达到 100% 使用率 CPU 并已保留 100% CPU
- ECS 服务通过启动附加任务进行扩展,使预留 CPU 总量达到 200%
- Auto Scaling 组发现预留容量多于可用容量并启动新机器。
此外,你可以在2 CPU台机器上完美运行多个nodejes任务。尤其是在微服务环境中,这些 nodejs 服务可能非常小(例如 128 CPU),但在同一台主机上仍然 运行 完美无缺。
最后我想,我想做的事是不可能的。 无法像在 Kubernetes 中那样使用 ECS 创建资源优化的集群。 (当然除非你用 lambda 写了一些魔法)
服务自动缩放和自动缩放组不能协同工作,但是,您可以使其与 fargate 完美配合,但它的扩展性很大,主要问题是您没有集群预留触发器高于 100%