This article follows up my first introduction about concepts/terminologies of Amazon EC2 Container Service (ECS). As we all know, Amazon EC2 Container Service is a highly scalable container management service that supports Docker containers and allow you to easily run applications on a managed cluster of EC2 instances. This service helps customers run and manage Dockerized distributed applications. It was launched in preview at AWS reIenvent 2014 and now already be ready for production.
Managing a cluster, including the state of the EC2 instances and containers can be tricky, especially as the environment grows. There are two components in required to run modern distributed applications on a cluster. You need to have access to accurate and timely state information so that you can make container placement decisions, such as what instances are available and have the requisite capacity. Tracking of state grows increasingly difficult (and yet ever-more important) as the number of instances and containers grows into the thousands or tens of thousands. Amazon ECS was designed to meet all of these needs and more. You do not need to install, operate, and scale your own cluster management infrastructure. With simple API calls, you can launch and stop container-enabled applications and discover the state of your cluster.
Integration: EC2, EBS and more
You can use Amazon EC2 with other AWS services, take advantage of familiar features such as Elastic Load Balancing, EBS Volumes, EC2 Security Groups and IAM Roles. Calls to the ECS APIs are now logged to AWS CloudTrail.
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.
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)
Previously, Amazon ECS included two ways to schedule Docker containers on a cluster. You could run tasks once for processes such as batch jobs that perform work and then stop. You could also make calls to Amazon ECS APIs to retrieve state information about the cluster and then use it to power a third-party or custom-written scheduler.
With today’s launch you can also use the new Amazon ECS Service Scheduler to manage long-running applications and services. The Service scheduler helps maintain application availability and allows to scale your containers up or down to meet capacity requirements. Below is what it does:
Load Balancing: Service Scheduler allows you to distribute traffic across containers using Elastic Load Balancing (ELB). Amazon ECS will automatically register and deregister containers from the associated load balancer.
Heath Management: Service Scheduler will also automatically recover containers that become unhealthy (fail ELB health checks) or stop running to make sure that you have the desired number of healthy containers available to run your application.
Scale-Up and Scale-Down: You can scale the number of containers manually to adapt the capacity requirement.
Update Management: You can update your application by changing its definition or using a new image. The scheduler will automatically start new containers using the new definition and stop containers running the previous version. It will wait for the ELB connections to drain if ELB is used.
Write your own scheduler
Amazon ECS supports Scheduler Driver which helps you to build your own scheduler. There is a Mesos scheduler driver available on github: https://github.com/awslabs/ecs-mesos-scheduler-driver
– TuNA7 –