Containers

New look for Amazon ECS in the AWS Management Console

Recently we launched a new look and experience for Amazon ECS in the AWS Management Console. Since its launch in 2014, Amazon Elastic Container Service (Amazon ECS) has served as a simple way for customers to run production grade container workloads on AWS. Customers such as Disney+, Vanguard, Okta, Fidelity, and UbiSoft trust Amazon ECS to run their most sensitive and mission critical applications because of the removed operational overhead, scalability, and native integrations with other AWS services. As we’ve continued to innovate on behalf of our customers, we recognized the need to build a more streamlined, intuitive, and guided experience in the Amazon ECS console. Ultimately, the goal is to simplify the experience when deploying containers to Amazon ECS. Let’s walk through the new console experience.

Walkthrough

We start with a centralized view of the ECS clusters that reside in the region. With this view, we gain insight into the number of services and tasks running in the clusters. This can be especially helpful to see if any active deployments are happening within a cluster, or to catch a cluster that has tasks pending, waiting to get scheduled. Lastly, the view shows the default capacity provider strategy for each cluster.

Drilling down into the cluster view we are presented with a view of the services and tasks running. From here, we can click down into a service or task to derive more detail. Clicking into the service view, we are presented with the Health, Configuration and tasks, Deployments, Networking, and Tags tabs. The Health tab is a simple view of event notifications, as well as the status of the service, which includes the number of desired, pending, and running tasks.

The Configuration and tasks tab provides insight into the task definition, as well as tasks and containers running. In this view, users can quickly understand how their service scales, as well as the task count details.

The Deployments tab provides a live view of deployments related to a service, as well as the configuration related to how the service is deployed.

The Networking tab provides details on the network configuration for the service such as subnets, VPC, and target group details (if behind a load balancer). Lastly, the Tags tab shows the tags applied to the service.

The task view gives us insight into all tasks running on the cluster. We can drill down and query based on specific values, as well as drill down into the details of the task.

A more guided deployment experience

One of the bigger changes that comes with the new Amazon ECS console experience is the Service and Task deployment workflows. Coming from the previous console experience, service and task deployments were presented in separate locations. Now with the new console, the deployment flow for both task and service deployments is consolidated into one flow. In addition, the experience is more linear, builds in best practices, and offers sane defaults for those that are new to the service. We also include info links to provide pop ups explaining that particular section. Ultimately the goal is to make it easier for folks to deploy a task or service regardless of their experience level with Amazon ECS. Let’s walk through deploying a service.

It starts with selecting the Deploy button.

Next, we are presented with a single page workflow to deploy our service or task. Note that the only input required by the user is the deployment configuration, which is where we define how we want to deploy our containers. This includes the task definition and revision (version of the task definition) as well as the desired number of tasks to run.

In the case where the user needs to go beyond the defaults, let’s dive into the advanced and optional configuration items available. We’ll start with the compute configuration. In this section, we choose how we want our tasks to get scheduled onto the compute layer of the cluster. We’re presented with the following options for compute: capacity provider strategy or launch type. By default, the tasks will be deployed using the AWS Fargate capacity provider for compute.

When scheduling your tasks in Amazon ECS, the recommended practice is to use capacity providers instead of launch type when possible. Capacity providers are used to manage the infrastructure that tasks in the cluster use. Based on customer feedback, we simplified the user experience around choosing a capacity provider strategy. For more details on capacity providers, check out the tech talk as well as this detailed blog.

If a service is being deployed, we are presented with deployment options. Here we can define the deployment type for the service, which at release only supports the rolling update type. We can specify the lower and upper limits during a deployment. The default configuration is set to 100% as minimum running tasks, and 200% maximum running tasks. In short, this ensures that during a deployment there is a minimum of 100% of healthy, running tasks with the ability to scale up the number of tasks to 200% of the desired count.

Finally, we have the choice of choosing a load balancer for a service as well as the networking configuration for the service or tasks being deployed. The load balancer configuration gives the user the option of using an Application Load Balancer, as well as the ability to place the service behind an existing one or create a new one.

The networking configuration is automatically populated with the the default VPC in the region, as well as the subnets and default security group. If desired, these values can be changed based on the need.

This is just the beginning

While we are excited about the release of the updated console experience, this is just the beginning. The console update can be toggled on and off, and feedback is very easy to provide as it is located next to the toggle button under “Tell us what you think.” In addition, if you want to be more vocal about your thoughts on the user experience, please sign up to be a part of the AWS customer council.

Not all features and functionality from the previous console are presently available in the update. We are taking an iterative approach to add new features as customer feedback dictates. While we work to bring parity between the two consoles, both will exist in parallel. This means that if there is functionality that you rely on that exists in the previous console but not the updated one, please continue to use the previous console experience and send us feedback with what features are missing. We look forward to your feedback!

For more information Amazon ECS, please take a look at the following resources:

Adam Keller

Adam Keller

Adam is a Senior Developer Advocate @ AWS working on all things related to IaC, DevOps, and modernization. Reach out to him on twitter @realadamjkeller.