Cloud Economics
Vercel vs AWS vs Railway: One SaaS Workload, Priced on Published Rates
Compare Vercel, AWS, and Railway against the same defined workload, applying documented allowances, credits, and minimum charges before interpreting a metered-rate total as an invoice estimate. This article uses historical June 2026 pricing inputs and a constructed SaaS profile. Runtime behavior, region, networking, and account-level terms can change the bill. Its comparison explains the cost structure rather than identifying a provider that is universally cheapest at every usage level.
Pricing pages show you the happy path and stay quiet about what happens once your usage stops matching their ideal customer: bandwidth, database scaling, the long tail of small services you turn on one at a time. The honest response is not to invent a year-long experiment with a single tidy total. It is to define one workload, price the parts the rate cards actually determine, and be explicit about the parts they cannot.
Everything below uses published self-serve rates, taken from each platform’s pricing page and mirrored in the ByteCosts cloud plan snapshot (generated 2026-06-06). The workload is a model, clearly labeled. No part of this is a measured bill.
The workload profile (modeled)
A fairly typical growing B2B SaaS app: auth, a dashboard, an API, background jobs, and file uploads.
- about 18,000 monthly active users
- about 42,000 API requests per day
- about 280 GB of egress per month
- a PostgreSQL database peaking near 48 GB
- background jobs for image resizing, email, and webhooks
- three environments: production, staging, preview
This is a constructed profile so the math is reproducible. Change any input and the numbers below move with it.
Gross marginal rate vs invoice-style estimate
This article separates gross marginal metered value from invoice-style estimate.
Gross marginal value multiplies usage by the published overage rate. It is useful for comparing unit economics after included allowances have already been consumed.
Invoice-style estimate applies documented included quotas, usage credits, free transfer allowances, plan minimums, and explicit assumptions.
Neither number is a billing guarantee. Real invoices can differ because of region, taxes, marketplace billing, account-level aggregation, support plans, committed-use discounts, network topology, retries, cache hit rate, logs, WAF, NAT, backups, and provider pricing changes after the last-checked date.
How each platform bills
The three platforms meter different things, which is the whole reason a single comparison number is misleading.
- Vercel. Pro is a $20/month seat plan with included allowances before overage and a $20 included usage credit. Last checked June 15, 2026, Pro includes 1 TB/month of Fast Data Transfer, 1 million function invocations, 4 hours/month of Active CPU, and 360 GB-hours/month of provisioned memory; overage is $0.15/GB for Fast Data Transfer and $0.0006 per 1,000 invocations (equivalent to $0.60 per million). Functions Active CPU, provisioned memory, and build minutes remain usage meters whose totals depend on measured code behavior (vercel.com pricing).
- Railway. Pro is a $20/month minimum usage plan with $20 of monthly usage credits, then resource usage. Last checked June 15, 2026, public meters include CPU at $0.00000772 per vCPU-second (about $20.01 per vCPU-month over a 30-day month), memory at $0.00000386 per GB-second (about $10.01 per GB-month), service egress at $0.05/GB, volume storage at $0.00000006 per GB-second (about $0.16 per GB-month), and object storage at $0.015/GB-month with free bucket egress. The credit can offset usage, so invoice impact depends on whether the credit is already consumed (railway.com pricing).
- AWS. Per-SKU pricing. Indicative us-east-1 rates: an m7g.large instance at about $59.57 a month, an RDS db.m7g.large at about $105.85 a month, gp3 storage at $0.115 per GB-month, and internet egress often modeled at $0.09/GB for the first public tier. AWS also provides 100 GB/month of free data transfer out to the internet across eligible services and regions, excluding China and GovCloud, and aggregates usage at the account level (aws.amazon.com pricing). Regional pricing varies.
Pricing the parts the rate cards fully determine
Two components can be computed from the published rates and the workload profile, but the invoice-style answer depends on allowances and credits.
| Component (workload value) | Gross marginal value | Included allowance or credit | Estimated overage / invoice-style estimate |
|---|---|---|---|
| Vercel Fast Data Transfer, 280 GB/month | $42.00 at $0.15/GB, only after included FDT is exhausted | Pro includes 1 TB/month FDT and included usage credit | $0 FDT overage if 280 GB is the account’s total monthly FDT |
| Vercel function invocations, 1.26M/month | about $0.76 at $0.0006/1K, equivalent to $0.60/M | Pro includes 1M invocations/month and included usage credit | about $0.16 invocation overage before credits |
| Railway service egress, 280 GB/month | $14.00 at $0.05/GB | Pro usage credit can offset usage | invoice impact depends on whether the credit is already consumed |
| AWS data transfer out, 280 GB/month | $25.20 at $0.09/GB | 100 GB/month free DTO across eligible services and regions, excluding China/GovCloud | about $16.20 if the free pool has not already been consumed elsewhere |
| Postgres storage, 48 GB | Railway about $7.46 at public volume rates; AWS about $5.52 at gp3 $0.115/GB-month | no app-platform allowance assumed here | invoice-style storage depends on chosen managed database and region |
The gross egress meter still shows a defensible spread: Railway’s per-GB service egress rate is lower than Vercel’s overage rate. But for this workload, Vercel’s 280 GB total Fast Data Transfer sits under the current Pro allowance, so the invoice-style FDT overage is $0. AWS has the inverse caveat: the public $0.09/GB tier gives a useful gross value, but the first 100 GB may be covered by the account-level free transfer pool.
Reproducible formulas
| Scenario | Formula | Result |
|---|---|---|
| Vercel FDT overage | max(0, 280 GB - 1024 GB) * $0.15/GB | $0 invoice-style FDT overage |
| Vercel FDT gross marginal | 280 GB * $0.15/GB | $42.00 after included FDT is exhausted |
| Vercel invocation overage | (1,260,000 - 1,000,000) / 1,000 * $0.0006 | $0.156, displayed as about $0.16 before credits |
| Vercel invocation gross marginal | 1,260,000 / 1,000 * $0.0006 | $0.756, displayed as about $0.76 |
| AWS transfer invoice-style | max(0, 280 GB - 100 GB) * $0.09/GB | $16.20 if the free pool has not been consumed elsewhere |
| AWS transfer gross marginal | 280 GB * $0.09/GB | $25.20 if the free pool is already exhausted |
| Railway 30-day memory equivalent | $0.00000386 (30 24 * 3600) | $10.00512/GB-month, displayed as about $10.01 |
| Railway 30-day CPU equivalent | $0.00000772 (30 24 * 3600) | $20.01024/vCPU-month, displayed as about $20.01 |
| Railway 30-day volume equivalent | $0.00000006 (30 24 * 3600) | $0.15552/GB-month, displayed as about $0.16 |
Compute: the rate is published, the quantity is yours
Compute is where a single total stops being honest, because the published rate is fixed but the quantity depends on how your app behaves.
- On AWS you choose instances. A 2 vCPU, 8 GB app instance (m7g.large) plus a managed db.m7g.large is about $59.57 plus $105.85, roughly $165 a month at the indicative rates, before storage and egress above.
- On Railway you pay for resource-hours. A service pinned at 2 vCPU and 8 GB run continuously would be about $40 of CPU plus $80 of RAM, near $120 a month, though autoscaling down when idle reduces that.
- On Vercel, functions bill on active CPU time. The 42,000 requests a day are about 1.26 million invocations a month. At the public $0.60/M rate that has a gross value near $0.76, but after the included 1 million invocations the overage is about $0.16 before credits. The active-CPU charge at $0.128 an hour still depends on how long each function runs, which the rate card cannot tell you without measuring your own code.
So even at the compute layer, two of three platforms publish a rate whose total you can only know after you run real traffic.
What the published rates cannot tell you
This is the part that makes a single twelve-month total dishonest rather than merely imprecise. The following are real costs that the self-serve pricing page does not let you compute in advance:
- AWS inter-availability-zone data transfer, NAT gateway egress, CloudWatch log and metric volume, WAF, and support-plan tiers. These depend on your architecture and traffic shape, not on a published per-unit number you can multiply.
- AWS region, CloudFront routing, RDS storage class, backup retention, NAT gateways, log volume, WAF, support plans, taxes, credits, and account-level transfer already consumed elsewhere.
- Vercel services outside the modeled meters, including extra seats, edge configuration, image optimization, build usage, function duration and memory, storage products, and any exhausted usage credit.
- Railway services outside the modeled meters, including databases, extra environments, storage, backups, autoscaling behavior, and whether the Pro credit has already been spent.
- The forty-plus small managed services that get switched on over a year on any of the three platforms.
- Per-request compute duration on serverless platforms, as shown above.
That unknowability is the actual finding. A pricing page gives you a defensible model for the parts it meters cleanly, and an honest “it depends” for the rest. Anyone who hands you a single all-in annual number for three platforms is either guessing or selling.
How to actually choose
At this scale, the spread between platforms on the computable parts is often smaller than two months of one engineer’s time, so optimize first for velocity and reliability, then for cost. Re-run this model with your own usage every few quarters. And remember that the biggest savings almost never come from switching providers; they come from looking honestly at what you are using and turning the expensive parts off.
Sources and method
What is measured here: every per-unit rate is a published vendor price, taken from the pages linked below and mirrored in the ByteCosts cloud plan snapshot (generated 2026-06-06, with AWS normalized to indicative us-east-1 SKUs). What is modeled: the workload profile and the instance-sizing choices are illustrative assumptions; the table separates gross marginal metered value from invoice-style estimates after known allowances. No twelve-month total is asserted, by design.
Evidence and last-checked dates
| Claim area | Source type | Source | Last checked | Notes |
|---|---|---|---|---|
| Vercel Pro allowances and overage meters | Official provider pricing plus docs | Vercel pricing and Pricing on Vercel | 2026-06-15 | Pro includes FDT, invocations, Active CPU, provisioned memory, and usage credit before overage. |
| Railway Pro credit and resource meters | Official provider pricing plus docs | Railway pricing and Understanding your bill | 2026-06-15 | $20 minimum usage covers the first $20 of resource usage; usage above the plan amount is overage. |
| Railway object storage and egress split | Official provider docs | Railway storage buckets | 2026-06-15 | Bucket egress is free; service egress is not. |
| AWS internet data transfer allowance | Official provider pricing | AWS EC2 on-demand pricing | 2026-06-15 | 100 GB/month free internet DTO is aggregated across eligible services and regions, excluding China and GovCloud. |
| AWS RDS and EBS examples | Official provider pricing | AWS RDS for PostgreSQL pricing and EBS pricing | 2026-06-15 | Region, engine, deployment mode, storage class, backup, and support choices can materially change invoices. |
- Vercel pricing (vercel.com), accessed June 15, 2026
- Pricing on Vercel (vercel.com), accessed June 15, 2026
- Railway pricing (railway.com), accessed June 15, 2026
- Railway billing docs (docs.railway.com), accessed June 15, 2026
- Railway storage buckets (docs.railway.com), accessed June 15, 2026
- AWS EC2 on-demand pricing (aws.amazon.com), accessed June 15, 2026
- AWS RDS for PostgreSQL pricing (aws.amazon.com), accessed June 15, 2026
- AWS data transfer pricing (aws.amazon.com), accessed June 15, 2026
- ByteCosts cloud plan snapshot, dataset in this repository, generated 2026-06-06. Compare platforms with your own workload in Scenario Studio.
Vercel vs AWS vs Railway: One SaaS Workload, Priced on Published Rates. ByteCosts. Updated 2026-09-05. https://bytecosts.com/blog/vercel-aws-railway-true-costs-2026/
Sources
- Vercel pricing
- Pricing on Vercel
- Railway pricing
- Understanding your bill
- Railway storage buckets
- AWS EC2 ondemand pricing
- AWS RDS for PostgreSQL pricing
- EBS pricing
- Vercel pricing
- Pricing on Vercel
- Railway pricing
- Railway billing docs
- Railway storage buckets
- AWS EC2 ondemand pricing
- AWS RDS for PostgreSQL pricing
- AWS data transfer pricing