用于短期任务的Amazon EC2按需工作者

时间:2012-06-10 13:39:59

标签: r amazon-ec2 amazon-emr amazon-swf

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

约束:

  1. 显然,我不想在与Web应用程序前端相同的服务器上运行资源密集型计算,因此需要将这些任务交给工作者实例

  2. 这些计算需要运行大量的CPU,我希望尽可能保持延迟(希望是秒,而不是几分钟),所以我宁愿在更强大的硬件上运行计算

  3. 我不能以~66¢/ hr x 24小时/天运行强大的EC2实例,因此可能需要按需或点请求实例。

    < / LI>

    以下是我提出的选项:

    1. 每天24小时运行廉价,实惠的工人实例 由Amazon SWF(或SQS)管理的一次任务
      缺点:

      • 高延迟 - 硬件更便宜,等待时间更长。



    2. 每个任务产生一个更强大的工人实例(每当一个工作时就会旋转 被添加到队列中)并在完成后终止实例
      缺点:

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



    3. 与#2类似,但EC2竞价要求较低
      缺点:

      • 启动开销 - 请参阅#2

      • 不一致? - 之前我从未使用过现场请求, 所以我不知道这种解决方案有多么不稳定或动手 将...我必须不断调整我的出价 我确定在高峰时段仍能完成任务吗?另外,我想 我必须密切监控我的流程,以确保它们不是 中间计算中断。



    4. 我积极监控的某种混合解决方案 强大的硬件工作者实例及其负载和智能 在一小时内启动并终止实例以保持最佳状态 成本和可用性的平衡

      缺点:

      • 复杂而昂贵的设置 - 除非有良好的管理 服务那里处理这样的东西,我必须设置所有 我自己的所有基础设施......
    5. 我希望有一些服务,我可以在一分钟到一分钟而不是每小时支付高度可用的按需硬件。

      所以我的问题如下:

      • 您如何推荐解决此问题?

      • 是否有一个好的EC2实例管理解决方案可以放在Amazon SWF上并帮助我实现负载平衡并终止闲置工作人员?

      • 现货请求出价是否可以解决我的问题,还是更适合那些不一定需要立即完成的任务?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:4)

  

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

该服务为AWS Lambda,当您提出问题时,该服务无法使用:

  

Lambda在高可用性计算基础架构上运行您的代码,并执行计算资源的所有管理,包括服务器和操作系统维护,容量配置和自动扩展

Pricing

  

根据您的功能请求数量以及代码执行时间

向您收取费用      

持续时间是从代码开始执行到返回或以其他方式终止的时间计算的,向上舍入到最接近的100毫秒

     

Lambda免费套餐包括每月1M免费请求以及每月400,000 GB秒的计算时间。

您还可以使用HTTP endpoint包装Lambda函数,可能会从您的应用程序中删除此图层:

  

您可以通过使用Amazon API Gateway定义自定义RESTful API来通过HTTPS调用Lambda函数。这为您的函数提供了一个端点,可以响应GET,PUT和POST等REST调用。阅读有关将AWS Lambda与Amazon API Gateway配合使用的更多信息。

警告:Lambda目前仅支持JavaScript,Java和Python,因此我不确定如何让R工作。您可能需要在其中一个运行时中托管R.