我们在一台AWS t2.large(2 CPU& 8GB RAM)EC2机器上运行了6个基于Java Spring Boot的微服务项目。当我们看到这台EC2机器的CPU和RAM利用率时,CPU未得到充分利用,几乎没有达到1%,但RAM使用率始终高于85%。
现在我们想再添加2个微服务。我们绝对不能在我们已经拥有的EC2中部署这两项服务,因为RAM将耗尽。因此,我们需要再增加一台EC2机器,或者我们需要将t2.large升级到t2.xlarge(4 CPU和16GB RAM)以部署2项新服务,但我们也希望具有成本效益。
我们正在研究一些AWS文章,并表示运行ECS服务将具有成本效益,因为计费基于使用的CPU和RAM的数量(参考 - ECS Fargate Pricing)。由于我们的CPU总是未得到充分利用,我们认为ECS Fargate定价政策将降低我们的成本。
因此,关于上述案例的成本节约的3个问题,
答案 0 :(得分:2)
如果我们更喜欢ECS,那么与添加一个EC2实例相比,这是否真的具有成本效益,因为ECS定价是基于使用了多少资源?
这措辞有点尴尬,但我认为你所要求的是Fargate比标准的EC2实例更具成本效益。我认为,我们很难为您确定,但您应该能够根据实际使用情况做一些快速估算,并将其与最小必要实例类型的成本进行比较。
要考虑Reserved Instances中的另一个选项,如果您愿意在一段时间内保留这些选项,那么它们将获得相当大的折扣。从链接的文档中,您可以查看1年预订的约40%折扣(与按需比较),以及3年预订的60%折扣。
此外,请考虑不同的实例类型,特别是内存优化实例r4
和x1
。这些可以让你购买更多的内存和更少的CPU。
如果我们需要在ECS中部署8个项目,那么是否会创建8个EC2实例,或者我们仍然可以使用1个或2个EC2机器来部署所有8个项目
假设你不在这里引用Fargate,答案是......这取决于;这取决于你如何设计你的系统。您可以根据需要在实例上托管任意数量的容器(假设您拥有资源) - 但是,从高可用性/灾难情况中,您想要的内容是否适用于你决定。
我们是否应该以不同的方式完全重新考虑我们的部署过程?
当您就第一个问题得出结论时,将会回答这个问题。