将EC2实例设置为Celery Worker,并将本地计算机作为主机

Jud*_*ill 7 python amazon-ec2 multiprocessing celery

我的问题类似在这里我想设置多个亚马逊EC2实例做一些多.我正在考虑使用Celery来管理工人.有没有人让芹菜在使用本地计算机作为主机的EC2实例上工作?

有没有人有任何可能有帮助的好建议,教程,建议等?我已经使用芹菜在django中做了一些简单的异步过程,但没有这种规模(工作者和主机在同一台机器上).

此外,大多数处理都是"基于文件的"(即读取和写入文件)......你认为用芹菜挑选和传输文件的内容会更好(大多数文件是1-2kb的文本)或者镜像跨越EC2实例的文件系统然后让工作者返回结果(通常是0.5kb的文本).

var*_*ela 0

我使用 Amazon SQS 与 Amazon EC2 进行任务管理。这是一个非常可扩展的解决方案。据我所知,Boto 是管理亚马逊服务的最佳库。

要存储大量小文件,您可以使用 MongoDB GridFS,它将允许您存储大量本地文件。我使用 MongoDB 并在此类任务中获得了完美的性能。唯一的问题 - 32 位架构上的 MongoDB 非常有限。亚马逊有微型实例,其次是支持 64 个的大型实例。微型实例受到 CPU 和内存的限制,如果它不能满足您的需求,您需要设置大型实例,这可能会花费很多。

我的任务上的微型实例每天能够读取/写入多达 10 次数据,没有任何问题。

另请查看 Spot 实例。它的成本大约比按需成本低 3 倍,而且您可能会发现它们非常适合后台处理。