You can create separate ECS services for each of your processes i.e. web-server, queue, scheduler and leverage ECS Service Discovery feature for service-to-service communication. By doing this, you can manage the lifecycle of these individual processes separately and also perform application-autoscaling on each of these services separately.
Note: Initiate your processes within the Docker ENTRYPOINT to make sure that the processes start during the container creation. By doing this, you will no longer require a process manager daemon like Foreman to manage your processes.
For ease of deploying these ECS services, you can use docker-compose as demonstrated in the document: https://docs.docker.com/cloud/ecs-integration/
Please add a comment if you need further clarification on the above approach.
Can't run 'rails console' on Elastic Beanstalk Amazon Linux 2Accepted Answerasked 8 months ago
Can we use AWS SDK ECS client API in production environmentasked a month ago
Can we use both “SLES” for Non production and “SLES for SAP” for Prod landscape?Accepted Answerasked 7 months ago
Ruby version mismatch while deploying Rails App with CodeDeploy and CodePipeline Scripts on Ubuntu 20.0 EC2asked 5 months ago
NodeJs installation fails for new environment Rails 6asked a year ago
Set up Resque for Rails Production environment on AWSasked 10 months ago
Can we use a conda environment on AWS Glue-ETL?asked 4 months ago
Ruby on Rails API: error occurred while installing pg (1.4.1)asked 5 months ago
Rails Cloud9 public preview w/ elastic ip not working with httpsasked 3 years ago
Best way to set up dev, staging and prod environments in LoRaWAN?Accepted Answerasked 10 months ago