It’s not news that container technologies have completely transformed cloud infrastructure for enterprise. In fact, we published an entire Whitepaper about some of our favorite aspects of containers on AWS. Containers are highly agile, scalable tool, but if not properly architected they can quickly turn burdensome.
We are no strangers to the great debate between AWS Elastic Container Service (ECS) and AWS Elastic Kubernetes Service (EKS). Container orchestration platforms have pros and cons that have to be evaluated against your company’s needs in order to be beneficial. With so much conflicting advice out there, we want to emphasize that both have their unique qualities and both could be beneficial depending on your workload, goals, budget and compatibility. The key is choosing the right management tool for you and we are here to help break it down.
Why Use AWS Elastic Container Service (ECS)
AWS ECS is a container orchestration platform that allows for standard scalability while maintaining the simplicity AWS is known for. It is a fully managed service delivered through AWS Management console or an SDK, which is commonly used to facilitate microservices.
This one-size-fits-all management tool is perfect for quickly deploying containerized applications while continuing to use your preferred AWS continuous integration/ continuous delivery and automation tools. ECS fully integrates with other features offered by AWS and therefore opens up a world of compute options such as AWS Fargate, AWS Regions, AWS Local Zones and more. With ECS, you can run and maintain multiple tasks simultaneously in a cluster, saving you significant overhead while enjoying the benefits of AWS security options available to all users. This technology is proprietary to AWS, so it is only available within an Amazon infrastructure. ECS is also a great choice if you need Windows support as it is compatible with Windows applications.
Price: Amazon allows you to pay only for the EC2 resources that you use, so ECS is a premium feature, and direct, out-of-the-box integration with AWS services that is free in and of itself.
Why Use AWS Elastic Kubernetes Service (EKS)
Kubernetes is an independent cloud for orchestrating business logic, which also happens to be an excellent container orchestrator. EKS allows you to run and scale Kubernetes applications in the AWS cloud dashboard with some integration with other AWS compute options. Running Kubernetes through EKS means you have total flexibility to manage your Kubernetes clusters across hybrid environments or on-premises with optimal scalability for large workloads and all the security that AWS has to offer. Because of this, a migration to EKS is quite simple if you already have existing Kubernetes applications. You also reap the benefits of built-in security since Kubernetes creates its own private network. EKS enables greater flexibility with networking configuration (i.e. service mesh) which then offers a much richer traffic control capability.
Price: This much more customized solution costs $0.10 per hour, which can total up to $72/month for each Kubernetes cluster in operation. Amazon EKS pricing also offers discounted savings plans that discount rates if you agree to specified terms of usage.
Which container orchestration platform should you choose?
Weighing EKS vs ECS depends on many factors. There is no real “loser” here, since both container organization platforms can be beneficial to an operation if used effectively.
For smaller workloads, or for companies that are new to containers, or companies wanting to stay within the AWS ecosystem, we most typically recommend ECS due to its simplicity and ease of deployment. There is also no additional cost to users, which can be a big benefit when beginning proper container orchestration and management.
For larger workloads requiring significant customization, hybrid and multi-cloud environments, or if you already have existing Kubernetes applications that you do not wish to rework, we would typically recommend EKS. The scalability and flexibility of the platform usually far outweigh the cost and complexity in managing huge deployments.
While Kubernetes/EKS is indeed more complex than dealing with ECS, it has the framework in place to better orchestrate complex business logic, specifically via the operator pattern and treating instances of complex logical patterns as individually addressable objects. This is, in concept, different from just having somewhere for your applications to run, as it orchestrates patterns of applications and call-outs to external systems, and protects these operations with its own security model.
One sure-fire way to choose the right container orchestration platform for your company is to contact the experts at Foghorn Consulting. We know these platforms inside and out and can easily help you determine where you will find the most success (and better than any generalized blog can do). We do the heavy lifting for you by evaluating your needs from all angles, anticipating your future needs by learning more about your company goals and ultimately managing the entire transition to ECS or EKS based on our evaluation. If you’d like to learn more about these programs to see which will best meet your needs, chat with us today or send us a message below!