亚马逊EC2按需工作人员短期任务

我正在寻找构建一个需要在R中按需运行资源密集型MCMC(Markov chain Monte Carlo)计算的Web应用程序,为用户生成一些概率图。

约束:

>显然,我不想在与Web应用程序前端相同的服务器上运行资源密集型计算,所以这些任务需要交给一个worker实例。
>这些计算需要运行大量的CPU,我希望将延迟尽可能低(希望是秒,而不是分钟),因此我更愿意在更硬的硬件上运行计算。
>我以$ 66¢/小时x 24小时/天的速度运行强大的EC2实例,因此可能需要按需或现场请求实例。

以下是我提出的选择:

运行一个便宜的,负担得起的工作者实例,每天24小时
一次由亚马逊SWF(或SQS)管理的任务。

缺点:

>高延迟 – 便宜的硬件,更长的等待时间。

>每个任务产生一个更强大的工作者实例
被添加到队列中),并在完成后终止该实例。
 
缺点:

>昂贵/浪费 – 我会在服务器上支付一个小时
每次只使用秒计算
  
>启动开销 – 将启动一个新的EC2实例
按需引入不可忽略的延迟(抵消
整体目的是利用更硬的硬件)?

>像#2,但低出价EC2现货请求。

缺点:

>启动开销 – 参见#2

>不一致? – 我从来没有使用过现场请求,
所以我不知道如何波动或动手这样的解决方案
是…我必须不断调整我的出价
我还能在高峰时段完成任务吗?另外,我想
我必须密切监视我的进程,以确保他们不是
中断计算。

>我主动监控的某种混合解决方案
巧妙的硬件工人实例及其负载
在小时旋转和终止实例以保持最佳状态
成本和可用性的平衡

缺点:

>复杂而昂贵的设置 – 除非有良好的管理
在那里服务处理这样的东西,我必须设置所有
所有这些基础设施自己…
  

我希望有一些服务,我可以在一分钟的时间内,而不是每小时支付高可用的按需硬件。

所以我的问题如下:

>你会如何建议解决这个问题?
>有没有一个很好的EC2实例管理解决方案,可以坐在亚马逊SWF之上,并帮助我平衡和终止空闲的工作人员?
>现场请求出价会解决我的问题,还是更适合不一定需要立即完成的任务?

还有另一个可能您不知道的选项。我其实只是偶然发现:http://multyvac.com

我没有使用它的经验(所以我不能保证),但它看起来像我看到的第一个解决方案实际上提供了真正的“实用计算”。它开始只是Python,但现在支持任何语言。

http://stackoverflow.com/questions/10969164/amazon-ec2-on-demand-workers-for-short-tasks

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:亚马逊EC2按需工作人员短期任务