CATEGORY DEEP DIVE
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.
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...
|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.
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.
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.
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.
The following tutorials will cover how to get started with Amazon ECS and Amazon EKS.
Learn how to run a Docker-enabled sample application on an Amazon ECS cluster behind a load balancer and test the sample application.
Learn how to deploy a containerized application onto a Kubernetes cluster managed by Amazon Elastic Container Service for Kubernetes (Amazon EKS).
The following resources walk through more advanced configurations and use cases for Amazon ECS, Amazon EKS, and AWS App Mesh.
Launch a frontend and multiple backend services on AWS ECS and explore how you might adopt this workflow into your environment.
Explore multiple ways to configure Amazon EKS, VPC, ALB, and EC2 Kubernetes workers.
Learn how to deploy a monolithic node.js application to a Docker container, then decouple the application into microservices without any downtime.
Learn about the features and usage of AWS App Mesh.
Learn to run containers, directly from the experts.
The following videos explain key container topics to help you better use containers.
AWS Architecture Center
Visit the Containers category of the AWS Architecture Center to learn best practices for building optimal Container architectures.