Compute is the capacity that executes application instructions. A web server handling requests, a worker resizing images, and a machine learning job performing calculations all consume compute resources. CPU and memory are core considerations, while some workloads require GPUs or other accelerators. Storage retains data and networking moves it; compute processes it. These resources work together, but increasing compute capacity does not automatically resolve a storage or network bottleneck.
Cloud compute replaces the need to purchase and provision physical servers for every workload. Engineers request capacity through APIs, consoles, or infrastructure as code, choose a deployment location, and configure access and connectivity. Capacity can be provisioned for a long-running application or allocated only while work is executing. Provisioning is subject to service quotas, regional availability, and available capacity rather than being literally unlimited.
Virtual machines provide substantial control over the operating system and installed software. They suit applications that need specific system configurations, persistent processes, or a straightforward migration from existing servers. Containers package applications and dependencies into portable images, while an orchestration service schedules and maintains container workloads. Function-based serverless compute runs code in response to events without requiring customers to provision servers. Serverless still uses servers; the provider manages the underlying infrastructure.
On AWS, Amazon EC2 supplies virtual machines, while AWS Lambda provides event-driven function execution. Amazon ECS and Amazon EKS orchestrate containers; AWS Fargate supplies serverless compute capacity for supported workloads on those services. AWS Elastic Beanstalk manages application deployment and supporting infrastructure while using underlying resources such as EC2 instances. Amazon Lightsail offers simplified virtual servers and bundled resources, and AWS Batch schedules batch computing jobs. These services address different operational needs rather than representing interchangeable ways to run every application.
Scaling vertically means increasing the resources assigned to an individual execution environment. Scaling horizontally means adding more instances, containers, or concurrent workers. For example, an online store can add application instances during a promotion and remove them afterward. Amazon EC2 Auto Scaling can adjust EC2 instance counts, while a load balancer distributes requests. Applications generally scale more easily when session state and durable data are stored outside individual compute instances.
Compute selection involves trade-offs. Virtual machines offer control but require guest operating system maintenance. Managed containers reduce some infrastructure work but still require secure images and appropriate resource settings. Functions reduce server administration but introduce execution limits, concurrency considerations, and possible startup latency. Short-lived, event-driven image processing may suit functions, while a continuously running application requiring operating system customization may suit virtual machines.
Cost depends on the execution model, resource allocation, runtime, and purchasing arrangement. Idle virtual machines can still incur compute charges, and serverless is not automatically the cheapest choice for sustained workloads. Interruptible capacity, such as EC2 Spot Instances, can reduce costs for fault-tolerant jobs but requires handling interruptions. Finally, compute alone does not guarantee availability: production designs need failure recovery, suitable placement across Availability Zones, monitoring, and durable data storage. Customers remain responsible for application security, permissions, and data protection even when infrastructure management is delegated.