Search code examples
amazon-web-servicesdockeramazon-elastic-beanstalkmicroservicesamazon-ecs

Deployment methods for docker based micro services architecture on AWS


I am working on a project using a microservices architecture. Each service lives in its own docker container and has a separate git repository in order to ensure loose coupling.

It is my understanding that AWS recently announced support for Multi-Container Docker environments in ElasticBeanstalk. This is great for development because I can launch all services with a single command and test everything locally on my laptop. Just like Docker Compose.

However, it seems I only have the option to also deploy all services at once which I am afraid defies the initial purpose of having a micro services architecture.

I would like to be able to deploy/version each service independently to AWS. What would be the best way to achieve that while keeping infrastructure management to a minimum?


Solution

  • We are currently using Amazon ECS to accomplish exactly what you are talking about trying to achieve. You can define your Docker Container as a Task definition and then Create an ECS Service which will handle number of instances, scaling, etc.

    One thing to note is Amazon mentions the word container a lot in the documentation. They may be talking about the EC2 instance used for the cluster for your docker instances/containers.