Fly.io cut the price of its NVIDIA L40S in half to $1.25 per hour — and then announced the entire GPU product will be unavailable after August 1, 2026. If you built on it, the discount is not a deal. It is a countdown.
That paradox is the whole lesson. A platform that does not own the GPU supply chain can offer you a great price right up until it decides GPUs are not its business. The bill looked cheap. The migration you did not budget for is the real cost.
Here is what Fly.io actually sold, what the sunset means, what rented GPUs cost across the market right now, and why teams that need GPUs for more than an experiment end up wanting the hardware to be theirs — not borrowed by the hour from a multi-tenant control plane.
The deal: an L40S for $1.25 an hour — billed by the second
In its post "We're Cutting L40S Prices In Half", Fly.io described the L40S as "like two 4090s stapled together" and dropped the price to $1.25 per hour. Every docs page and pricing page in Fly's fleet now carries the same banner: GPUs are deprecated and will be unavailable after August 1, 2026.
The fine print matters for the math. Fly.io's resource pricing breaks a GPU Machine into two meters: the Machine itself (CPU, RAM, root volume) plus the attached GPU. The on-demand GPU line for the L40S was listed at $0.70 per GPU-hour, with the remainder of the $1.25 covering the Machine it is attached to. Both meters bill per second when the Machine is running, and Fly.io's scale-to-zero lets an idle GPU Machine stop — so you do not pay for idle wall-clock time.
Fly offered four GPU models behind that model:
| GPU | VRAM | On-demand GPU price | Typical use |
|---|---|---|---|
| A10 | 24 GB | $0.75/hr | Inference on smaller models, transcoding |
| L40S | 48 GB | $0.70/hr (→ $1.25/hr with Machine) | 30B-param FP16 or ~70B quantized inference |
| A100 40GB PCIe | 40 GB | $1.25/hr | Training and larger inference |
| A100 80GB SXM | 80 GB | $1.50/hr | Large-model training, high-memory inference |
For context, Koyeb's competing cut this year took its L40S from $1.55 to $1.20/hr (23% reduction) bundled with 15 vCPU and 64 GB RAM — a reminder that "price per GPU hour" rarely means the same bundle twice.
The L40S itself is an Ada Lovelace card with 48 GB VRAM — enough for roughly a 30-billion-parameter model in FP16, or a 70B-class model quantized to 4-bit for inference. It is the workhorse for teams that outgrew consumer 4090s but do not need an H100's 80 GB or its power bill.
The cut was real. It was also brief.
Then the sunset: deprecated after August 1, 2026
Every Fly.io GPUs page now opens with:
GPUs are deprecated and will be unavailable after August 1.
The community migration thread puts the hard date at July 31, 2026, with no GPU tier remaining at any size thereafter. The docs still describe GPU Machines and even FKS (Fly Kubernetes) GPU support, but they are documented as a surface in maintenance, not investment.
This is not a repricing. It is a product exit. After the date, there is no next tier to move to on Fly.io — no L4, no H100, no "contact sales." If your workload still needs a GPU, it needs a new home.
Fly.io has done similar scope reductions before — free allowances were removed for new orgs in October 2024, replaced by a one-time trial of two machine-hours or seven days — and earlier in 2026 the platform added new meters elsewhere (inter-region private networking at Machine rates from February, volume snapshots billed from January). GPUs going the other direction — cheaper, then gone — reads less like a pricing experiment and more like a portfolio decision: Fly.io is a global app platform that runs your container close to your users. GPUs were a parallel product that never became the core.
For tenants, the sequence stings. You tune autoscaling, image size, and cold-start behavior for a provider's specific Machine+GPU shape, verify that scale-to-zero actually reclaims dollars, and then discover the shape itself is leaving. The migration cost is not just picking a new hourly number — it is re-platforming.
What rented GPUs actually cost right now — and where $1.25 lands
Fly.io's $1.25 was never obviously cheap or expensive in isolation. That judgment requires the market around it. Aggregators that sample 30 to 60 providers daily put it in perspective:
| Provider / source | L40S price (per GPU-hour) | Notes |
|---|---|---|
| Vast.ai (community) | ~$0.67 | Cheapest spot, no SLA |
| RunPod Secure | $0.79–$0.99 | Single-GPU on demand |
| Beam | $0.72 | L40S PCIe, per-second, storage free |
| CUDO Compute | $0.87 | Single-GPU, vs AWS/GCP ~$1.76–$1.84 equivalent |
| Koyeb (post-cut) | $1.20 | Bundled with 15 vCPU / 64 GB RAM |
| Fly.io (post-cut, total) | $1.25 | GPU $0.70 + Machine, per-second, scale-to-zero |
| GetDeploying median | $1.54 | Median across 31+ providers, up ~8% since Aug 2025 |
| Modal (effective) | ~$1.95 | Serverless premium over raw GPU |
Two signals sit inside that table.
First, the L40S is not getting cheaper everywhere. The median on-demand L40S price rose about 8% from $1.42 to $1.54 per hour between August 2025 and early 2026. Koyeb and Fly.io cutting against that trend are outliers, not the trend.
Second, the spread is wide enough to be a strategy decision, not a rounding error. The gap from the cheapest community listing (~$0.67) to the median ($1.54) is more than 2x. Even among reputable on-demand providers, $0.72 (Beam) and $1.25 (Fly.io) and $1.84 (GCP implied) describe different products — per-second vs per-hour, with or without CPU/RAM/storage bundled, with or without scale-to-zero.
H100 pricing tells the same story at a higher tier: specialized clouds (RunPod, Lambda, CUDO) now list H100 around $2–$3 per hour, down 64–75% from the $8–$10 teams budgeted in late 2024, while hyperscaler implied single-GPU equivalents still print near $3.90–$12.29 for 8-GPU instances with networking bundled. The floor fell because supply caught up. The ceiling stuck because hyperscalers bundle a lot more than a GPU.
The self-hosted version of that same comparison is not measured in per-hour GPU rent at all. It is measured in a flat monthly hardware bill.
What owned hardware costs when the meter disappears
Hetzner lists dedicated GPU servers starting around $205 per month plus an $88 setup fee, bare metal only — no per-second on-demand GPU. That is not a Cloud VM you scale to zero. It is a machine you own for the month whether it is idle or saturated.
The math flips depending on utilization — and that is exactly why it matters:
| Profile | Fly.io L40S at $1.25/hr | Cheapest on-demand L40S (~$0.70–$0.99/hr) | Hetzner GPU bare metal (~$205/mo) |
|---|---|---|---|
| Bursty / dev — 2 hr/day, 20 days/mo (40 hr) | $50 | $28–$40 | $205 (4–7x more) |
| Steady inference — 8 hr/day, 30 days (240 hr) | $300 | $168–$238 | $205 (break-even to 1.5x cheaper) |
| Always-on — 24/7 (730 hr) | $913 | $511–$723 | $205 (2.5–4.4x cheaper) |
At low utilization, per-second renting wins — especially with scale-to-zero. At high utilization, the flat box wins by multiples. The crossover for Fly.io's number sits around 160–165 hours per month (~5.5 hours per day average). Run your inference fleet longer than that and you are paying a premium for the privilege of not owning the machine.
A production vignette makes it concrete: Spheron's workload analysis found an L40S on demand at $17.28 per day beats GPT-4o API costs at scale only once a team passes roughly 500 inference runs per day — the point where self-hosted inference on that same L40S becomes cheaper than paying per token to a provider. The threshold is not about liking one vendor more. It is about whether your workload is spiky or sustained.
Add capacity risk to the cost risk. Hetzner has spent much of 2026 warning of "limited availability" on specific cloud lines due to component shortages — the same DRAM squeeze behind its three price adjustments this year. Owning hardware does not make hardware infinite. It does make the constraint visible and plannable — you can hold headroom, spread across locations, or pick a second provider — instead of discovering a product sunset via a docs banner.
Why a PaaS sunsets GPUs even after cutting the price
It is tempting to read "price cut then deprecation" as incoherence. It is usually portfolio focus.
Running GPUs well is not the same business as running a global app platform. It requires a different supply chain (sourcing, failure rates, power and cooling per rack), a different scheduler (bin-packing large PCIe devices, handling CUDA driver and VRAM topology), and a different support surface (driver versions, vLLM/Ollama compatibility, model-specific performance). Fly.io's edge is per-second Machines, AnyCast networking, and a developer experience that makes fly deploy feel like git push. GPUs reuse that chassis but do not extend it.
When a platform halves a price, it is often clearing inventory, improving utilization of hardware it already bought, or testing elasticity before deciding whether to recommit. When it then deprecates, it is saying the test did not justify the next purchase order. The customer sees a great deal; the platform sees a SKU that did not earn its operational tax.
That pattern is not Fly.io-specific. The same blog-TODO that flagged this topic also tracks Railway, Render, and Fly.io shuffling plan names and meters in early 2026 — free tiers disappearing, workspace restructures, per-service multiplication. Each change made some workloads cheaper and some abruptly more expensive. GPUs are just the sharpest version: there is no "slightly more expensive tier" after deprecation. There is no tier.
For a team that needs inference or fine-tuning to be a durable part of the product — not a demo that scales to zero between press hits — that distinction is the whole evaluation rubric.
A framework: when to rent the GPU and when to own the box
No single hourly number answers "should I self-host GPUs." Utilization, latency, and sovereignty do.
Rent per second when:
- Usage is bursty or unpredictable — a few hours a day, heavy autoscaling, long idle tails where scale-to-zero reclaims real dollars.
- You are validating a model or a pipeline, not serving it as the product.
- You need many GPU types briefly (A10 today, H100 tomorrow) and do not want to pick one SKU for the quarter.
Specialized GPU clouds (RunPod, Vast.ai, Beam, CUDO) now offer L40S around $0.70–$0.99 and H100 around $2–$3 with per-second billing and no cold-start or pull fees. They are the current floor for experimentation.
Own the box when:
- Sustained utilization exceeds ~160 hours per month per GPU — the Fly.io crossover; lower for cheaper providers, but the same shape.
- You need 24/7 inference, fine-tuning, or batch jobs where "scale to zero" is not the workload — "stay up" is.
- You want flat economics you can forecast — a $205 Hetzner GEX-class server plus your own orchestration, not a per-GB, per-second, per-snapshot invoice that adds two new lines next quarter.
- Sovereignty or region control matters — owned Hetzner, Scaleway, or OVHcloud hardware in an EU jurisdiction clears procurement bars that a US-controlled multi-tenant GPU platform cannot.
Self-hosting does not mean building a GPU cloud from scratch. The pattern that has replaced "manage the box you already have" tools (Coolify, Dokploy, CapRover) for teams that outgrow one server is fleet provisioning through Cluster API — declarative MachineDeployment lifecycle, not manual node setup — so adding a second GPU node is the same API call as adding the first. That is the seam Fly.io's single-Machine GPU model never crossed: a good place to run one GPU container is not a fleet manager.
The checklist before you commit to a rented GPU product is short:
- Date the product's commitment. Is there a public roadmap for the next GPU generation, or is the last blog post a price cut with no capacity plan behind it?
- Price the whole Machine. GPU-hour plus CPU, RAM, volume, egress, NAT, snapshots, and inter-region traffic — not just the bold GPU number.
- Model your utilization. Plot your workload's real hours-per-month, not its peak hour. The crossover moves fast.
- Price the exit. How many hours to re-platform images, cold-start tuning, and autoscaling rules if the SKU disappears?
Fly.io's answer to that checklist right now is unusually honest: great price, clear end date, no successor SKU. That honesty is useful. It makes the next decision easier.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. For GPU workloads, the same principle applies: own the fleet, keep the API, skip the per-second GPU meter that can become a deprecation notice. Star the repo on GitHub or deploy your first app today.
Sources
- Fly.io — "We're Cutting L40S Prices In Half" (L40S at $1.25/hr, described as half price)
- Fly.io Docs — GPUs overview and Resource Pricing (GPU Machine = Machine price + GPU price; A10 $0.75, L40S $0.70, A100 40G $1.25, A100 80G $1.50; per-second billing; GPUs deprecated and unavailable after August 1)
- Fly.io Community — GPU migration thread: GPUs deprecated as of July 31, 2026, no GPU tier remains
- Koyeb — Serverless GPU price cuts (L40S $1.55→$1.20, 23% reduction, bundled specs)
- GetDeploying — L40S Cloud Pricing (median $1.54/hr, up 8% since Aug 2025, 31+ providers sampled)
- CUDO Compute — H100 vs A100 vs L40S benchmarks (L40S $0.87 CUDO vs GCP ~$1.84, Azure ~$1.76)
- Beam / Modal — 2026 GPU pricing comparisons (Beam L40S $0.72, Modal ~$1.95 effective)
- DigitalOcean Resources — Hetzner GPU server pricing (from ~$205/mo + $88 setup, dedicated only)
- Data Center Knowledge — GPU rental price compression note (May 2026)