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

    attachments/Pasted image 20220509235639.jpg

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