# Fly.io vs Google Cloud Run

Canonical: https://inetgeek.com/compare/fly-io-vs-google-cloud-run/

Every value below is read from Fly.io's and Google Cloud Run's own documentation. See https://inetgeek.com/methodology/ for how.

## At a glance

| Criterion | Fly.io | Google Cloud Run |
| --- | --- | --- |
| Pricing model | Usage-based, no compute plan tiers | Metered by resource, billed in 100 ms increments, with no monthly minimum. Two billing settings change what is counted: request-based charges CPU only while a request is being processed, instance-based charges for the whole instance lifecycle. Prices vary by region — the location list is split into Tier 1 and Tier 2 pricing — and the free tier is applied as a spending-based discount at Tier 1 rates. |
| Git deployment | Limited | Supported |
| Docker deployment | Supported | Supported |
| Persistent processes | Supported | Limited — instance-based billing keeps CPU allocated |
| Edge network | Limited | Limited — deploy per region, add a load balancer |
| Scales to zero | Supported | Supported |
| Autoscaling | Limited | Supported |
| Regions | 18 regions | 41 regions, counted from Cloud Run's own locations list — Google publishes the list rather than a total. They are split into Tier 1 and Tier 2 pricing, so the region chosen changes the bill as well as the latency. |

## Where they differ

### Pricing model

- Fly.io: Usage-based, no compute plan tiers ([source](https://fly.io/docs/about/pricing/))
- Google Cloud Run: Metered by resource, billed in 100 ms increments, with no monthly minimum. Two billing settings change what is counted: request-based charges CPU only while a request is being processed, instance-based charges for the whole instance lifecycle. Prices vary by region — the location list is split into Tier 1 and Tier 2 pricing — and the free tier is applied as a spending-based discount at Tier 1 rates. ([source](https://cloud.google.com/run/pricing))

### Git deployment

- Fly.io: Limited ([source](https://fly.io/docs/launch/continuous-deployment-with-github-actions/))
- Google Cloud Run: Supported ([source](https://docs.cloud.google.com/run/docs/continuous-deployment-with-cloud-build))

### Persistent processes

- Fly.io: Supported ([source](https://fly.io/docs/about/billing/))
- Google Cloud Run: Limited — instance-based billing keeps CPU allocated ([source](https://docs.cloud.google.com/run/docs/configuring/billing-settings))

### Autoscaling

- Fly.io: Limited ([source](https://fly.io/docs/reference/autoscaling/))
- Google Cloud Run: Supported ([source](https://docs.cloud.google.com/run/docs/about-instance-autoscaling))

### Regions

- Fly.io: 18 regions ([source](https://fly.io/docs/reference/regions/))
- Google Cloud Run: 41 regions, counted from Cloud Run's own locations list — Google publishes the list rather than a total. They are split into Tier 1 and Tier 2 pricing, so the region chosen changes the bill as well as the latency. ([source](https://docs.cloud.google.com/run/docs/locations))

## Which should you choose?

Pick Fly.io if Workloads that ship as Docker images and need placement in particular regions. Billing is purely usage-based with no plan tiers, which suits spiky or region-pinned traffic better than a flat monthly fee.

Pick Google Cloud Run if A container you already build, that should cost nothing when nobody is using it. Scales to zero by default and back up on request volume, with a 60-minute ceiling per request that most request-driven platforms do not offer.

Consider something else: Fly.io — You want a predictable flat bill rather than charges that track the resources provisioned for each app.

Consider something else: Google Cloud Run — You need a process that stays running between requests, or a disk that survives a deploy.

## Documented by only one

- Free tier: Google Cloud Run: Yes
- Egress over allowance: Fly.io: $0.02 per GB (North America / Europe); $0.04 per GB (Asia Pacific / Oceania / South America); $0.12 per GB (Africa / India)
- When you exceed a cap: Fly.io: No plan cap to exceed — Fly bills per second for provisioned resources. The only documented enforcement is unspecified automated scaling limits, which surface as an error message (platform-wide, all plans)
- Memory (entry plan): Fly.io: 256MB on shared-cpu-1x, the smallest Machine size ($2.02/month at the Amsterdam-region rate shown in the pricing table)
- File, inode or volume limit: Fly.io: 8 GB rootfs (deployed image) limit per Machine, platform-wide on all plans; exceeding it fails the image push at deploy time
- Max request duration: Google Cloud Run: 5 minutes by default, extendable to 60 minutes per request.
- CPU time limit: Fly.io: Platform-wide, per Machine size: shared vCPUs get a 5ms CPU quota per 80ms period (6.25%); performance vCPUs get the full 80ms. Quotas are shared across a Machine's vCPUs, and tasks are throttled for the rest of the period once the quota is reached.
- Streaming response limit: Fly.io: No duration or size ceiling documented. Streaming works, but Fly Proxy buffers responses before compressing them, so progressive server-side rendering needs Content-Encoding: none set on those responses.
- Managed connection pooling: Fly.io: Supported
- Containers: Google Cloud Run: Supported
- Scheduled jobs: Fly.io: Limited
- Persistent storage: Fly.io: Supported
- Managed databases: Fly.io: Supported
- SOC 2: Google Cloud Run: Covered under Google Cloud's core SOC 2 Type II reports, issued quarterly for Google Cloud and Google Workspace products generally.
- ISO 27001: Google Cloud Run: The Google Cloud Services ISMS holds an accredited ISO/IEC 27001 certification, audited by an independent third party.
- HIPAA: Google Cloud Run: Cloud Run is listed as a Covered Product under Google Cloud's HIPAA Business Associate Agreement.
- PCI DSS: Google Cloud Run: Cloud Run is listed among the individual Google Cloud products certified against PCI DSS via annual third-party audit.

## Questions this comparison answers

**Should I choose Fly.io or Google Cloud Run?**

Pick Fly.io if Workloads that ship as Docker images and need placement in particular regions. Billing is purely usage-based with no plan tiers, which suits spiky or region-pinned traffic better than a flat monthly fee.
Pick Google Cloud Run if A container you already build, that should cost nothing when nobody is using it. Scales to zero by default and back up on request volume, with a 60-minute ceiling per request that most request-driven platforms do not offer.
