更多或更大的EC2实例来pipe理成本

为了节省成本,我们试图找出最佳的设置来处理我们在3个EC2实例之间运行的所有工作进程。

而不是三个4xlarge EC2运行数千个队列工作者,将它们分成许多小型的实例,每个处理100个左右的工作,还是继续以最大容量使用更大的实例会更有成本效益?

通常我们消耗大约相同数量的CPU和内存为我们迄今创build的每个服务器。 如果我们希望使用50%的可用CPU功率,我们通常可以使用50%的可用RAM。 对于networkingIO,我们最大的成本是与RDS通信,读取SQS队列负载,以及数据移入/移出S3。

作业可以批量处理数以百万计的小型通知,parsing大型XML / CSV文件,执行复杂的财务计算和数据build模,或运行MLalgorithm。

最好的办法是创build一个自动缩放组,将其与现场实例竞价绑定在一起,创build一个任意大小的新实例,只需less量资金即可完成工作,而且不必介意自从一个工作节点.. ASG / Lambda作业可以根据需要启动一个新的实例

我做了一些类似于kubernetes的工作,为我的工作量节省了大量的金钱。

一般来说,越多的机器越好,因为一台停机的大型机器会影响更多的客户/工作/任务。 但是,你的问题是关于成本,而不是可靠性。

看看你当前的实例大小。 在这里,我假设你是CPU绑定,而不是内存,磁盘或networking绑定。 如果其中任何一个都是重复的因素。

看看vCPU号码。 将峰值和平均CPU利用率乘以实例的数量。 这会给你一个基本的CPU要求。 然后将其转换为每个vCPU的成本。 然后与同等数量的小型机器进行比较以达到相同的负载。 你会很快感觉到什么是最好的matrix。

ASG(Auto Scaling Group)背后的竞价型实例是另一种基于成本的解决scheme。 但是,您需要查看您正在使用的机器types的历史趋势; 平均和高峰出价; 并有一个pipe理策略,当你没有机器运行,因为你的出价太低。 我的客户依赖现货实例,挑选很less有价格上涨或者至less可预测的价格上涨,良好的一般可用性的机器,然后他们出价约2倍的按需定价,以涵盖那些定价跳跃的短时间框架。 (这是现货定价可以高于按需定价的原因)。 您还必须使您的实例无数据(无状态),这意味着可以随时终止一个实例,并从预configuration的AMI启动新的实例。

亚马逊提供了很多选项来帮助pipe理成本。 有了正确的架构,你可以build立一些非常好的价格非常惊人的系统。