一个大的EC2还是多个小的EC2或者一个ECS,哪个划算?

One big EC2 or multiple small EC2 or one ECS - which is cost-effective?

我们在一台 AWS t2.large(2 CPU & 8GB RAM) EC2 机器上有 运行 6 Java Spring 个基于引导的微服务项目。当我们看到这台 EC2 机器的 CPU 和 RAM 使用率时,CPU 未被充分利用,几乎没有达到 1%,但 RAM 使用率始终高于 85%。

现在我们要再添加 2 个微服务。我们绝对不能在我们已经拥有的 EC2 中部署这两个服务,因为 RAM 会被耗尽。所以,我们需要再添加一台 EC2 机器,或者我们需要将 t2.large 升级到 t2.xlarge(4 CPU & 16GB RAM) 来部署这两个新服务,但我们也希望成本-有效。

我们正在研究一些 AWS 文章,它说 运行 ECS 服务将具有成本效益,因为计费是基于 CPU 和 RAM 的使用量(参考 - ECS Fargate Pricing)。由于我们的 CPU 始终未得到充分利用,我们认为 ECS Fargate 定价政策将降低我们的成本。

所以,关于上述案例的成本节省的 3 个问题,

  1. 如果我们更喜欢 ECS,那真的比增加一个 EC2 实例更划算吗,因为 ECS 定价是基于使用多少资源?
  2. 如果我们需要在 ECS 中部署 8 个项目,是否会创建 8 个 EC2 实例,或者我们仍然可以使用 1 或 2 台 EC2 机器来部署所有 8 个项目?
  3. 我们是否应该以不同的方式彻底重新考虑我们的部署过程?

If we prefer ECS, will that be really cost-effective than adding one more EC2 instance as ECS pricing is based on how much resources are utilized?

这个措辞有点尴尬,但我认为您要问的是 Fargate 是否会比标准 EC2 实例更具成本效益。我认为,这对我们来说很难为您确定,尽管您应该能够根据您的 real-world 使用情况进行一些快速估算,并将其与最小必要实例类型的成本进行比较。

要加入另一种选择,请考虑 Reserved Instances,因为如果您愿意保留一段时间,它们会以相当高的折扣出售。从链接的文档中,您会看到 1 年预订可享受大约 40% 的折扣(与 on-demand 相比),3 年预订可享受 60% 的折扣。

此外,考虑不同的实例类型,特别是内存优化实例 r4x1。这些让你购买更多的内存和更少 cpu.

If we need to deploy 8 projects in ECS, will that create 8 EC2 instances or we can still use 1 or 2 EC2 machines for all 8 projects deployment

假设您不是在这里指的是 Fargate,答案是……这取决于;这取决于如何设计您的系统。您可以根据需要在一个实例上托管任意数量的容器(假设您有资源)——但是这是否是您 想要 来自 high-availability / 灾难场景的是由你决定。

Should we completely re-think about our deployment process in a different way?

当您对您的第一个问题得出结论时,将会得到解答。