The widespread popularity of AWS means that its Elastic Container Services (ECS) offering is the logical choice for organizations using Amazon Web Services. The product serves as an alternative to Kubernetes. It relies on Docker containers along with its own technology, Fargate, to manage orchestration tasks in the cloud.
Fargate eliminates the need to select Amazon EC2 instance types, provision, and scale clusters of virtual machines to run containers, or schedule containers to run on clusters and maintain their availability. This approach, along with built-in load balancing and other functions, takes the focus off the underlying infrastructure and the resources needed to run it.
AWS ECS and Fargate help developers deploy their application easily without having to manage the underlying infrastructure. This enables agile innovation while also saving costs. As AWS also supports Kubernetes, this could be the deployment target of choice for containerized workloads. As Microservices gain traction, services like Fargate will make it easy for organizations to innovate rapidly. If your organization uses hybrid cloud or multicloud, AWS does not offer support.
Cloud providers and container vendors all offer a slightly different approach to managing and orchestrating containers. However, like most other products, ECS uses APIs to launch and halt Docker-enabled microservices and applications, and handle other tasks, such as querying the state of an application. The platform supports Linux and Windows applications that run on premises or in the AWS cloud.
AWS also offers a robust security framework, including the ability to launch containers in a private Amazon VPC and use granular controls. ECS—using Fargate—operates within a similar framework of AWS Lambda, which lets users run code without provisioning or managing servers. As with Lambda, the technology relies on a versioning system. Every time the primary configuration is updated the software provides an abstraction above the previous version. This makes it easier to manage a container framework.
Microsoft Windows, Linux
ECS relies on a declarative JSON template called a Task Definition. This allows a user to specify the containers required for a task. It includes the Docker repository and image, memory and CPU requirements, shared data volumes, and how the containers are linked to each other.
Elastic Load Balancing, Amazon VPC, AWS IAM, Amazon ECR, AWS Batch, Amazon CloudWatch, AWS CloudFormation, AWS CodeStar, and AWS CloudTrail.
ECS supports multiple scheduling methods to support clusters, along with CPU and memory resources. This includes: task scheduling, service scheduling and Daemom scheduling. It also handles task placement. This allows users to more tightly define attributes.
Networking and Security
Amazon ECS supports Docker networking and integrates with Amazon VPC to provide isolation for containers. Task Networking/awsvpc gives each ECS task a dedicated elastic networking interface. The framework offers a bridge mode to connect Linux containers and offers a host mode that adds containers directly to the host network’s stack.
Monitoring and Logging
ECS uses Amazon CloudWatch to monitor containers and clusters for resource use and potential problems. The platform also offers robust logging through the AWS Management Console.
Pricing is determined by requested vCPU and memory resources for a task. ECS offers two methods: per vCPU per hour at $0.0506 and per GB per hour at $0.0127. There are additional charges for data transfers and other integrated AWS services.
|Features||AWS Elastic Container Service (ECS)|
|Supported platforms||Docker; Fargate. Works with Windows and Linux.|
|Key features||Includes elastic Load Balancing; Amazon VPC; AWS IAM; Amazon ECR; AWS Batch; Amazon CloudWatch; AWS CloudFormation; AWS CodeStar; and AWS CloudTrail.|
|User comments||High ratings. Users like the ease of deployment, features and ease of use.|
|Pricing and licensing||Two-tiered system based on resources used. Additional costs for other AWS services integrated with ECS.|