List the processes
Write down the application, database, workers and other services that must share the machine. Estimate their normal memory use and their peak activity. Leave enough free memory for the operating system and short bursts without depending on swap for routine work.
Match the bottleneck
CPU-bound tasks need sustained compute; databases often need memory and responsive storage; media transfer depends on network capacity. A workload with one busy thread may not benefit from many additional vCPUs. Benchmark a representative task.
Leave room for the data
Include database growth, indexes, logs, temporary files and upgrade space. Add log rotation and alerts before a disk fills. A backup stored only on the same disk consumes capacity without protecting against that disk’s loss.
Measure after launch
Observe CPU saturation, memory pressure, storage latency, application response time and request errors. Scale when the measurements justify it. Keep the application and data portable enough to move if a vertical resize is insufficient.