How to estimate your cloud bill before you migrate
On this page
- Step 1: Inventory what you actually run
- Step 2: Price compute
- Step 3: Price storage
- Step 4: Price egress, the one everyone underestimates
- Step 5: Price managed services against self-managed
- Step 6: Worked example, 12 VMs, one database, 4 TB of files
- Step 7: Add the buffer, then validate
- FAQ
- How accurate can a pre-migration cloud cost estimate be?
- Should I estimate using on-demand or discounted pricing?
- What do first-time estimates most often forget?
- Is the cloud cheaper than on-premise?
Most migration budgets are wrong before the first workload moves, not because cloud pricing is secret, but because the estimate skipped the unglamorous line items. Here is the method we use, ending with a full worked example.
Step 1: Inventory what you actually run
You cannot price what you have not counted. For every server (physical or VM), capture:
| Field | Why it matters |
|---|---|
| vCPU / RAM allocated | Maps to an instance size |
| Measured peak + average utilization | Most on-prem VMs run at 10-25%, you’ll buy smaller than you think |
| Attached disk (GB, type) | Block storage is billed per GB provisioned |
| What it talks to, and how much | Drives egress and inter-AZ traffic costs |
| Uptime requirement | 24/7 vs. business hours changes the math by ~65% |
Pull 2-4 weeks of monitoring data if you have it. Sizing from allocated specs instead of measured usage is the single biggest cause of overestimates, and, ironically, of oversized bills later, because people provision what they wrote down.
Step 2: Price compute
Compute is usually 40-60% of the bill. Rules of thumb (on-demand, US regions, 2026 list prices, all three major providers land within ~15% of each other):
- 2 vCPU / 8 GB general-purpose instance: ~$60-75/month
- 4 vCPU / 16 GB: ~$130-150/month
- 8 vCPU / 32 GB: ~$260-300/month
Rightsize as you map: an on-prem VM with 8 vCPU allocated but 15% average utilization becomes a 2-vCPU instance, not an 8-vCPU one. Then note which instances genuinely run 24/7, that steady baseline is where 1-year commitments later cut 30-45% (see committed-use discounts compared). If your platform uses autoscaling, price the average fleet size, not the peak.
Step 3: Price storage
Three kinds, three price ranges:
| Storage type | Typical price | Used for |
|---|---|---|
| Block (SSD, attached to instances) | ~$0.08-0.10/GB-month | Boot disks, databases |
| Object storage | ~$0.02-0.026/GB-month (standard tier) | Files, backups, static assets |
| Archive tiers | ~$0.001-0.004/GB-month | Compliance retention |
Two traps: snapshots and backups accumulate (a daily-snapshot policy can quietly double your storage line within a year), and provisioned ≠ used, block storage bills the size you provision, not the data on it.
Step 4: Price egress, the one everyone underestimates
Data into the cloud is free. Data out to the internet costs ~$0.085-0.12/GB after a small free allowance (typically 100 GB/month). Estimate it from real numbers:
- Monthly outbound transfer from your current firewall or ISP bill
- Traffic to end users (page weight × requests, or CDN reports)
- Any off-cloud replication, partner feeds, or backup-to-elsewhere jobs
A business pushing 2 TB/month to the internet pays roughly $170-200/month just to move it. Also budget for the quiet in-cloud transfer fees: traffic between availability zones ($0.01-0.02/GB each way) and NAT gateway processing ($0.045/GB plus ~$32/month per gateway).
Step 5: Price managed services against self-managed
The classic call is the database. Managed database services (RDS, Azure SQL/Flexible Server, Cloud SQL) cost roughly 1.5-2.5× the equivalent raw instance, for a 4 vCPU / 32 GB PostgreSQL with high-availability failover, expect ~$550-700/month plus storage, versus ~$250 for one self-managed VM.
That premium buys patching, automated backups, point-in-time recovery, and failover you don’t build or babysit. For most teams under ~50 engineers, the managed premium is cheaper than the on-call and DBA time it replaces, but it belongs in the estimate, not discovered on the first invoice.
Don’t forget the supporting cast: load balancers (~$20-30/month each plus traffic), DNS, monitoring, and log ingestion (log platforms commonly bill ~$0.50/GB ingested, chatty apps make this a real line).
Step 6: Worked example, 12 VMs, one database, 4 TB of files
A 40-person company moving two racks: 12 VMs (3 web, 4 app, 2 workers, 2 database, 1 utility), ~500 GB of hot database data, 4 TB of file storage, ~1.5 TB/month outbound traffic.
| Line item | Sizing after rightsizing | Monthly (on-demand) |
|---|---|---|
| Web tier | 3 × 2 vCPU/8 GB | $205 |
| App tier | 4 × 4 vCPU/16 GB | $560 |
| Workers | 2 × 4 vCPU/16 GB | $280 |
| Utility box | 1 × 2 vCPU/8 GB | $70 |
| Managed PostgreSQL (HA) | 4 vCPU/32 GB + 500 GB | $640 |
| Block storage | ~1.2 TB SSD | $100 |
| Object storage | 4 TB standard tier | $95 |
| Egress | 1.5 TB/month | $135 |
| Load balancer + NAT | 1 LB, 1 NAT + processing | $90 |
| Backups + snapshots | DB + volumes | $60 |
| Monitoring + logs | ~60 GB/month ingested | $80 |
| Subtotal (on-demand) | ~$2,315 | |
| 1-year commitments on the 24/7 baseline (≈ −35% on compute) | ~$1,925 | |
| +25% buffer → plan for | ~$2,400/month |
Note the shape: compute is barely half the total. The $465/month of egress, NAT, backups, and logging is exactly the part most first estimates omit, and why the invoice “surprises” people.
Step 7: Add the buffer, then validate
Add 20-30% to your subtotal for the unknowns: migration-period double-running (you’ll pay for both environments for weeks), non-production environments, and traffic you didn’t measure. Then validate with the provider’s own calculator (AWS Pricing Calculator, Azure Pricing Calculator, Google Cloud Pricing Calculator) using your inventory, and set billing alerts on day one, before anything ships. Our guide to avoiding bill shock covers what to lock down.
FAQ
How accurate can a pre-migration cloud cost estimate be?
With a real inventory and measured utilization, within about 20-30% of first-year actuals. Without measured utilization you’re guessing at sizes and can miss by 2x. The misses are almost always egress, inter-AZ traffic, logging, and backups, not compute.
Should I estimate using on-demand or discounted pricing?
On-demand first, everywhere. Then apply 1-year commitment discounts (30-45%) only to the steady 24/7 baseline you’re confident survives the first year. Committing to capacity you later shrink turns a discount into a liability.
What do first-time estimates most often forget?
Egress, NAT gateway processing, inter-AZ traffic, log ingestion, snapshot accumulation, and dev/staging environments. Together they typically add 20-35% on top of the compute-and-storage number.
Is the cloud cheaper than on-premise?
For spiky or growing workloads, usually, once you count hardware refresh, colo, power, and staff time. For flat, depreciated workloads, raw cloud infrastructure often costs more; the return is elasticity, managed services, and shedding datacenter operations.
Want a second pair of eyes on your estimate before you commit? Talk to a Webisoft cloud migration engineer, we’ll review your inventory and pricing assumptions and flag what the invoice will actually look like, free.
Frequently asked questions
How accurate can a pre-migration cloud cost estimate be?
With a real inventory and measured utilization data, within about 20-30% of the first year's actual spend. Without measured utilization you are guessing at instance sizes, and estimates routinely miss by 2x. The most common misses are egress, inter-AZ traffic, logging, and backup storage, not compute.
Should I estimate using on-demand or discounted pricing?
Estimate everything at on-demand rates first, then apply reserved-instance or savings-plan discounts (typically 30-45% for 1-year commitments) only to the baseline load you are confident will run 24/7 for a year. Committing to a discount on capacity you later shrink is how savings plans become a liability.
What do first-time estimates most often forget?
Data egress, NAT gateway processing fees, inter-AZ traffic, log ingestion and retention, snapshot and backup storage, and non-production environments. Individually each is small; together they commonly add 20-35% to the compute-and-storage number most people stop at.
Is the cloud cheaper than on-premise?
For spiky or growing workloads, usually yes once you count hardware refresh, colocation, power, and the staff time on-prem consumes. For flat, predictable, fully-depreciated workloads, the raw infrastructure line often costs more in the cloud, the payback is elasticity, managed services, and not running a datacenter.