AWS Compute is the AWS service area for running application code and processing workloads. It includes virtual machines, containers, serverless functions, managed application platforms, lightweight VPS-style hosting, and large-scale batch processing.

The main design choice is how much infrastructure control you need. EC2 gives the most direct control over hosts and operating systems, containers provide a portable application runtime, Lambda removes most server management, and managed platforms such as Elastic Beanstalk and Lightsail trade flexibility for simpler operations.

Core services

  • AWS EC2 - virtual machines with direct control over instance type, operating system, storage, networking, scaling, and pricing model.
  • Amazon Elastic Container Service (ECS) - container orchestration for running and scaling containerized applications.
  • AWS Fargate - serverless compute for containers, often used with ECS when you do not want to manage EC2 capacity.
  • AWS Lambda - event-driven functions that run code without provisioning or managing servers.
  • AWS Elastic Beanstalk - managed application deployment that provisions and operates underlying AWS resources for web applications.
  • AWS Batch - managed batch job queues and compute environments for large-scale batch processing.
  • Amazon Lightsail instances - simplified VPS-style compute for small applications, prototypes, and predictable hosting needs.
  • Amazon Lightsail databases - simplified managed databases often paired with Lightsail instances.

Choosing a compute option

  • Use EC2 when you need host-level control, custom networking, custom operating system configuration, or specialized instance families.
  • Use ECS or Fargate when the application is packaged as containers and should scale as services or tasks.
  • Use Lambda for short-lived, event-driven workloads where server management is unnecessary.
  • Use Elastic Beanstalk when you want to deploy application code quickly while AWS manages the supporting compute, load balancing, scaling, and monitoring.
  • Use AWS Batch for queued jobs, dependency-driven workflows, and large compute runs that can scale dynamically.
  • Use Lightsail for simple projects where predictable pricing and low operational overhead matter more than deep AWS customization.