CLOUD CONCEPT

Capacity Planning

Capacity planning is the process of estimating workload demand and arranging sufficient resources to meet performance, growth, and resilience requirements within cost constraints.

Cloud Concepts Hub →

What is Capacity Planning

Capacity planning translates expected traffic, data growth, and processing requirements into measurable resource needs. In the cloud, it combines forecasting, benchmarking, scaling policies, service quota management, and failure testing because elastic infrastructure is neither unlimited nor instantaneous.

Capacity planning starts with a workload’s service-level objectives, such as response latency, throughput, availability, and recovery time. Engineers forecast normal demand, seasonal peaks, unexpected bursts, and future growth, then determine the resources needed to meet those objectives. The goal is not maximum utilization at all times: resources running close to saturation can develop long queues and sharply increasing latency. Effective plans provide deliberate headroom while avoiding unnecessary idle capacity.

Translate business demand into technical units before selecting resources. An application serving 1,000 requests per second might be constrained by database connections, storage IOPS, network bandwidth, or CPU rather than the number of application instances. Benchmark representative requests and datasets, measure sustained performance, and identify the bottleneck across the complete request path. Average utilization alone is insufficient; examine peak demand, tail latency, queue depth, and uneven load distribution.

For foundation model workloads, requests per second are not enough to predict capacity. Track input and output token distributions, concurrent requests, context lengths, time to first token, and output generation rate. For example, 10 requests per second averaging 2,000 input tokens and 500 output tokens imply approximately 20,000 input tokens and 5,000 output tokens per second. These are separate demand estimates, not interchangeable units of compute: prompt processing and token generation behave differently, and service quota accounting depends on the provider and model. Long contexts and concurrent sequences also increase memory requirements, including memory used for attention caches in self-hosted inference.

Benchmark the selected model, hardware, and serving configuration under realistic prompt and completion patterns. Dynamic batching can improve accelerator utilization and aggregate throughput, but waiting to assemble batches can increase latency. Large batches can also exhaust memory. Tune batch limits and waiting time against latency objectives, and use asynchronous batch processing when workloads do not require interactive responses. For provisioned model throughput, compare sustained demand with measured usable capacity and contractual costs; consistently underused provisioned capacity can cost more than an on-demand approach.

Autoscaling implements part of a capacity plan rather than replacing it. Configure minimum capacity, maximum capacity, scaling metrics, and cooldown or stabilization behavior around workload characteristics. For model serving, queued work, active sequences, or estimated outstanding tokens may reveal pressure better than CPU utilization alone. Account for instance launch time, model loading, accelerator availability, and metric delays. Scheduled scaling can prepare for predictable peaks, while bounded queues, admission control, and backpressure protect the application during bursts that scaling cannot absorb immediately.

Network planning must consider future address consumption, connection counts, bandwidth, packet rates, and intermediary limits. A subnet that fits the initial deployment may run out of IP addresses during scale-out or rolling replacement. Allocate address space for growth and failover, and verify that load balancers, NAT gateways, private connectivity, and instance network limits can support projected traffic. Adding compute does not resolve an exhausted address pool or a constrained network path.

Storage planning separates capacity in bytes from performance in IOPS, throughput, and latency. Estimate data growth, retention, replication, temporary files, and recovery copies. A volume with enough free space can still throttle because its provisioned performance or the attached instance’s storage bandwidth is insufficient. Managed storage may expand automatically, but access patterns, request limits, partition distribution, and downstream consumers still require planning.

Finally, validate capacity during failures, not just normal operation. If two zones normally share traffic equally, the surviving resources must accommodate the required workload when one zone fails. A standby Region needs appropriate quotas, dependencies, data, and a tested scale-up path before failover. Quota increases do not necessarily propagate across Regions, and an approved quota is permission to consume resources, not a guarantee of available physical capacity. Request increases early, use capacity reservations where supported and necessary, and load-test recovery scenarios. Revisit the plan whenever traffic, models, architecture, or service limits change.

Key aspects of Capacity Planning

Capacity planning combines demand forecasts, workload-specific measurements, cost-aware headroom, scaling controls, and tested recovery capacity.

Demand forecasting and representative benchmarks

Forecast baseline demand, peaks, growth, and workload variability, then benchmark realistic operations against latency and throughput objectives. Use measured sustainable capacity rather than theoretical maximum specifications.

Token-aware model sizing

Estimate input tokens, output tokens, concurrency, and context-length distributions separately for foundation model workloads. Validate processing rates and memory requirements using the actual model and serving configuration.

Utilization and scaling feedback

Monitor saturation, queue depth, tail latency, and resource utilization to adjust allocation over time. Set scaling limits and signals that reflect workload pressure, while accounting for startup delays and predictable traffic peaks.

Throughput and cost trade-offs

Balance idle headroom against the operational cost of throttling, slow responses, and failed requests. Tune batching and provisioned throughput against measured demand rather than assuming higher utilization always produces a better result.

End-to-end resource constraints

Plan network addresses, connection capacity, storage space, IOPS, throughput, and compute together. Increasing one resource does not improve performance when another component remains the bottleneck.

Failure capacity and quota readiness

Size surviving infrastructure and standby environments for the load they must handle during recovery. Verify relevant quotas in each target Region and distinguish quota approval from actual resource availability.

Cloud services for Capacity Planning

CloudWatch measurements provide evidence for sizing compute, model inference, storage, and network resources. Bedrock capacity choices or EC2 Auto Scaling policies then address processing demand, while VPC address planning and EBS performance settings prevent infrastructure bottlenecks from limiting that capacity. Service Quotas helps identify administrative ceilings that could block growth or recovery. Together, these services support a feedback loop: forecast demand, benchmark realistic workloads, configure capacity and headroom, monitor results, and revise the plan. Validate the same dependencies in standby Regions because scaling policies and sufficient quotas alone do not guarantee a successful failover.

Amazon Bedrock

Amazon Bedrock requires planning around model-specific request and token quotas, supported inference options, and application latency requirements. Where Provisioned Throughput is supported, benchmark the selected model and review utilization before choosing capacity and commitment terms; do not assume application autoscaling changes provisioned model throughput.

Open Amazon Bedrock →
Amazon CloudWatch image Amazon CloudWatch

Amazon CloudWatch provides metrics, dashboards, and alarms for detecting saturation and validating capacity assumptions. Combine service metrics with application metrics such as token volumes, queue depth, and latency distributions to identify scaling signals and bottlenecks.

Open Amazon CloudWatch →
Service Quotas

AWS Service Quotas helps engineers inspect supported service quotas and request increases for adjustable quotas. Check relevant quotas in both active and standby Regions before growth or failover, remembering that quota increases do not reserve physical resources.

Open Service Quotas →
Amazon EC2 Auto Scaling image Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling adjusts instance counts within configured minimum and maximum bounds using supported scaling policies. For self-hosted model inference, account for model loading and accelerator initialization, and use suitable custom workload metrics when CPU utilization does not represent demand.

Open Amazon EC2 Auto Scaling →
Virtual private cloud VPC_32 image Amazon VPC

Amazon VPC makes address allocation and subnet design part of capacity planning. Reserve enough address space for application growth, network interfaces, deployment overlap, and failover, and evaluate quotas and performance limits for the network components on the traffic path.

Open Amazon VPC →