Show the math

Methodology

Where our numbers come from, how often we check them, and exactly how we map instance sizes, regions, and data egress across AWS, Azure, GCP, and DigitalOcean.

Pricing sources

Every price in the calculator and on our compare pages comes from the official provider pricing pages — not a third-party aggregator:

  • AWS — aws.amazon.com/ec2/pricing (and the equivalent per-service pricing pages)
  • Azure — azure.microsoft.com pricing pages
  • GCP — cloud.google.com pricing pages
  • DigitalOcean — digitalocean.com/pricing

We use on-demand, list prices only. We do not model spot/preemptible pricing, reserved instances, savings plans, committed-use discounts, or any negotiated/enterprise pricing. Most AWS, Azure, and GCP rows are cross-checked with Infracost's pricing data for reproducibility; DigitalOcean has no Infracost plugin, so those rows are verified by hand directly against digitalocean.com/pricing.

All prices were last verified 2026-07-15.

Update cadence

We re-check provider pricing periodically — roughly monthly, or sooner if a provider announces a pricing change we hear about. We don't poll pricing APIs in real time, so treat every number as accurate as of its verified date, not today.

Every calculator result includes a “How we calculated this” panel showing the instance, region, hours/month, egress assumption, and the exact verified date for that number. Each compare page shows the same “prices checked” date near the top. If you spot a stale price, the contact page is the fastest way to flag it.

Mapping rules

To keep comparisons apples-to-apples, every provider is mapped onto the same four size tiers, pinned to one canonical region each, and billed at a flat 730 hours/month:

Size tierSpecsAWSAzureGCPDigitalOcean
Small2 vCPU / 8 GiBm5.largeStandard_D2s_v5n2-standard-2General Purpose 2vCPU/8GB
Medium4 vCPU / 16 GiBm5.xlargeStandard_D4s_v5n2-standard-4General Purpose 4vCPU/16GB
Large8 vCPU / 32 GiBm5.2xlargeStandard_D8s_v5n2-standard-8General Purpose 8vCPU/32GB
XLarge16 vCPU / 64 GiBm5.4xlargeStandard_D16s_v5n2-standard-16General Purpose 16vCPU/64GB

Each provider is pinned to one canonical region for pricing: AWS us-east-1, Azure eastus, GCP us-central1. DigitalOcean prices flat/globally, labeled with nyc1 for reference only. All monthly figures use a flat 730 hours/month.

Shared vs. dedicated vCPU. AWS m5, Azure Dsv5, and GCP n2-standard are all dedicated-vCPU families. To keep DigitalOcean's comparison honest, we map it to DigitalOcean's General Purpose Droplets, which are also dedicated-vCPU — not DigitalOcean's cheaper “Basic” Droplets, which use shared vCPUs (CPU time isn't guaranteed). Comparing a shared-vCPU Basic Droplet against dedicated-vCPU instances on the other three providers would overstate DigitalOcean's price advantage, so Basic Droplets are deliberately excluded from every VM comparison on this site. The one exception is our DOKS worker-node default, which intentionally mirrors what the DigitalOcean console defaults a new Kubernetes node pool to (Basic Droplets) — called out explicitly on the Kubernetes comparison below.

Managed databases. AWS, Azure, and GCP relational database rows are mapped by matching vCPU/memory to the same Small/Medium/Large/XLarge tiers as compute, with storage priced separately per GB. DigitalOcean's Managed PostgreSQL/MySQL uses its single-node “Basic” plans (no HA standby) mapped by closest available vCPU tier — DO's memory-per-vCPU ratio is roughly half the other three providers', so the match is by vCPU, not an exact RAM match, and DO bundles storage into the plan price instead of billing it separately.

Managed Kubernetes. Node pricing uses each provider's Small-tier VM rate (AWS EKS on m5.large, Azure AKS on Standard_D2s_v5, GCP GKE on n2-standard-2, DigitalOcean DOKS on a Basic 2vCPU/4GB Droplet — DOKS defaults new node pools to Basic, unlike the dedicated- vCPU General Purpose Droplets used for the VM comparisons above). Control-plane fees are compared separately on our DOKS vs EKS vs AKS vs GKE page: DOKS is free by default (HA control plane +$40/mo flat), while EKS and GKE charge $0.10/cluster/hour (~$73/mo) and AKS offers a free tier alongside a $0.10/hour Standard tier.

App Platform / containers. DigitalOcean App Platform is mapped using its Shared-CPU container instance tier, since AWS Fargate, Azure Container Instances, and GCP Cloud Run are themselves shared-tenant, usage-billed compute models — Shared CPU is the closer analog, not App Platform's pricier dedicated-CPU tier.

Data egress

Outbound data transfer (“egress”) is modeled differently per provider because their pricing models are genuinely different, and ignoring that gap can flip which provider looks cheapest for bandwidth-heavy workloads:

  • DigitalOcean bundles a large pooled outbound-transfer allowance into every Droplet, scaling with Droplet size — 4,000 / 5,000 / 6,000 / 7,000 GB/month for the Small / Medium / Large / XLarge tiers. Overage above the bundled allowance is billed at $0.01/GB.
  • AWS, Azure, and GCP are modeled with a single simplified rate of $0.09/GB applied above a small monthly free tier (100 GB for AWS, 100 GB for Azure, 200 GB for GCP), rather than each provider's full tiered schedule. Their real published rates are roughly $0.09/GB (AWS, first 10 TB after 100 GB free), $0.087/GB (Azure, after 100 GB free), and $0.085–$0.12/GB depending on tier (GCP, after ~200 GB free). One flat rate keeps the comparison simple and directionally correct — the goal is showing whether bundled transfer changes the verdict, not cent-level hyperscaler egress accuracy.

Calculator vs. compare pages. The cloud cost calculator includes this egress model in every total, and each result card's “How we calculated this” panel shows the egress allowance used. Our /compare instance pages are VM price only and deliberately exclude egress — they compare raw compute list price, spec-for-spec, so bandwidth assumptions don't get baked into a simple two-column table. If your workload moves meaningful traffic, use the calculator, not a /compare page, to see the egress-adjusted total.

Limitations

SpendArk produces estimates, not quotes. Your actual bill will differ for reasons we don't model: reserved instance and savings-plan discounts, sustained-use discounts, committed-use contracts, each hyperscaler's real tiered egress schedule (we use one flat simplified rate — see above), support-plan fees, taxes, and your specific workload behavior (autoscaling, burst traffic, storage growth). Treat every number here as a directional baseline for comparing providers, then layer your own discounts and usage patterns on top before making a purchasing decision.

Affiliate disclosure: some DigitalOcean links on this site (including in the calculator results) are affiliate links — we may earn a commission at no extra cost to you. This does not change how we price or model DigitalOcean in any comparison; the numbers above are the same whether or not you use our link.