Title
AWS re:Invent 2022 - A close look at AWS Fargate and AWS App Runner (CON406)
Summary
- Archana Shakanta, a principal engineer at AWS, discusses the evolution of AWS container services from EC2 to AWS App Runner.
- EC2, the original compute service, required customers to manage VMs, software, load balancers, auto-scaling, and deployment pipelines.
- Elastic Beanstalk was introduced to automate the orchestration of these components, but customers still managed the resources.
- The rise of containers led to the creation of ECS in 2015, which moved container orchestration control to AWS, but customers still managed scaling and deployment complexities.
- AWS Fargate, launched in 2017, is a serverless container offering that abstracts away the underlying instances, allowing customers to focus on containers.
- AWS App Runner further simplifies deployment for web applications by managing containers, load balancers, auto-scaling, and deployment pipelines, leaving customers to handle only the application image.
- App Runner supports both source code and pre-built container images, with seamless scaling and a simplified API call to create services.
- Under the hood, App Runner uses a service VPC, managed language runtimes, and deploys Fargate tasks in an AWS-owned account with networking to the customer's VPC.
- Fargate uses Firecracker microVMs for fast startup and strong isolation, running on bare metal instances within the Fargate VPC.
- ECS orchestrates the placement of Fargate tasks, with a sophisticated microservices architecture and cellular design for high availability.
- Security is a key consideration, with strict controls in VPCs, security groups, IAM roles, and isolation between tasks and instances.
- Availability is ensured through regional independence, cellular architecture, and multi-AZ deployments for both the control plane and data plane.
Insights
- AWS has progressively abstracted the complexity of running web applications on its platform, moving from infrastructure management to serverless offerings.
- The shared responsibility model is a core concept in AWS, where AWS manages certain aspects of the stack, and customers manage others, depending on the service used.
- AWS Fargate and App Runner represent the highest level of abstraction, significantly reducing the operational burden on customers.
- Firecracker microVMs are a key technology enabling the fast startup and strong isolation required for serverless container execution.
- AWS employs a cellular architecture within regions to minimize the impact of failures and ensure high availability across its services.
- Security and availability are designed into every layer of AWS services, with the higher abstraction services benefiting from all the underlying work.
- Customers are encouraged to start with the highest abstraction service that meets their needs and only move to lower-level services if necessary.