AWS Compute Blog

Amazon EC2 Container Service is now generally available

by Chris Barclay | on | in Amazon ECS |

We would like to announce the general availability of Amazon EC2 Container Service (ECS). Amazon ECS is a highly scalable, high performance container management service that supports Docker containers and allows you to easily run applications on a managed cluster of Amazon EC2 instances.

Running a container on a single machine demonstrates Docker’s power and simplicity, however scaling containers across a fleet of machines can be challenging. Over the past six months, we heard a lot of great feedback from our preview users. We heard that you need: accurate and timely information about the state of your EC2 instances and the containers running on them to make good container placement decisions and ensure application availability; the ability to place containers on EC2 instances that have the required resources, such as adequate memory or available ports; containers to work with the AWS services you depend on; and a service that is extensible and can be customized to your particular purposes. We also heard that you did not want to operate another piece of software to achieve these goals.

We built Amazon ECS for you. Amazon ECS provides complete cluster state information through simple API calls or clicks in the management console. There is no need to install, operate, and scale cluster management infrastructure. ECS includes schedulers that support long-running applications and batch jobs. You can also integrate custom and third party schedulers such as Apache Mesos. Multiple schedulers can run simultaneously on the same cluster, letting you manage the placement of containers and utilization of EC2 instances based on your unique requirements. Amazon ECS is designed for use with other AWS services and includes access to many familiar features like Elastic Load Balancing, EBS volumes, EC2 security groups, and IAM roles. Finally, Amazon ECS is extensible. The Amazon ECS agent is open source and the Amazon ECS APIs support custom schedulers and integration with third party tools.

We appreciate your input during the preview and look forward to your continued feedback. To recap some of the improvements made during the preview, we added support for the US West (Oregon) and EU (Ireland) regions, storing and sharing information between containers using data volumes, and authenticating with Docker registries such as Docker Hub allowing you to use Docker images from private repositories.

With the general availability, we added these additional features that you requested during the preview:

Management console. You can now use the Amazon ECS Management Console in addition to the AWS CLI and SDK to launch, manage, and monitor your containers and clusters. Please visit our console.

Application load balancing, health checks, scaling, deployments. The new Amazon ECS service scheduler can manage long-running applications and services. The service scheduler can distribute traffic across your containers using Elastic Load Balancing and automatically recover containers that become unhealthy (fail ELB health checks) or stop running to ensure you have the desired number of healthy containers supporting your application. You can scale your application up and down by changing the number of containers you want the service to run to meet your application’s capacity requirements. You can also update your application by changing its definition or using a new image.

Brenna Saeta is an architect at Coursera, an education company that partners with top universities and organizations to offer online course for free. He recently told us, “We are using Amazon EC2 Container Service to power our new programming assignments infrastructure for next-generation On-Demand course platform. Building on our existing use of AWS, we required a solution on which we could securely and efficiently deploy Docker containers to encapsulate learner programming assignment submissions. We have modified the open source ECS agent to apply custom security profiles and are looking forward to additional capabilities that will enable us to deliver an even more powerful platform for worldwide learning.”

New Regions. You can now use the Asia Pacific (Tokyo) region, delivering support for a total of four regions including US East (Northern Virginia), US West (Oregon) and EU (Ireland).

AWS CloudTrail integration. AWS CloudTrail lets you record all your Amazon ECS API calls and have the log files delivered to you.

There are three blogs that provide additional details on these features. My colleague Jeff Barr wrote a nice blog post that provides a walkthrough of the Amazon ECS service scheduler using the management console. Jeff shows how to deploy and scale a simple web application on Amazon ECS. My colleague Daniele Stroppa wrote a blog that describes how to use Jenkins as part of a continuous deployment process with the Amazon ECS service scheduler. Daniele shows how to use git push to trigger Jenkins to create a new Docker image and update a running ECS service. The third blog provides an overview of scheduling and orchestration systems. Werner Vogels describes how schedulers make decisions that can optimize task placement to reduce resource contention and monitor to ensure requests are fulfilled. He also explains how Amazon ECS supports multiple schedulers.

These features are available now and you can start using them today. For more information, visit our product detail page and read the documentation.