Are celery tasks and queues interrupted when elastic beanstalk EC2 instances are removed?
Do you need separate Celery/Rabbit instance for every EC2 instance? Removing the rabbit instance will kill the celery unless you store it externally
I have a Django app running on Elastic Beanstalk in a Multicontainer Docker platform. So each EC2 instance has Docker containers for Django, Celery, RabbitMQ and Nginx.
I have concerns regarding celery tasks when an EC2 instance is removed due to an auto-scale event or an immutable deployment.

Will current tasks in the celery queue be lost when an instance is
removed?
Can a running celery task be interrupted on an instance removal?
Celery beat schedule (cron) would be called from every new instance
launched, causing duplicated calls.

I'm curious if anyone else has experience solving the above? Here's a list of some of the solutions I'm thinking about:

Change the celery broker to a remote ElastiCache Redis instance. Not
sure that would work tho.
Use another library to replace Celery which can store the tasks in
the DB (e.g. huey or apscheduler).
Migrate from celery to AWS SQS + Elastic Beanstalk Worker. That
would mean duplicating the same codebase to be deployed to both the
current web as well as a worker Elastic Beanstalk.

Any other ideas or concerns?