Amazon SQS is a simple queue service, jobs are started and then removed from the queue after completion. Celery just reads this lineup.
Celery can scale both horizontally and vertically. Do you need celery to process more jobs faster? Give your computer more resources, increase the number of employees, that is, vertical scaling, or load smaller machines with horizontal scaling. In any case, your celery workers all consume the same queue on SQS. It depends on what your celery tasks do, how the rest of your infrastructure will affect. If they write to the database, the more workers you have, the higher the load on your database, so you will also need to look at scaling.
OK, to start with "everything" on one machine approach. As demand for your application grows, you can start looking at moving celery workers to more machines, or provide more resources on one server.
Does it help? :)
source share