EC2 (Elastic Compute Cloud)
Why it exists: To provide resizable compute capacity in the cloud. When to use: For applications that require full control over the underlying infrastructure, or for legacy applications that aren’t easily containerised.
Elastic Beanstalk
Why it exists: To simplify deploying and scaling web applications. When to use: For developers who want to quickly deploy applications without managing infrastructure details. It’s particularly useful for common web architectures.
ECS (Elastic Container Service)
Why it exists: To run and manage Docker containers. When to use: When you want to deploy containerised applications but prefer to manage your own cluster of EC2 instances.i
EKS (Elastic Kubernetes Service)
Why it exists: To run and manage Kubernetes clusters. When to use: When you want to use Kubernetes for container orchestration but don’t want to manage the Kubernetes control plane yourself.
- Fargate: Why it exists: To run containers without managing servers or clusters. When to use: When you want to focus solely on your containerized applications without worrying about the underlying infrastructure.
- Lambda: Why it exists: To run code without provisioning or managing servers. When to use: For event-driven, short-lived functions or microservices. Ideal for applications with variable or unpredictable workloads.
- App Runner: Why it exists: To simplify deploying containerized web applications and APIs. When to use: When you want a fully managed service that handles everything from building and deploying to load balancing and auto-scaling, especially for web apps and APIs.
- CloudFormation: Why it exists: To define and provision AWS infrastructure as code. When to use: When you want to automate the deployment of complex infrastructures and ensure consistency across multiple environments.
- CodeDeploy: Why it exists: To automate code deployments to various compute services. When to use: When you need a flexible deployment service that works with EC2, Lambda, and on-premises servers.