Fly.io Pricing Explained: Machines, Sprites, and Real Costs
Eli Mernit8 min read
Fly.io charges for the resources you use, with no monthly platform fee. A running Machine bills by the second at its CPU/RAM preset price, from $2.19 per 30 days for a shared-cpu-1x with 256MB in Ashburn to $528.02 for a performance-16x. Stopped Machines bill $0.15 per GB of root filesystem a month. Volumes, egress, dedicated IPv4 and support are billed separately.
The sections below cover each charge, what common workloads cost, and how Fly Machines compare with Beam VMs for agent and dev-box workloads.
How Fly.io pricing works
Fly.io bills each organization for what it provisions, pro-rated by the second for Machines and by the hour for volumes. There are no plans to pick. New organizations are on Pay As You Go, every organization needs a credit card on file, and the pricing page says invoices under $5 are waived.
The bill has five parts:
- Compute: Machines while they run, and Sprites while they're active.
- Storage: root filesystems of stopped Machines, volumes and volume snapshots.
- Network: outbound data, cross-region private traffic, dedicated IPv4 and static egress IPs.
- Managed services: Managed Postgres and extensions such as Tigris and Upstash, billed at the provider's list price.
- Support: optional plans from $29 a month.
Image builds with Depot or Fly builders, and registry storage, are free for now. Fly.io's docs say it will give advance notice before charging for them.
Fly Machines prices by preset
A Machine's price is a named CPU preset plus any extra RAM. Fly's pricing docs give the formula. A shared vCPU costs $0.0000008465 a second (about $0.0030 an hour) and includes 256MB of RAM. A performance vCPU costs $0.000012732 a second (about $0.0458 an hour) and includes 2GB. Each extra GB of RAM is $0.000002316 a second, or $6.00 per 30 days.
These are Ashburn (iad) and Secaucus (ewr) prices, the cheapest regions:
| Preset | Included RAM | Per hour | Per 30 days |
|---|---|---|---|
| shared-cpu-1x | 256MB | $0.0030 | $2.19 |
| shared-cpu-1x | 1GB | $0.0093 | $6.70 |
| shared-cpu-2x | 2GB | $0.0186 | $13.39 |
| shared-cpu-4x | 1GB | $0.0122 | $8.78 |
| performance-1x | 2GB | $0.0458 | $33.00 |
| performance-2x | 4GB | $0.0917 | $66.00 |
| performance-4x | 8GB | $0.1833 | $132.01 |
| performance-8x | 16GB | $0.3667 | $264.01 |
| performance-16x | 32GB | $0.7334 | $528.02 |
The 1GB and 2GB shared rows include extra RAM at the $6.00 rate. Fly's monthly figures assume 30 days of runtime, so a Machine that runs all of a 31-day month costs a little more.
Other regions cost more. Fly's region table uses a multiplier on the Ashburn price: Frankfurt is about 15% higher, London and Paris about 13%, Singapore and Sydney about 27%, Tokyo about 31%, and São Paulo about 62%.
Shared vs performance CPUs on Fly.io
The two CPU types run on the same hardware and differ in how much CPU time they get. A shared vCPU has a baseline quota of 5ms in every 80ms period (6.25%), plus a burst balance of up to 500 seconds for spikes. A performance vCPU gets the full period. If a shared Machine uses up its burst balance, the scheduler throttles it back to the baseline.
That makes shared presets a good fit for web apps that sit idle between requests, and a poor fit for builds, test suites or agents that keep the CPU busy for minutes at a time. For sustained work, price the performance preset.
What stopped and suspended Machines cost
A stopped or suspended Machine is billed only for its root filesystem: $0.15 per GB per 30 days, pro-rated by the second. Fly's billing docs give the example of a Machine with 1GB of rootfs stopped for 10 days costing $0.05.
The catch is that the root filesystem is ephemeral. Fly's volume docs say root filesystems "should only be used for temporary data" that can be rebuilt on deploy or restart. Anything that has to persist, such as a database, a cloned repo or an agent's working directory, goes on a volume:
| Storage | Price | Billed on |
|---|---|---|
| Stopped or suspended Machine | $0.15/GB per 30 days | rootfs size |
| Volume | $0.15/GB per 30 days | provisioned capacity, attached or not |
| Volume snapshots | $0.08/GB per 30 days | data stored; first 10GB free each month |
Daily snapshots with 5-day retention are on by default for new volumes. Suspend keeps a memory snapshot, but Fly's Machines API says the next start "will attempt (but is not guaranteed)" to resume from it rather than boot cold.
Fly.io Sprites pricing
Sprites are Fly's persistent microVMs for AI agents, dev environments and untrusted code. They bill differently from Machines: you pay for CPU time actually used and memory actually used while the Sprite is active, not for an allocated size.
| Resource | Rate |
|---|---|
| CPU time (measured by cpu.stat) | $0.0385 per CPU-hour |
| Memory (actual usage) | $0.021875 per GB-hour |
| Hot storage, while awake | $0.000683 per GB-hour ($0.50 per GB-month) |
| Cold storage, until deleted | $0.000027 per GB-hour ($0.02 per GB-month) |
A Sprite pauses about 30 seconds after activity stops. Compute billing stops while it's paused, first warm (memory kept, 100 to 500ms to resume) and later cold (processes restart). Each Sprite runs with 8 vCPUs and 100GB of storage. Fly's docs say you can't set or resize those, and memory is managed by the platform.
Usage-based metering works in your favor when an agent spends most of its time waiting on a model. It's harder to forecast, because the bill depends on how hard the code inside works rather than on a size you chose.
Network, IP and support charges on Fly.io
Inbound data is free, and so is traffic between Machines in the same region. The rest:
| Item | Price |
|---|---|
| Outbound data, North America and Europe | $0.02/GB |
| Outbound data, Asia Pacific, Oceania, South America | $0.04/GB |
| Outbound data, Africa and India | $0.12/GB |
| Cross-region private traffic | $0.006 to $0.050/GB by region group |
| Dedicated IPv4 | $2/month (shared IPv4 and IPv6 are free) |
| Static egress IP | $0.005/hour, about $3.60/month |
| SSL certificates | $0.10/month per hostname after the first 10; $1/month per wildcard |
| Managed Postgres | $38/month (Basic) to $1,922/month (Performance), plus $0.28/GB storage |
| Support | $29 Standard, $199 Premium, from $2,500 Enterprise |
Cross-region traffic is billed in both directions, each at the rate of the region it leaves. Older organizations that haven't switched to granular data transfer pricing pay the internet egress rate for it instead.
Fly.io reservation blocks
Fly sells reserved compute at a 40% discount. You pay a year up front and get a monthly credit for one CPU class in one region: $36 a year buys $5 a month of shared Machine usage, and $144 a year buys $20 a month of performance usage, with larger blocks at the same ratio. The credit doesn't roll over and covers only CPU and extra RAM, not storage or bandwidth.
What common workloads cost on Fly.io
These use Ashburn prices and a 30-day month. Each row lists the inputs so you can swap in your own.
| Workload | Configuration | Monthly cost |
|---|---|---|
| Background worker, 24/7 | shared-cpu-1x, 256MB, 720 h | $2.19 |
| Small web app | shared-cpu-2x 2GB, 720 h ($13.39) + 10GB volume ($1.50) + dedicated IPv4 ($2) + 50GB egress ($1.00) | $17.89 |
| Always-on agent, light CPU | shared-cpu-2x 4GB, 720 h ($25.40) + 20GB volume ($3.00) | $28.40 |
| Always-on agent, steady CPU | performance-2x 4GB, 720 h ($66.00) + 20GB volume ($3.00) | $69.00 |
| Part-time dev box | performance-4x 8GB, 88 h ($16.13) + 50GB volume ($7.50) + 5GB rootfs stopped for 632 h ($0.66) | $24.29 |
The dev box assumes 4 hours a day on 22 workdays, stopped the rest of the time. The volume is the largest line once usage drops, because it bills on provisioned size whether the Machine runs or not.
Is there a Fly.io free tier?
No. New organizations have no free tier or monthly allowance. New accounts get a free trial of $1 in credit for Machines, Sprites and Managed Postgres. It lasts 7 days or until it's used up, and it doesn't need a credit card. A few things stay free after the trial: 10GB of volume snapshots a month, the first 10 single-hostname certificates, inbound data, shared IPv4 and IPv6. Organizations still on Fly's discontinued legacy plans keep the allowances those plans included.
Fly also runs a startup program with up to $15,000 in credit for eligible early-stage companies.
Fly.io GPU pricing
Fly.io no longer documents GPU Machines. Its GPU docs URL now redirects to a company blog post titled "We Were Wrong About GPUs", and GPU presets aren't on the current pricing pages. If you need GPUs alongside CPU machines, you'll need another provider for that part of the workload.
On Beam, GPUs run in sandboxes and deployed endpoints: serverless RTX 4090s at $0.69 an hour and RTX 5090s at $1.09, billed by the millisecond. On-demand machines start at $1.83 an hour for an H100 with 26 vCPU, 200GB of RAM and a 1TB NVMe drive included.
Fly Machines vs Beam VMs for agent workloads
Fly is cheaper for small web apps that run all month, and its performance CPUs are cheaper than Beam's Performance tier per vCPU. Beam VMs fit better when a machine sits idle most of the day and has to come back exactly as you left it. The root disk persists across stop and start, pause keeps RAM and running processes, and storage isn't billed yet.
Beam VMs bill per second on a CPU tier you choose. Performance ($0.05 per vCPU-hour plus $0.01 per GiB-hour) has no CPU sharing. Shared ($0.011 plus $0.0055) uses shared vCPUs, up to 8 vCPU and 16 GiB. Spot ($0.0063 plus $0.00135) uses spare capacity and can be interrupted with 30 seconds' notice. New accounts default to Performance. Paused and stopped VMs have no compute charges.
| Fly Machines | Beam VMs | |
|---|---|---|
| 2 vCPU / 4GB, 720 h, steady CPU | $66.00 (performance-2x) | $100.80 (Performance) |
| 2 vCPU / 4GB, 720 h, light CPU | $25.40 (shared-cpu-2x, 6.25% baseline) | $31.68 (Shared) or $12.96 (Spot) |
| 4 vCPU / 8GB, 88 h, stopped otherwise | $16.13 + $7.50 volume + $0.66 rootfs = $24.29 | $24.64 (Performance) or $7.74 (Shared) |
| Disk that survives a restart | Volume, $0.15/GB on provisioned size | 50 GiB root disk; storage not billed yet |
| Idle with memory kept | Suspend; resume not guaranteed | Pause; resume restores RAM and processes |
| Outbound data | $0.02 to $0.12/GB | No egress fees |
| GPUs | Not offered | Sandboxes, endpoints, on-demand machines |
Beam has published planned storage pricing of $0.0001 per GB-hour of data stored, about $0.07 per GB for a 720-hour month, which would cover retained VM disk, volumes and snapshots. Fly also has the edge for apps that need to run close to users in many regions.
Here's the dev-box setup from the table on a Shared VM. It pauses after five idle minutes and wakes when you connect:
beam vm new devbox --cpu-tier shared --cpu 4 --memory 8192
beam vm update devbox --ttl 300 --idle-action pause --auto-resume
beam vm ssh devboxCPU tiers need beam-client 0.2.236 or later. The Developer plan is $20 a month with $20 of usage credits and allows 30 vCPUs running at once across VMs, sandboxes and serverless apps, which is seven default 4-vCPU VMs. For more on the isolation model, see what a microVM is. The virtual machines page covers forking, desktops and SSH.
If you're comparing agent sandboxes rather than whole VMs, the E2B pricing breakdown and the stateful sandbox comparison cover the per-second options. For classic app hosting, see the Heroku alternatives roundup.
FAQ
How much does Fly.io cost per month?
It depends on the Machines and extras you run. The smallest always-on Machine, shared-cpu-1x with 256MB in Ashburn, is $2.19 per 30 days. A small web app with a volume, a dedicated IPv4 and some egress runs about $18, and Fly's own example of a web app with Managed Postgres Basic comes to $43.67.
Does Fly.io charge for stopped Machines?
Yes, but only for storage. A stopped or suspended Machine costs $0.15 per GB of root filesystem per 30 days, and any attached volume keeps billing on its full provisioned size.
Is Fly.io billed per second?
Machines are billed per second while they run, and stopped-Machine storage is billed per second too. Volumes and snapshots are pro-rated by the hour. Sprites are metered on CPU and memory actually used while active.
What's the difference between shared and performance CPUs?
A shared vCPU gets a 6.25% baseline of CPU time with bursts to 100% from a balance of up to 500 seconds. A performance vCPU gets the whole core all the time. Performance costs about 15 times more per vCPU but includes 2GB of RAM instead of 256MB.
Does Fly.io have GPUs?
Not anymore, going by its docs. The GPU documentation redirects to a blog post saying that bet didn't pay off, and the pricing pages list no GPU presets.
Is Fly.io cheaper than Beam?
For always-on web apps and steady CPU work, usually yes: a performance-2x with 4GB is $66.00 a month, against $100.80 for the same size on Beam's Performance tier. For machines that are idle most of the day, Beam's pause, persistent root disk and Shared or Spot tiers often come out lower, as the dev-box row in the comparison table shows.
Price your own workload
Create a Beam account and run the commands above to see a paused VM's bill against your Fly.io invoice. Full rates are on the Beam pricing page.
