亚马逊EC2对我来说?

我正在为一个特定的利基量身定制的图像托pipe网站。 该网站是用Django制作的。 我目前正计划在Linode上运行它。

到现在为止还挺好。 问题是:我将需要在高分辨率图像上执行非常耗费CPU资源的任务。 我们正在谈论科学级计算,在Linode的4个Xeon CPU上可能需要15分钟的时间。

我不确定EC2是否可以像这样工作,但下面的情况是什么东西响了?

  1. 用户上传Linode上托pipe的网站上的图片
  2. 应用程序(以某种方式?)要求EC2运行CPU密集型任务。
  3. EC2启动一个新实例,并使用提供的数据运行软件
  4. 数据以某种方式返回到Web应用程序

很明显,我在这个事情的方式上有很多的差距。 有人能帮我填补吗?

编辑 :我忘了提及,我使用芹菜的任务,使用RabbitMQ作为消息调度。 我想知道是否可以在我的Web服务器上运行创build芹菜任务,但是实际上是在按需创build的EC2实例上运行它们。 理想情况下,这也将涉及有关各方之间的通信协议(因为我将酸洗networking服务器端)。

是的,EC2似乎很适合你想要做的事情。 至于如何做到这一点,我不熟悉芹菜和RabbitMQ,但我认为这只是编写一些代码在芹菜根据需要处理的工作 – 这可能涉及到从您的Web服务器检索数据(使用Web服务API从数据库中删除)并将结果发回(再次通过您定义的Web服务API)。

如果您正在进行image processing,您可能需要查看是否可以将您正在执行的后端处理转换为MapReduce问题。 每小时比整个EC2实例便宜($ 0.015 /小时vs $ 0.085 /小时),因为它不会给你一个完整的虚拟机。 它运行Hadoop框架 。

网上有很多教程解释了如何使用Hadoop, 这里有一个来自雅虎 (根据维基百科,世界上最大的Hadoop用户),它涵盖了Hadoop的工作原理。

当然,你可以将你的处理代码从Celery移植到Hadoop。