Introduction

Beginner | 10 minutes

This website provides an introduction of what containers are and why you might want to consider an AWS container service for your application or use case.

What are containers?

Containers provide a standard way to package your application's code, configurations, and dependencies into a single object. Containers share an operating system installed on the server and run as resource-isolated processes, ensuring quick, reliable, and consistent deployments, regardless of environment.

Why use containers?

Containers are a powerful way for developers to package and deploy their applications. They are lightweight and provide a consistent, portable software environment for applications to easily run and scale anywhere. Building and deploying microservices, running batch jobs, for machine learning applications, and moving existing applications into the cloud are just some of the popular use cases for containers.

Secure: AWS offers 210 security, compliance, and governance services and key features which is about 40 more than the next largest cloud provider. AWS provides strong security isolation between your containers, ensures you are running the latest security updates, and gives you the ability to set granular access permissions for every container.

Reliable: AWS container services run on the best global infrastructure with 69 Availability Zones (AZ) across 22 Regions. AWS provides >2x more regions with multiple availability zones than the next largest cloud provider (22 vs. 8). There are SLAs for all our container services (ECS, EKS, and Fargate) giving you ease of mind.

Choice: AWS container services offer the broadest choice of services to run your containers. You can choose AWS Fargate if you want serverless compute for containers and Amazon EC2 if you need control over the installation, configuration, and management of your compute environment. You can also choose which container orchestrator to use: Amazon Elastic Container Service (ECS) or Amazon Elastic Kubernetes Service (EKS).

AWS Integrations: AWS container services are deeply integrated with AWS by design. This allows your container applications to leverage the breadth and depth of the AWS cloud from networking, security, to monitoring. AWS combines the agility of containers with the elasticity and security of the cloud.

Container services

AWS offers the widest range of services for storing, managing, and running containers. Choose the right AWS service for your workload, from small experiments to critical production applications.
 

If you want to...
Consider using
Because...
Store, encrypt, and manage container images Amazon ECR
ECR compresses and encrypts your container images, making them fast to start and available to run anywhere.
Run containerized applications or build microservices Amazon ECS Amazon Elastic Container Service (Amazon ECS) is a fully managed container orchestration service that provides the most secure, reliable and scalable way to run containerized applications.
Manage containers with Kubernetes Amazon EKS Amazon Elastic Kubernetes Service (Amazon EKS) is a fully managed Kubernetes service that provides the most secure, reliable, and scalable way to run containerized applications using Kubernetes.
Run containers without managing servers
AWS Fargate AWS Fargate is a serverless compute engine for containers that works with both Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS). Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design.
Run containers with server-level control Amazon EC2
EC2 virtual machines gives you control of your server clusters and provide a broad range of customization options.

Fundamentals

Intermediate | 20 minutes

In this section we will cover fundamental concepts necessary to understand containers and decide which container service is right for your application or use case.

What is Docker?

Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime.

What is Kubernetes?

Kubernetes is an open source container management and orchestration system. On AWS, you can choose to run and manage Kubernetes infrastructure yourself with Amazon EC2, or use Amazon EKS for a managed, automatically provisioned Kubernetes control plane.

Common containers use cases

Microservices: Containers provide process isolation that makes it easy to break apart and run applications as independent components called microservices.

Batch processing: Package batch processing and ETL jobs into containers to start jobs quickly and scale them dynamically in response to demand.

Machine learning: Use containers to quickly scale machine learning models for training and inference and run them close to your data sources on any platform.

Hybrid applications: Containers let you standardize how code is deployed, making it easy to build workflows for applications that run between on-premises and cloud environments.

Application migration to the cloud: Containers make it easy to package entire applications and move them to the cloud without needing to make any code changes.

Platform as a service: Use containers to build platforms that remove the need for developers to manage infrastructure and standardize how your applications are deployed and managed.

Let's build!

The following tutorials will cover how to get started with Amazon ECS and Amazon EKS.

Deploy Docker Containers

Learn how to run a Docker-enabled sample application on an Amazon ECS cluster behind a load balancer and test the sample application.

Begin tutorial >>

Deploy a Kubernetes Application

Learn how to deploy a containerized application onto a Kubernetes cluster managed by Amazon Elastic Container Service for Kubernetes (Amazon EKS).

Begin tutorial >>

Learning resources

Intermediate | 30-120 minutes

The following resources walk through more advanced configurations and use cases for Amazon ECS, Amazon EKS, and AWS App Mesh.

Amazon ECS Workshop

Launch a frontend and multiple backend services on AWS ECS and explore how you might adopt this workflow into your environment.

Begin workshop >>

Amazon EKS Workshop

Explore multiple ways to configure Amazon EKS, VPC, ALB, and EC2 Kubernetes workers.

Begin workshop >>

Break a Monolith into Microservices

Learn how to deploy a monolithic node.js application to a Docker container, then decouple the application into microservices without any downtime.

Begin tutorial >>

AWS App Mesh Workshop

Learn about the features and usage of AWS App Mesh.

Begin workshop >>

Containers From The Couch

Learn to run containers, directly from the experts.

Visit the website >>

The following videos explain key container topics to help you better use containers.

How to Containerize Anything!
Building a Container CI/CD Pipeline
Building a Container App with AWS CDK

AWS Architecture Center

Visit the Containers category of the AWS Architecture Center to learn best practices for building optimal Container architectures. 

Start building >>

Additional resources

Hands-on tutorials
Access the full inventory of container tutorials and get more hands-on learning.
See the hands-on tutorials >>
AWS Containers Blog
Read the latest news and updates about all things containers at the AWS Containers Blog.
Read the blog posts >>
AWS Architecture Center
Learn best practices for storing, managing, orchestrating, and powering your containers and their deployments on AWS.
Visit the Architecture Center >>

Was this page helpful?