R Amazon EC2短期任务随需应变工作人员

R Amazon EC2短期任务随需应变工作人员,r,amazon-ec2,amazon-emr,amazon-swf,R,Amazon Ec2,Amazon Emr,Amazon Swf,我希望构建一个web应用程序,它需要在R中按需运行资源密集型MCMC()计算,以便为用户生成一些概率图 限制条件: 显然,我不想在与web应用程序前端相同的服务器上运行资源密集型计算,因此这些任务需要交给工作者实例 这些计算需要大量CPU才能运行,我希望延迟尽可能低(希望是几秒钟,而不是几分钟),因此我更喜欢在更强大的硬件上运行计算 我负担不起以~66美分/小时x 24小时/天的速度运行健壮的EC2实例,因此,按需或现场请求实例可能是必需的 以下是我提出的选项: 每天24小时运行一个便宜、价格合

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

限制条件:

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

  • 这些计算需要大量CPU才能运行,我希望延迟尽可能低(希望是几秒钟,而不是几分钟),因此我更喜欢在更强大的硬件上运行计算

  • 我负担不起以~66美分/小时x 24小时/天的速度运行健壮的EC2实例,因此,按需或现场请求实例可能是必需的

  • 以下是我提出的选项:

  • 每天24小时运行一个便宜、价格合理的worker实例 Amazon SWF(或SQS)一次管理一项任务。

    缺点:

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



  • 每个任务生成一个更强大的worker实例(每当一个作业 添加到队列)并在完成时终止实例。

    缺点:

    • 昂贵/浪费-我将在服务器上支付一小时的费用 每次仅使用秒进行计算

    • 启动开销-将启动一个新的EC2实例 按需引入不可忽略的延迟(抵消 使用beefier硬件的全部目的)?



  • 类似于#2,但具有低出价EC2现货请求。

    缺点:

    • 启动开销-请参见#2

    • 矛盾?-我以前从未处理过现场请求, 因此,我不知道这样一个解决方案有多不稳定或如何实际操作 会是。。。我是否必须不断调整我的出价以使 确定我还能在高峰时间完成任务吗?我想也是 我必须密切监视我的进程,以确保它们不会被破坏 中间计算中断。



  • 某种混合解决方案,我可以主动监控 智能地增强硬件工作者实例及其负载 按小时启动和终止实例,以保持最佳运行状态 成本和可用性的平衡

    缺点:

    • 复杂且昂贵的设置-除非有良好的管理 要处理这样的事情,我必须设置所有 所有这些基础设施都是我自己建造的…

  • 我希望有一种服务可以让我按分钟而不是按小时付费购买高可用的点播硬件。

    因此,我的问题如下:

    • 你建议如何解决这个问题

    • 有没有一个好的EC2实例管理解决方案可以位于AmazonSWF之上,帮助我实现负载平衡并终止空闲工作人员

    • 现场请求投标能解决我的问题吗?还是更适合于不需要立即完成的任务


    还有另一个您可能不知道的选项。事实上,我只是偶然发现:

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

    我希望有一些服务,我可以支付一个高可用的点播硬件在一分钟到一分钟的基础上,而不是每小时

    该服务是,当您询问以下问题时,该服务不可用:

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

    :

    您将根据功能请求的数量和代码执行的时间收费

    持续时间是从代码开始执行到返回或终止的时间计算的,四舍五入到最接近的100ms

    Lambda免费层包括每月1M的免费请求和每月400000GB的计算时间

    您还可以将Lambda函数包装为,可能会从应用程序中删除此层:

    通过使用AmazonAPI网关定义自定义RESTfulAPI,可以通过HTTPS调用Lambda函数。这为您的函数提供了一个端点,它可以响应诸如GET、PUT和POST之类的REST调用。了解更多有关将AWS Lambda与Amazon API网关一起使用的信息


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

    如果可以用Python实现MCMC,您可以使用Google App Engine。应用引擎计费主要基于应用程序实际使用的资源,而不是EC2的实例租用。。。它处理大部分繁重的工作,我的同事都是数学方面的人,而不是程序员,所以维护它的责任就落在我身上了。还有,它的目标是成为一个JVM R解释器。最终,您应该能够使用它在Java应用程序引擎上运行R,但我不知道它目前有多稳定。您是否可以提前准备它们?而不是随需应变?(即,一组选项的计划发布时间)?不幸的是,不是。应用程序的工作方式是,用户将在马尔可夫链中输入其最新计算的所有数据,提交表单,并期望结果。我总是可以给他们留言说15分钟后回来,但我希望能有更直接的消息。我想我可以分析一下一天中服务提供的时间