Amazon EC2 适合我吗?

Amazon EC2 适合我吗?

我正在开发一个针对特定领域的图片托管网站。该网站使用 Django 制作。我目前计划在 Linode 上运行它。

到目前为止一切顺利。问题是:我需要对高分辨率图像执行非常耗费 CPU 的任务。我们谈论的是科学级计算,在 Linode 的 4 个 Xeon CPU 上可能需要长达 15 分钟。

我不确定 EC2 是否像这样工作,但以下场景是否引起了我的注意?

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

显然,我对这个东西的运作方式有很多疑问。有人能帮我填补这些疑问吗?

编辑:我忘了说我使用 celery 执行任务,使用 RabbitMQ 作为消息调度程序。我想知道是否可以在我的 Web 服务器上运行创建 celery 任务,然后实际在按需创建的 EC2 实例上运行它们。理想情况下,这还会处理相关方之间的通信协议(因为我将对 Web 服务器端进行 pickle)。

答案1

是的,EC2 似乎很适合您要做的事情。至于具体如何操作,我不熟悉 celery 和 RabbitMQ,但我认为这只是编写一些代码来根据需要处理 celery 中的作业的问题——这可能涉及从您的 Web 服务器检索数据以执行作业(使用 Web 服务 API 从数据库中检索)并将结果发送回去(再次通过您定义的 Web 服务 API)。

答案2

如果你正在进行图像处理,你可能需要查看你正在进行的后端处理是否可以变成映射Reduce问题。它每小时比完整的 EC2 实例便宜(0.015 美元/小时 vs 0.085 美元/小时),因为它不提供完整的 VM。它运行Hadoop 框架

网上有很多教程讲解如何使用 Hadoop,这是来自雅虎的(根据维基百科,它是世界上最大的 Hadoop 用户)也介绍了 Hadoop 的基本工作原理。

当然,这一切都取决于您是否能将处理代码从 Celery 移植到 Hadoop。

相关内容