AWS ECS 集群自动缩放与服务自动缩放

AWS ECS cluster auto-scaling vs service auto-scaling

这是我第一次使用亚马逊ecs服务。

我在网上搜索了一段时间以了解使用 ecs 服务进行自动缩放。

我发现有两个选项可以自动缩放我的应用程序。但是,有一些我不明白。

首先是服务自动缩放,它跟踪来自 cloudWatch 的 cpu/memory 指标并相应地增加任务数量。

其次是cluster auto scaling需要创建auto scaling资源,创建capacity provider等等。但是,在 Tutorial: Using cluster auto scaling 中,它可以 运行 没有服务的任务定义。不过最后好像也增加了任务数

那么它们之间有什么不同'pros and cons'?

我会尽量简单的解释一下。

  • 任务是一个容器,它是 运行 我们的代码(来自 docker 图像)。
  • 因为 Service 正在确保维护给定的所需任务数。
  • 我们将 运行 在由 EC2 或 Fargate 支持的 ECS 中提供这些服务。 Ec2 是我们管理的机器。 Fargate 是由 AWS 管理的机器。

缩放: 最终,我们将根据 CPU 或单个任务的任何其他指标,通过在最小和最大任务之间设置所需的任务数来扩展任务。这称为服务自动缩放。

  • Fargate:由于 AWS 将在幕后管理必要的虚拟机,我们可以设置任何我们想要的任务并无缝扩展,而无需担心任何基础设施。
  • EC2:我们无法无缝扩展服务,因为我们也需要在幕后 add/remove EC2 实例。我们还需要根据 cpu 或 Ec2 机器的任何其他指标自动扩展这些实例,这称为集群扩展。