Calculate virtual machine resource requirements for any workload. Get vCPU, RAM, storage specs with cloud cost estimates.
Pick the workload, say how many concurrent users it has to carry, add a growth buffer, and the calculator returns a vCPU count, a RAM figure, a storage figure, an estimated IOPS requirement, a network bandwidth class, a matching instance size and a rough monthly cost across AWS, Azure and GCP. It is a first-pass sizing tool for one virtual machine, and it is honest about being that. It exists to replace the guess you would otherwise write into a ticket, not to replace the monitoring data you will have in a month.
Everything is computed in the browser from a fixed set of workload profiles. There is no API call, no account, no data leaving the page, and the Copy button puts the whole configuration on your clipboard as text you can paste into a change request.
Each of the eight workload profiles carries a baseline — the resources the service needs with nobody using it — plus a per-user coefficient. The calculation is deliberately simple and worth knowing, because it tells you exactly where the tool's judgement ends and yours begins:
vCPU = ceil((base CPU + per-user CPU × users) × (1 + buffer/100))RAM = ceil((base RAM + per-user RAM × users) × (1 + buffer/100))Storage = ceil((base storage + per-user storage × users) × (1 + buffer/100))IOPS = ceil(100 × workload multiplier × (1 + users/100))The raw results are then snapped upward to shapes you can actually buy: vCPU to 2, 4, 8, 16, 32 and then multiples of 8; RAM to 4, 8, 16, 32, 64, 128 and then multiples of 32; storage to 50, 100, 200, 500, 1000 GB and then multiples of 500. That rounding is why nudging the user count by ten often changes nothing — you are inside the same bucket.
| Profile | Base CPU / RAM / storage | Per user | IOPS multiplier | Network |
|---|---|---|---|---|
| Web server | 2 vCPU / 4 GB / 50 GB | 0.01 vCPU, 0.05 GB, 0.1 GB | 1× | High |
| Database server | 4 vCPU / 16 GB / 200 GB | 0.02 vCPU, 0.2 GB, 1 GB | 3× | Medium |
| Application server | 4 vCPU / 8 GB / 100 GB | 0.02 vCPU, 0.1 GB, 0.5 GB | 1.5× | Medium |
| Development environment | 4 vCPU / 16 GB / 200 GB | none — fixed size | 2× | Low |
| Container host | 4 vCPU / 16 GB / 100 GB | 0.05 vCPU, 0.3 GB, 2 GB | 2× | High |
| Security appliance | 4 vCPU / 8 GB / 500 GB | 0.01 vCPU, 0.05 GB, 5 GB | 2× | High |
| File server | 2 vCPU / 4 GB / 1000 GB | 0.005 vCPU, 0.02 GB, 10 GB | 1.5× | High |
| Terminal / RDS server | 4 vCPU / 8 GB / 100 GB | 0.5 vCPU, 2 GB, 5 GB | 2× | Medium |
The spread across that per-user column is the useful part. A web server costs 0.01 vCPU per concurrent user; a terminal server costs 0.5 — fifty times as much — because every session is a desktop with a browser in it. The development profile has zero per-user coefficients on purpose: it is one workstation, and the user count does not change its size (it does still affect the IOPS estimate).
Web server, 100 concurrent users, 25% buffer. vCPU: (2 + 0.01 × 100) × 1.25 = 3.75, rounded up to 4, snapped to the 4 bucket. RAM: (4 + 0.05 × 100) × 1.25 = 11.25, rounded up to 12, snapped to 16 GB. Storage: (50 + 0.1 × 100) × 1.25 = 75, snapped to 100 GB. IOPS: 100 × 1 × (1 + 100/100) = 200. The tool labels this Medium (t3.large / B4ms) and quotes roughly $169–196 a month on AWS.
Terminal server, 50 concurrent users, 25% buffer. vCPU: (4 + 0.5 × 50) × 1.25 = 36.25, rounded up to 37, and since that is past 32 it snaps to the next multiple of 8 — 40 vCPU. RAM: (8 + 2 × 50) × 1.25 = 135, past 128 so snapped to the next multiple of 32 — 160 GB. Storage: (100 + 5 × 50) × 1.25 = 437.5, rounded to 438, snapped to 500 GB.
That second result is the more instructive one, and not because the number is right. A 40 vCPU, 160 GB machine is not a VM you casually provision — it is most of a host. The correct reading is that 50 concurrent RDS sessions is a capacity-planning problem, and the answer is probably two or three smaller session hosts behind a broker rather than one enormous VM. The calculator will happily print the single-VM answer; deciding it is the wrong shape is your job.
The buffer is a straight percentage multiplier applied before rounding, adjustable from 0 to 100%, defaulting to 25%. It is not headroom for peak load — it is headroom for the next year of the service getting bigger. Two notes on using it well:
This is the most commonly misread control on the page, so it is worth stating plainly. Turning HA on does not change the vCPU, RAM or storage figures. That is deliberate: the recommendation is per node, and both nodes are identical. What HA changes is the cost estimate, which doubles, and the note that appears telling you to deploy two VMs with these specs across availability zones.
Two identical nodes is an active/active or active/passive pair, not a general N+1 capacity model. If you are sizing a cluster where the surviving hosts must absorb a failed host's workload, the tool does not compute that for you — N+1 means every host must run at a utilisation low enough that (N − 1) hosts can carry the whole load, so a four-host cluster should sit around 75% of its total capacity at most. Work out the per-VM size here, then do the host-count arithmetic separately.
The figures this tool returns are what to allocate to one guest. Packing guests onto a host is a different problem that it does not model, and the difference matters most for two resources:
The monthly figures come from a flat internal model: roughly $30 per vCPU, $3 per GB of RAM and $0.10 per GB of storage per month, doubled when HA is on, then presented as three provider ranges around that total. It is a scale check — is this a $200 machine or a $2,000 machine — and nothing more. It does not know about your region, your reserved-instance or savings-plan commitments, your negotiated discount, egress, IOPS charges on provisioned volumes, licensing, or the specific instance family you would actually pick. Price the real SKU with the provider's own calculator before anyone signs anything.
The instance-type label is a similar approximation: it maps the vCPU and RAM pair onto a rough size band with example AWS and Azure names attached. Treat it as a search term, not a purchase order.
Used as a starting point that someone else can check — because the coefficients are written down and the arithmetic is reproducible — it does the job. Used as a final answer, it will oversize your small services and undersize your interesting ones.
Start with workload type (database, web server, application), concurrent users, and growth expectations. Databases need more RAM and IOPS; web servers need network bandwidth. Begin with conservative estimates and scale up based on monitoring.
A general rule is to allocate enough RAM to hold your active dataset. For MySQL/PostgreSQL, start with 4GB for small databases, 16-32GB for medium workloads, and 64-128GB for large production databases.
A vCPU represents a portion of a physical CPU core. In most cloud environments, 1 vCPU equals 1 physical CPU thread (not a full core). Hyperthreaded cores provide 2 vCPUs.
Use SSD (or NVMe) for databases, applications, and operating systems—the higher IOPS dramatically improve performance. Use HDD for archival storage and backups where cost matters more than speed.
Deploy identical VMs across multiple availability zones with load balancing. For databases, use synchronous replication with automatic failover. Plan for N+1 capacity so one failure doesn't impact performance.
Estimates provide rough guidance based on on-demand pricing. Actual costs depend on instance family, region, reserved capacity, spot usage, and data transfer. Reserved instances reduce costs 40-60%.