Posted on 27 July 2020, updated on 21 December 2023.
If you want to work with Kubernetes on AWS, you can deploy an AWS EKS. Kubernetes uses a command line utility called kubectl for communicating with the cluster API server. You can learn more about kubectl here. But Amazon EKS demands a bit more experience than ECS.
What is AWS ECS?
Amazon Elastic Container Service (Amazon ECS) is a fully managed container orchestration service. It can run and manage your Docker containers. ECS runs clusters of virtual machines on the Amazon cloud while managing, scaling and scheduling groups of containers on those machines across multiple Availability Zones.
ECS is free to use, there is no extra charge for EC2 launch type. You only pay for AWS resources (such as EC2 instances or EBS volumes) created to store and run your applications. You only pay for what you use, as you use it. Moreover, you can Monitor your Amazon EC2 instances using CloudWatch Metrics to know what you pay for and adjust the number of instances you use for your applications.
Benefits of ECS
ECS offers you a serverless infrastructure option. It allows you to operate containers without directly managing virtual machines. You don’t have to provision and manage servers.
Amazon ECS is secure. Indeed, it launches your containers in your own Amazon VPC, allowing you to use your VPC security groups and network ACLs.
Finally, because ECS is the foundation pillar of key Amazon services, ECS is seamlessly integrated into your AWS infrastructure. Deploying containers with ECS is very simple due to the fact that it is an AWS native solution.
When to use it
Amazon ECS provides two main features: a container orchestration platform, and a managed service that operates the product and configures hardware resources.
Why use ECS instead of EKS (Amazon Elastic Kubernetes)?
ECS is a native AWS service, which means it can only be used on AWS infrastructure. On the other hand, EKS is based on Kubernetes, which is an open source project that can be used by users running on multiple clouds (AWS, GCP, Azure) or even on-premises. This factor provides additional flexibility and allows users to learn more about the cloud where the workload is running.
Prefer Amazon ECS when you have small deployments on AWS due to its seamless deployment and configuration and because ECS has a lower price than EKS. You will have less things to manage.