Getting Started with Amazon ECS

Overview

Amazon Elastic Container Service (ECS) is a fully managed container orchestration service that simplifies your deployment, management, and scaling of containerized applications. Whether you are new to Amazon ECS or you already have a use case in mind, choose your own path and follow the curated learning steps to get started.

photo of man holding lightbulb

Path 1: Get started with Amazon ECS 101

Get started with this short video to see how to deploy a monolithic node.js application to a Docker container, and then decouple the application into microservices without any downtime.

In this workshop, we will launch a frontend and multiple backend services on Amazon ECS, and explore how you might adopt this workflow into your environment.

Next, learn the core concepts of Amazon ECS and Amazon Container Registry (Amazon ECR), and how they help deploy, manage, and scale Docker-enabled applications on AWS. 

Amazon ECS makes it easy to run and scale containerized workloads on AWS. Learn how to create task definitions to run containers using Amazon ECS.

This whitepaper provides guidance for application lifecycle management, security, and architectural software design patterns for container-based applications on AWS. 

This last module is designed for Terraform centric developers. In this workshop, you will learn how to leverage Amazon ECS Blueprints to build and deploy various features on top of Amazon ECS.

Path 2: Run microservices with serverless containers using Amazon ECS with AWS Fargate

Get started with this short video to see how to deploy a monolithic node.js application to a Docker container, and then decouple the application into microservices without any downtime.

Next, we will show you how to run a simple monolithic application in a Docker container, deploy the same application as microservices, and then switch traffic to the microservices without any downtime.

This course will cover a quick review of containers and then will dive into the features, benefits, use cases, and a demonstration on Amazon ECS.

In this workshop, we will launch a frontend and multiple backend services on Amazon Elastic Container Service, and explore how you might adopt this workflow into your environment.

With Amazon ECS and AWS Fargate, users don't need to manage any middleware, any Amazon EC2 instances, or host OS. Amazon ECS Solution Blueprints, gives you a jumpstart and allows you to learn-by-doing. It codifies best practices, well-designed architecture patterns, and provides end-to-end solutions addressing CI/CD, observability, security, and cost efficiency.

To wrap, take this course to learn how to gain observability into your applications running on Amazon ECS. You will learn how to collect metrics, logs, and traces at the system and application level. Finally, learn how to apply this to identify and correct problems.

Path 3: Scale and run web applications

To get started, watch this video that details best practices and tips for scaling with Amazon ECS.

Next, learn more about ECS Cluster Auto Scaling (CAS), which allows for Amazon ECS to manage the scaling of Amazon EC2 Auto Scaling Groups (ASG). With CAS, you can configure Amazon ECS to scale your ASG automatically, and just focus on running your tasks. 

Learn more about hosting and exposing container-based APIs, and how to build a solution which supports HTTP requests routing, autoscaling, high availability, and user authorization, in some cases.

Learn how to make infrastructure choices to support your containerized enterprise applications running on Amazon ECS. In this course, you will learn how to scope requirements based on your application, select the best architecture to support your application, and design reusable infrastructure patterns that are secure, performant, and resilient.

In this course, you will learn how to manage enterprise applications running at scale on Amazon ECS, to build environments that can scale in or out quickly and safely. You will also learn how to differentiate application scaling from infrastructure scaling, and perform testing to identify the best metric for scaling your application.

For more details about how things work under the hood of Amazon ECS and to view best practices to make sure your application is secure, performant, and resilient, use the Official Amazon ECS User Guide and Best Practices to get up to scale quickly.

Path 4: Deploy advanced applications using Amazon ECS on Amazon EC2

This pattern shows how to setup an Amazon ECS cluster that automatically launches its own Amazon EC2 instances using an Amazon ECS Capacity Provider. This approach allows the Amazon ECS cluster to start out completely empty, add Amazon EC2 capacity as needed, and then "scale down to zero" when you stop all container tasks in the cluster.

Running containers on Amazon EC2 allows you to optimize how those containers are distributed across Amazon EC2 hosts, or how they are binpacked together onto shared hosts, to save costs. In this module, we will dive deep into placement strategies and constraints that let you target specific types of hosts, and control how the container tasks are placed onto hosts.

Spot Fleet lets you set your desired target capacity for your cluster, and optionally set the maximum amount per hour that you’re willing to pay for your fleet. Spot Fleet attempts to optimize your spend by launching mixed instance types out of the available Spot instance types to fulfill your total capacity needs, at the most minimal cost. Learn how to combine this strategy with Amazon ECS and container placement strategies to save money.

When running containers on Amazon EC2, you have a choice of three main networking approaches: AWS VPC, bridge mode, and host mode. Which makes sense for your application? Click on the links below to understand what tradeoffs each has to make the optimal choice.

host mode
bridge mode
awsvpc mode

In this pattern, you will see how to deploy Amazon EC2 instances that have GPUs and use the Amazon GPU Optimized AMI to give your containers access to an attached GPU for hardware acceleration of your computations.

GPUs are designed for general purpose tasks, and therefore aren’t always the most cost effective technique for accelerating your machine learning tasks. In this pattern, learn how to setup AWS Inferentia hardware, and use the AWS Deep Learning Container to run an AWS Neuron powered environment that makes use of purpose-built hardware that accelerates model training and inference, at a cost/performance ratio that beats GPU in many cases.

How do you manage updates and patches to Amazon EC2 hosts when your containers are running across a fleet of Amazon EC2 instances? This pattern demonstrates how to do patches and rolling upgrades to your underlying capacity while avoiding downtime for your applications.

More digital learning with Amazon ECS

New to AWS or using Amazon ECS for the first time? Take this course to get an overview of the basics of the service and what it's capable of.

Now that you know the basics, this course will teach you more about the fundamentals of Amazon ECS and the kinds of application patterns it's best suited for.

Ready to use containers on AWS but don't want to manage the compute instances yourself? This course introduces you to AWS Fargate, the serverless compute for Amazon ECS.

Using containers and microservices effectively usually means there's an image registry being used for deployments. This course introduces you to the Amazon Elastic Container Registry (ECR) and gives examples about how it can be used with Amazon ECS.

Learn more about how to troubleshoot the deployment and performance of your Amazon ECS-based services and how to dig in to get the logs and data you need to keep your applications performing as expected.

Ready to move beyond the UI and start using Amazon ECS more programmatically? This course introduces you too AWS Copilot, a tool for deploying apps and services in a more repeatable, coordinated, and orchestrated way.

Enterprise applications have their own special requirements for design, availability and scalability. This course will go over how to choose the right technologies for your environment, as well as best practices for networking, task-to-task communications and security.

Deploying and managing applications at scale is a delicate balance of capabilities, tools, culture, and discipline. This course will introduce you to the basics of using Amazon ECS in a CI/CD environment, focusing on the Amazon tools, patterns, best practices, and scenarios that are best to drive high velocity application environments.

Nothing scales like Amazon ECS does. This course goes over the topics of growth and scale, and looks at the best practices, application patters, and tools that can support customers from their initial deployment to servicing millions of requests per second.

When things go wrong, a platform's ability to help customers understand what has happened and how to resolve it becomes key. This course will dig into how to monitor and log performance inside Amazon ECS, and how to optimize the performance of running workloads.