1. What we measure
We measure on-demand, unblended, Linux compute pricing — the "rack rate" you pay with no commitments, reservations, or pre-payments. This is the fairest baseline for comparing providers and regions because it is the same pricing tier available to any new customer.
What we do NOT include in standard comparison pricing: data transfer / egress costs, support plan costs, Windows or licensed OS pricing, storage costs (except in the "Storage" workload type), or load balancer costs. Managed databases are not folded into the compute number; they are ranked on their own page (/databases/), on the basis in section 3, and object storage on /storage/, on the basis in section 4. GPU instances are ranked on /gpu/, on the basis in section 5.
Every number on the site carries a date and a provenance label. "live" means a script in the repository fetched it from the provider's price API on that date; "verified" means a person read it from the provider's public pricing page on that date; "estimate" means it comes from a published model or coefficient, not a measurement. Nothing on the site is sample data, and an unknown value is shown as unknown, never as zero.
- AWS compute: live, as of 2026-10-10. Source: AWS Price List Bulk API, AmazonEC2 regional offer files (https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/region_index.json).
- Azure compute: live, as of 2026-10-10. Source: Azure Retail Prices API (https://prices.azure.com/api/retail/prices).
- GCP compute: verified, as of 2026-10-10. Source: Google Cloud Compute Engine general-purpose and compute-optimized pricing pages (https://cloud.google.com/products/compute/pricing/general-purpose).
- GCP Arm and burstable prices: verified, as of 2026-10-10. Source: Google Cloud VM instance pricing page, E2 and C4A standard machine type tables (https://cloud.google.com/products/compute/pricing/general-purpose).
2. Instance equivalents
To compare fairly across providers, we normalize to equivalent compute capacity rather than identical SKUs. Each workload type maps to a "standard" instance in each provider:
| Workload | Spec | AWS | Azure | GCP | US East price |
|---|---|---|---|---|---|
| General purpose | 2 vCPU / 8 GB RAM | m5.large | Standard_D2s_v3 | n2-standard-2 | $0.0960/hr |
| Compute optimized | 4 vCPU / 8 GB RAM on AWS and Azure; GCP's C2 family has no 8 GB size, so c2-standard-4 carries 16 GB and is not like-for-like | c5.xlarge | Standard_F4s_v2 | c2-standard-4 | $0.1700/hr |
| Memory optimized | 2 vCPU / 16 GB RAM | r5.large | Standard_E2s_v3 | n2-highmem-2 | $0.1260/hr |
| General purpose, Arm | 2 vCPU / 8 GB RAM on Arm silicon (Graviton, Cobalt, Axion). Not offered in every region; a region without one is left out, never shown at the x86 price. | m7g.large | Standard_D2ps_v6 | c4a-standard-2 | $0.0816/hr |
| General purpose, burstable | 2 vCPU / 8 GB RAM with CPU credits (t3, B-series). Sustained full CPU is billed above the list price. Google has no credit-based type at this size, so GCP is left out of this ranking. | t3.large | Standard_B2s_v2 | none | $0.0832/hr |
| Storage | General purpose + 100 GB general-purpose SSD | m5.large + gp3 | Standard_D2s_v3 + Standard SSD | n2-standard-2 + pd-balanced | $0.1070/hr |
3. Managed database equivalents
The databases page ranks regions by the monthly cost of a 2 vCPU / 8 GB managed PostgreSQL or MySQL instance in a single zone, at 730 hours, plus 100 GB of the storage class each provider pairs with it, at the region's per-GB-month rate for that engine. Storage is a monthly rate, so the ranking is by the month rather than the hour; the $/hr column is the instance alone. Only Cloud SQL prices the two engines the same; AWS and Azure both price MySQL a few percent under PostgreSQL on the same instance. High availability, backups beyond the free allowance, provisioned IOPS and commercial licences are not included. The shapes match but the silicon does not: AWS is priced on its Graviton (Arm) instance, the cheapest 2 vCPU option RDS sells for these engines, while Azure Flexible Server and Cloud SQL offer no Arm equivalent and are priced on x86. Storage classes differ by provider, so the comparison is of what each provider sells at this size rather than of identical hardware.
- AWS managed database: live, as of 2026-10-10. Source: AWS Price List Bulk API, AmazonRDS regional offer files (https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonRDS/current/region_index.json).
- Azure managed database: live, as of 2026-10-10. Source: Azure Retail Prices API (https://prices.azure.com/api/retail/prices).
- GCP managed database: verified, as of 2026-10-10. Source: Google Cloud SQL pricing page, Enterprise edition tables (page parse) (https://cloud.google.com/sql/pricing).
| Engine | Spec | AWS | Azure | GCP | US East price |
|---|---|---|---|---|---|
| PostgreSQL | 2 vCPU / 8 GB RAM, single zone, + 100 GB gp3 / Premium SSD / SSD | db.m6g.large | General Purpose D2ds_v5 (2 vCore) | db-custom-2-8192 (Enterprise) | $128/mo |
| MySQL | 2 vCPU / 8 GB RAM, single zone, + 100 GB gp3 / Premium SSD / SSD | db.m6g.large | General Purpose D2ds_v5 (2 vCore) | db-custom-2-8192 (Enterprise) | $122/mo |
4. Object storage equivalents
The storage page ranks regions by what the volume you choose costs for a month, from 100 GB to 1 PB, at that region's own standard-class volume tiers: AWS and Azure charge less per GB above roughly 50 TB and again above 500 TB, so each band is billed at its own rate rather than the first rate throughout. 1 PB in AWS us-east-1 is therefore $21.6k a month, not a petabyte at the headline rate. The $/GB-mo column stays the first tier, because that is the rate the region advertises. Google publishes one rate per region with no tiers. All three providers bill in binary units while calling them GB, which is why nothing is converted: AWS and Azure band their tiers at 51,200 and 512,000, exactly 50 and 500 times 1024, and Google writes gibibyte. Converting Google alone would have made it 7.4% cheaper than it is and would have put three Google regions ahead of three Azure ones in Europe that are in fact cheaper.
S3 Standard spans at least three availability zones; regional Cloud Storage Standard spans at least two. Azure Hot LRS stores three copies in one datacentre. These have different fault tolerance, so the ranking is not a like-for-like resilience comparison. Azure Hot ZRS is not priced. Stored quantities use binary GB (GiB) across all three providers. Retrieval, early deletion, lifecycle transitions, inventory and replication are excluded.
Write and read requests are not in the ranking. They are listed per 1,000 operations so you can add your own counts: AWS and Azure publish those rates per region, while Google publishes one table for every region, so every GCP region carries the same pair. A region missing the standard-class storage rate is listed as unpriced and never priced at zero.
- AWS object storage: live, as of 2026-10-10. Source: AWS Price List Bulk API, AmazonS3 regional offer files (https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/region_index.json).
- Azure object storage: live, as of 2026-10-10. Source: Azure Retail Prices API (https://prices.azure.com/api/retail/prices).
- GCP object storage: verified, as of 2026-10-10. Source: Google Cloud Storage pricing page, Standard storage single-region table (page parse) (https://cloud.google.com/storage/pricing).
| Class | Spec | AWS | Azure | GCP | US East price |
|---|---|---|---|---|---|
| Standard storage | Held all month, priced band by band at the region's own volume tiers. The redundancy is not matched: AWS multi-AZ (3+ AZs); Azure LRS (single datacenter, 3 copies); GCP regional (2+ zones). | S3 Standard | Blob Storage Hot LRS (General Purpose v2) | Cloud Storage Standard (single region) | $0.0230/GB-mo |
| Requests, per 1,000 | Listed beside every region and never in the ranking: how many requests you run is a property of your workload, not of the region. Add them yourself from the rates shown. | PUT, COPY, POST, LIST and GET, SELECT | Write and Read operations | Class A and Class B (flat namespace) | $0.0050 write, $0.00040 read |
5. GPU instance equivalents
The GPU page ranks regions by the on-demand hourly list price of a whole GPU instance in one of three classes: one NVIDIA T4, one L4, or an eight-card H100 node. The price is the whole machine, GPUs included, and is not divided down to a per-card rate — the card count differs by class and none of these instances can be rented in part. The monthly figure is the same price for 730 hours. The classes are matched on the card rather than on host vCPU and RAM, which differ by provider, so a row compares GPU machines and not general-purpose VMs.
Availability is uneven and is reported rather than smoothed over. Two absences are distinguished: a provider that sells no comparable instance at all (Azure sells no L4 instance) and a provider that sells one but does not offer it in that region ("no g6.xlarge in this region"). Today T4 is priced in 54, L4 is priced in 28, H100 is priced in 25 of 60 regions. Reserved, spot, capacity-block and committed-use rates are not included, and a published price is not a guarantee of capacity: GPU supply is allocated per account and per region, and an H100 node usually needs a quota increase or a reservation before it will launch.
- AWS GPU instance: live, as of 2026-10-10. Source: AWS Price List Bulk API, AmazonEC2 regional offer files (GPU instances) (https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/region_index.json).
- Azure GPU instance: live, as of 2026-10-10. Source: Azure Retail Prices API (https://prices.azure.com/api/retail/prices).
- GCP GPU instance: verified, as of 2026-10-10. Source: Google Cloud accelerator-optimized and GPU pricing pages, joined with the documented GPU regions and zones (https://cloud.google.com/products/compute/pricing/accelerator-optimized).
| Class | Spec | AWS | Azure | GCP | US East price |
|---|---|---|---|---|---|
| T4 | 1 card, 16 GB of GPU memory, whole instance. 4 vCPU / 16 GB host on AWS; 4 vCPU / 28 GB host on Azure; 4 vCPU / 15 GB host on GCP. Priced in 54 of 60 regions. | g4dn.xlarge | Standard_NC4as_T4_v3 | n1-standard-4 + 1x NVIDIA T4 | $0.5260/hr |
| L4 | 1 card, 24 GB of GPU memory, whole instance. 4 vCPU / 16 GB host on AWS; 4 vCPU / 16 GB host on GCP. Priced in 28 of 60 regions. | g6.xlarge | none | g2-standard-4 | $0.8048/hr |
| H100 | 8 cards, 640 GB of GPU memory, whole instance. 192 vCPU / 2048 GB host on AWS; 96 vCPU / 1900 GB host on Azure; 208 vCPU / 1872 GB host on GCP. Priced in 25 of 60 regions. | p5.48xlarge | Standard_ND96isr_H100_v5 | a3-highgpu-8g | $55.0400/hr |
6. Normalisation — per-vCPU and per-GB rates
For the "Custom" workload type, we calculate an effective hourly price using per-vCPU-hour and per-GB-RAM-hour rates derived from the provider's instance pricing. This lets you size any workload — say, 6 vCPU / 32 GB — and see what it costs in every region.
For AWS and Azure the per-vCPU-hour and per-GB-hour rates are an ordinary least-squares fit of price = a × vCPU + b × GB over nine instance sizes across three families (general, compute and memory optimised), so the two unit prices are separated by instances with different RAM-to-vCPU ratios rather than guessed. The fit residual is recorded with the data. GCP publishes per-vCPU and per-GB rates directly. Today AWS us-east-1 works out at $0.03500/vCPU-hour and $0.00346/GB-hour. A custom shape is a model, not a quote; a region without unit rates is listed as unpriced for custom shapes.
7. Carbon intensity
Carbon intensity is measured in gCO2eq/kWh, grams of CO2 equivalent per kilowatt-hour of electricity consumed. Lower values mean cleaner power. Carbon: estimate, as of 2026-10-08. Source: Google region-carbon-info (GCP) and Cloud Carbon Footprint emissions factors (AWS, Azure) (https://github.com/GoogleCloudPlatform/region-carbon-info ; https://github.com/cloud-carbon-footprint/cloud-carbon-footprint). These are grid estimates with a date, not measurements of a data centre. The two sources are not the same vintage: Cloud Carbon Footprint has refreshed its AWS table more recently than its Azure table, so an AWS and an Azure region on the same grid can differ by a few tens of grams (Ireland 305 vs 279; London 305 vs 225). Treat cross-provider carbon comparisons as rough.
Values represent the regional grid average, not the specific datacenter. Provider electricity procurement and renewable-energy accounting can differ from the local grid mix; these estimates do not model those arrangements. Grid intensity figures here are a proxy for relative comparison, not a precise measure of provider emissions.
When "prefer low-carbon regions" is on, the ranked cost is multiplied by 1 + gCO2eq/kWh ÷ 1000, so a 400 g region carries a 40% penalty and an 8 g region under 1%. It is a relative preference, applied identically whether the table is ranked by hourly price or by total monthly cost. A region with no carbon figure is shown as unknown and ranked after those with a known carbon figure.
8. Region heuristic
The legacy region heuristic is not a probability, SLA or measure of pricing accuracy. It starts at 90, subtracts 5 for two AZs or 10 for one, subtracts 3 for IDs containing af-south or me-south, and adds 5 for a FedRAMP metadata flag. It does not measure uptime, maturity or freshness. Use provider service documentation and the explicit source dates for decisions.
A high score does not establish workload suitability or compliance. Verify the exact service, region, account eligibility and architecture with the provider before committing.
9. Update cadence
A scheduled workflow checks prices daily and updates one reviewable pull request. Its report highlights changes of 5% or more and lost coverage. Publication happens after review, CI and deployment; the schedule is not a guaranteed daily publication time. Failed fetches preserve the previous snapshot and its date. The public source-health endpoint and uptime check flag prices older than 45 days, including verified and carried-over values. GCP compute can be read from the published pricing tables without an API key; those rows are labelled verified, with their actual observation date.
- Region metadata: verified, as of 2026-06-01. Source: Provider region documentation, checked by hand (https://aws.amazon.com/about-aws/global-infrastructure/regions_az/ ; https://azure.microsoft.com/en-us/explore/global-infrastructure/geographies/ ; https://cloud.google.com/about/locations).
- Inter-region transfer: AWS live as of 2026-10-08 (AWS Price List Bulk API, AWSDataTransfer offer (InterRegion Outbound, first tier)); Azure live as of 2026-10-10 (Azure Retail Prices API); GCP live as of 2026-10-10 (Google Cloud network pricing page, inter-region data transfer table).
- Internet egress (first paid tier, shared by every product page): AWS live as of 2026-10-10; Azure live as of 2026-10-10; GCP verified as of 2026-10-10; derived from the provider files on every refresh.
- Managed databases: AWS live as of 2026-10-10 (AWS Price List Bulk API, AmazonRDS regional offer files); Azure live as of 2026-10-10 (Azure Retail Prices API); GCP verified as of 2026-10-10 (Google Cloud SQL pricing page, Enterprise edition tables (page parse)).
- Object storage: AWS live as of 2026-10-10 (AWS Price List Bulk API, AmazonS3 regional offer files); Azure live as of 2026-10-10 (Azure Retail Prices API); GCP verified as of 2026-10-10 (Google Cloud Storage pricing page, Standard storage single-region table (page parse)).
- GPU instances: AWS live as of 2026-10-10 (AWS Price List Bulk API, AmazonEC2 regional offer files (GPU instances)); Azure live as of 2026-10-10 (Azure Retail Prices API); GCP verified as of 2026-10-10 (Google Cloud accelerator-optimized and GPU pricing pages, joined with the documented GPU regions and zones).
- Carbon: estimate, as of 2026-10-08. Source: Google region-carbon-info (GCP) and Cloud Carbon Footprint emissions factors (AWS, Azure) (https://github.com/GoogleCloudPlatform/region-carbon-info ; https://github.com/cloud-carbon-footprint/cloud-carbon-footprint).
- Latency: estimate, as of 2026-06-01. Source: Hand-maintained round-trip estimates from seven hub cities, and a great-circle model for any pair (https://github.com/karshee/cloudregioncost/blob/main/data/pricing/README.md).
10. Egress and inter-region transfer
Internet egress is the provider's first paid tier per GB from the region (AWS: the first 10 TB; Azure: after the 100 GB monthly allowance; GCP: Premium Tier to North America). The monthly egress slider multiplies your volume by that reference rate, without account-wide free allowances or volume discounts. GCP rates are per GiB, applied to the entered GB as a conservative approximation. Other destinations can cost more, so this is not a universal egress quote.
Inter-region transfer rates, used by the placement optimiser, are the first-tier $/GB from a source region to a destination region of the same provider. AWS publishes a rate per region pair. Azure and GCP publish rates by continent pair; the data records the continent each region is mapped to and the page the matrix came from. GCP prices per GiB, which the site applies per GB; that overstates the cost by 7.4%, which is noted in the data. A missing pair is unknown, never zero.
11. Latency
Latency: estimate, as of 2026-06-01. Source: Hand-maintained round-trip estimates from seven hub cities, and a great-circle model for any pair (https://github.com/karshee/cloudregioncost/blob/main/data/pricing/README.md). The hub-city figures are typical round-trip times chosen by hand, not measurements, and are labelled as estimates wherever they appear.
Region-to-region latency, used by the placement optimiser, is estimated from great-circle distance: rtt_ms = base_ms + ms_per_km * great_circle_km. Light in fibre covers about 200 km per ms one way, so the round trip is 0.01 ms/km; real routes are about 40% longer than the great circle, giving 0.014 ms/km, plus a small fixed cost for the hops at each end.
12. Unknown values
A SKU a region does not offer, a rate a source does not publish, or a value a fetcher could not confirm is stored as null and shown as unknown. The ranking leaves such a region out of any comparison that needs that value and says how many it left out and why; exports write "unknown"; the optimiser refuses to cost a placement that would use an unknown rate and lists the rate by name instead. No saving is ever shown that cannot be priced.
13. What is NOT included
- Data transfer beyond what you enter — the egress slider and the optimiser price internet and inter-region transfer at first-tier rates; inter-AZ, VPC peering and CDN traffic are not modelled.
- Storage costs — except in the "Storage" workload type, which adds 100 GB of general-purpose SSD at the region's per-GB-month rate (gp3 / Standard SSD / pd-balanced).
- Managed service markups on the compute pages — managed PostgreSQL and MySQL have their own page (/databases/) and standard-class object storage its own (/storage/); GKE node pool management, Azure AKS overhead and database high availability (Multi-AZ, zone-redundant, regional) are not priced anywhere on the site.
- Matched storage redundancy: S3 Standard and regional Cloud Storage span multiple zones; Azure Hot LRS is confined to one datacentre. Azure ZRS and cross-region products are not priced.
- Support plan costs — AWS Business/Enterprise, Azure Developer/Standard, GCP Enhanced/Premium.
- Reserved/committed pricing — 1-year and 3-year reservations typically save 30–60%. All prices shown are on-demand for fair baseline comparison.
- Spot/Preemptible pricing — 60–90% cheaper than on-demand but with interruption risk. Not included as a "like-for-like" comparison.
- Windows OS licensing — all prices are for Linux. Windows instances are 20–50% more expensive depending on provider and region.
- Network load balancers, NAT gateways, VPN endpoints — significant cost in production but omitted here as they depend heavily on traffic patterns.