What compute services exist apart from EC2?
Even though EC2 is the most popular, AWS provides a variety of other compute services that are covered in this section.
Container Services
Amazon ECS (Elastic Container Service)
Amazon ECS is a fully managed container orchestration service for running Docker containers in AWS.
Note: While ECS handles placement, scaling and scheduling of containers, these will run on user-managed EC2 instances.
AWS Fargate (Serverless)
AWS Fargate is a compute engine for containers that works with ECS and EKS.
Note: There is no need to manage EC2 instances when using Fargate.
Amazon ECR (Elastic Container Registry)
Amazon ECR is a fully managed, private Docker image repository for storing and managing container images.
It is integrated with ECS and Fargate.
Note: Supports lifecycle policies and IAM-based access control.
Amazon EKS (Elastic Kubernetes Service)
Amazon EKS is a managed Kubernetes control plane for running containerized applications using Kubernetes.
It supports standard kubectlcommands and AWS managed the k8s control plane, while the user managed the worker nodes (via EC2 or Fargate)).
Lambda Functions (Serverless)
Lambda is a service to run event driven functions without provisioning or managing servers.
Key points:
- Automatically scales with demand;
- Pay-per-request and duration billing;
- Supports triggers from S3, Amazon API Gateway, EventBridge and more;
- Ideal for short-lived tasks (e.g. Image processing, data transformation).
AWS Batch
AWS Batch is a fully managed service to run batch computing jobs efficiently at any scale.
Key points: