Once you scale to deploy 20 or more microservices (or have a multi-tenant scenario with dev + test + staging + production environments per customer) getting everything to work seamlessly together, managing configurations, versions, rollbacks, and other operations gets tricky. The Bottom Line on ECS: Our conclusion is that ECS has merit if you’re running small and simple Docker environments. You are also required to create new task definitions instead of modifying existing ones.ĮCS also lacks a simple option to start rolling updates (gradual redeploy of a new Docker image).
This automatically generates random ports and adds them to the load balancer when the new ECS “service” is created.īased on our experience, container management within the ECS web console remains troublesome, for the following reasons:īecause the interface features several GUIDs of tasks and services, the result is somewhat cluttered and you cannot manually remove instances from a pool (for maintenance and upgrades, for example). However, as of 2016, this feature is included by way of the new AWS application load balancer (that permits host-based routing by URLs) which you can use with ECS. In the past, ECS did not include support for dynamic port mapping (a feature that allows you to run several containers on the same port and same instance).
#Docker swarm vs kubernetes vd cloudwatch install#
To achieve better resource utilization and easier management, we planned to containerize the microservices and install an orchestration tool capable of handling service discovery, auto-scaling, secret management, and resource sharing. In addition, approximately 60–70% of provisioned CPU/RAM capacity was idle (as seen via Amazon CloudWatch).
#Docker swarm vs kubernetes vd cloudwatch full#
In this environment, each application (or microservice) utilized a full EC2 instance with no resource sharing with other applications. Since our test environment is hosted on AWS, we began our comparison of container orchestration and cluster management tools with EC2 Container Service (ECS).Ī key objective here was to determine whether ECS could run multi-tenant workloads and utilize resources smarter than existing microservices currently deployed on bare EC2.
Containerizing Microservices With AWS ECS
So, when should you use one over the other? What’s the best applicable use case for each of these cluster management and container orchestration tools? Based on our research methodology in an AWS environment, below are our findings and recommendations. While Rancher and DC/OS are considered full infrastructure management platforms that can aid organization and management both of containerized and standalone applications. It’s a decision organizations face regularly, so we researched the difference between leading tools including Amazon Web Services (AWS) ECS, Kubernetes, Rancher, Docker Swarm, DC/OS, and Nomad in an AWS infrastructure.Įach tool has a different function, but at a high level we can break them down as follows: ECS, Kubernetes, Docker Swarm, and Nomad provide pure container/application schedulers. With so many on the market, deciding which one is right for your cluster computing architecture and workloads is hard.
Choosing the right containerization and cloud computing cluster management tools can be a challenge.