Container Services on AWS: Choosing the Right Fit
Overview
- The presenters discussed the different container services offered by AWS and how to choose the right one for your needs.
- They highlighted the trade-offs between flexibility, control, and complexity when selecting a container service.
- The presentation was divided into the following sections:
- Layers of container management on AWS
- Grouping of AWS container services
- Choosing between different container services based on your requirements
- Optimizing costs for container workloads
Layers of Container Management on AWS
The presenters explained the three layers of container management on AWS:
- Capacity Layer: Provides the underlying computing power (e.g., EC2, Fargate)
- Orchestration Layer: Manages the deployment and scaling of containers (e.g., ECS, EKS, OpenShift on AWS)
- Provisioning Layer: Simplifies the interaction with the orchestration layer (e.g., App Runner, Elastic Beanstalk, Amplify)
They also mentioned that AWS Lambda encompasses all three layers, providing a serverless option for running containers.
Grouping of AWS Container Services
The presenters categorized the AWS container services into three groups:
- Bring Your Own Container Image: Services where you provide the container image, and AWS runs it (e.g., ECS, EKS, App Runner, Lambda)
- Bring Your Own Container with Added Value: Services that let you run containers but provide additional features (e.g., App Runner, Amplify, Elastic Beanstalk)
- Containers Running Under the Hood: Services that manage the containers for you, and you don't see them (e.g., some AWS managed services)
Choosing the Right Container Service
When choosing a container service, the presenters suggested considering two main approaches:
- Tactical (Fit-for-Purpose): Focuses on practical solutions to get the application up and running quickly, without managing the underlying infrastructure.
- Strategic (Organizational-Level): Balances long-term needs like scalability, control, and developer experience, as well as the in-house expertise of the team.
Optimizing Costs for Container Workloads
The presenters provided the following tips for optimizing costs:
- Comparing the pricing models of different services (e.g., EC2 vs. Lightsail vs. Fargate)
- Leveraging spot instances and Savings Plans to reduce costs
- Considering the trade-offs between flexibility, scalability, and cost when choosing between services (e.g., EC2 vs. Fargate, EKS with EC2 vs. EKS with Fargate)
They also provided a demo and shared a repository with example infrastructure setups using various container services.