ECR & EKS & App Runner & A2C
Elastic Container Registry (ECR)
AWS managed private Docker repository
Public repository (Amazon ECR Public Gallery https://gallery.ecr.aws)
Pay for the storage you use to store docker images (no provisioning)
Integrated with ECS & IAM for security
Storage backed by S3
Can upload Docker images on ECR manually or we can use a CICD service like CodeBuild
Supports image vulnerability scanning, versioning, image tags, image lifecycle, …
Elastic Kubernetes Service (EKS)
Used to launch Kubernetes (open-source) clusters on AWS
Supports both EC2 and Fargate launch types
Inside the EKS cluster, we have EKS nodes (EC2 instances) and EKS pods (tasks) within them. We can use a private or public load balancer to access these EKS pods.
Kubernetes is cloud-agnostic (can be used in any cloud – Azure, GCP…)
For multiple regions, deploy one EKS cluster per region
Collect logs and metrics using CloudWatch Container Insights
Use case
- If your company is already using Kubernetes on-premises or in another cloud, and wants to migrate to AWS using Kubernetes
EKS - Node Types
Managed Node Groups
Creates and manages Nodes (EC2 instances) for you
Nodes are part of an ASG managed by EKS
Supports On-Demand or Spot Instances
Self-Managed Nodes
Nodes created by you and registered to the EKS cluster and managed by an ASG
You can use prebuilt AMI - Amazon EKS Optimized AMI
Supports On-Demand or Spot Instances
AWS Fargate
- No maintenance required; no nodes managed
EKS – Data Volumes
Need to specify StorageClass manifest on your EKS cluster
Leverages a Container Storage Interface (CSI) compliant driver
Support for:
Amazon EBS
Amazon EFS (works with Fargate)
Amazon FSx for Lustre
Amazon FSx for NetApp ONTAP
App Runner
Fully managed service that makes it easy to deploy web applications and APIs at scale
No infrastructure experience required
Start with your source code or container image
Automatically builds and deploy the web app
Automatic scaling, highly available, load balancer, encryption
VPC access support
Connect to database, cache, and message queue services
Use cases: web apps, APIs, microservices, rapid production deployments
App2Container (A2C)
CLI tool for migrating and modernizing Java and .NET web apps into Docker Containers
Lift-and-shift your apps running in on-premises bare metal, virtual machines, or in any Cloud to AWS
Accelerate modernization, no code changes, migrate legacy apps…
Generates CloudFormation templates (compute, network…)
Register generated Docker containers to ECR
Deploy to ECS, EKS, or App Runner
Supports pre-built CI/CD pipelines