Choosing a cloud VM size without overpaying
A virtual machine is described by a few numbers: how many virtual CPUs, how much memory, what kind of processor and what network and disk it comes with. The right size is the smallest one that does the job with headroom. Most teams pick larger.
Instance names are a code
Names such as m6i.large or Standard_D2s_v5 look like noise but follow a pattern: a family letter that says what the machine is for, a generation number, optional feature letters, and a size. The details differ by cloud, so read each vendor’s naming page once. The useful part is the family.
| Family idea | Built for | Memory per vCPU |
|---|---|---|
| General purpose | Web servers, small databases, most things | Balanced |
| Compute optimized | CPU-bound work: encoding, batch jobs | Lower |
| Memory optimized | Caches, in-memory databases, analytics | Higher |
| Storage optimized | Fast local disks | Varies |
| Accelerated | GPUs and other chips | See GPU instances |
If you do not know which you need, start with general purpose.
What a vCPU is
A vCPU is one hardware thread of a processor, shared with other tenants unless you pay for dedicated hardware. Two instances with the same vCPU count can perform differently, because the processor generation and type differ. Compare vCPU count only inside one family and generation.
How to size
- Measure before you guess. If the app runs somewhere today, record peak CPU and memory use over a typical and a busy week.
- Add headroom of about a third above the peak, so a spike does not stall the service.
- Choose the smallest size that fits, and note what you would move to if it grows.
- Test under load before launch, with realistic traffic.
- Watch for two weeks after launch, then adjust. Resizing is usually a restart.
Memory is the one to be careful with. A process that runs out of memory fails, while a CPU that runs hot only slows down.
Scale up or scale out
A bigger machine is simple, and has a ceiling and one point of failure. Several smaller machines behind a load balancer survive the loss of one and grow in steps, and need an application that can run in parallel. For most web apps, two or more small machines is the better start, which also means multi-zone choices to price.
Things that change the price besides size
- The operating system. Windows and some Linux distributions add a licence charge. Our catalog and estimates use Linux.
- The pricing model. On-demand, committed or spot. See cloud pricing models.
- The region. Prices differ.
- The architecture. See Arm versus x86.
- Burstable or fixed performance. See burstable versus fixed performance.
Comparing sizes with real data
The virtual machines catalog lists the instances we have prices for, with vCPU, memory, architecture and the vendor’s source link. Filter by the minimum vCPU and memory you need and sort by monthly price to see the cheapest fit. It covers AWS so far. The estimator shows what a whole web app costs on all four clouds.