我们正在一台 AWS t2.large(2 CPU 和 8GB RAM)EC2 机器上运行 6 个基于 Java Spring Boot 的微服务项目。当我们看到这台 EC2 机器的 CPU 和 RAM 利用率时,CPU 利用率不足,几乎没有达到 1%,但 RAM 使用率始终高于 85%。
现在我们想再添加 2 个微服务。我们绝对不能在已有的 EC2 中部署这 2 个服务,因为 RAM 将耗尽。因此,我们需要再添加一台 EC2 机器,或者需要将 t2.large 升级到 t2.xlarge(4 个 CPU 和 16GB RAM)来部署 2 个新服务,但我们也希望具有成本效益。
我们正在研究一些 AWS 文章,它说运行 ECS 服务将具有成本效益,因为计费基于 CPU 和 RAM 的使用量(引用 - ECS Fargate Pricing )。由于我们的 CPU 始终未得到充分利用,我们认为 ECS Fargate 定价政策将降低我们的成本。
因此,对于上述案例,有 3 个关于成本节省的问题,
- 如果我们更喜欢 ECS,这真的比添加一个 EC2 实例更划算吗?因为 ECS 定价是根据资源使用量计算的?
- 如果我们需要在 ECS 中部署 8 个项目,是否会创建 8 个 EC2 实例,或者我们仍然可以使用 1 或 2 台 EC2 计算机来部署所有 8 个项目?
- 我们是否应该以不同的方式彻底重新思考我们的部署流程?
最佳答案
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 实例更具成本效益。我认为,我们很难为您确定这一点,尽管您应该能够根据您的实际使用情况进行一些快速估计,并将其与最小必要实例类型的成本进行比较。
要添加另一个选项,请考虑 Reserved Instances ,因为如果您愿意将它们保留一段时间,它们会提供相当大的折扣。从链接的文档中,您会发现 1 年预订可享受 40% 左右的折扣(与按需预订相比),3 年预订可享受 60% 左右的折扣。
此外,请考虑不同的实例类型,特别是内存优化实例 r4
和 x1
。这些可以让您购买更多的内存和更少的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,答案是……这取决于情况;这取决于您如何设计您的系统。您可以在一个实例上托管任意数量的容器(假设您有资源)——但这是否是您在高可用性/灾难场景中想要的容器由您决定。
Should we completely re-think about our deployment process in a different way?
当您对第一个问题得出结论时,就会得到答案。
关于amazon-web-services - 一台大EC2、多台小EC2、一台ECS,哪个划算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48896406/