Skip to content
inetGeek

Fly.io vs Google Cloud Run

SEPT 2026 audit

A comparison of Fly.io and Google Cloud Run built from values read directly from each provider's own documentation, with the source recorded against every figure.

Updated 25 criteria comparedSources last checked

The short answer

Choose 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.

Editorial · Palash Bagchi · approved

Choose 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.

Editorial · Palash Bagchi · approved

Consider something else if…

  • Fly.io: You want a predictable flat bill rather than charges that track the resources provisioned for each app.
  • Google Cloud Run: You need a process that stays running between requests, or a disk that survives a deploy.

5 sourced criteria separate them — see where, with sources, below.

No affiliate links, sponsored placements or paid rankings appear on this site. Ordering follows the sourced data and the stated criteria.

01.

At a glance.

CriterionFly.ioGoogle Cloud Run
Pricing
Pricing modelUsage-based, no compute plan tiersMetered 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.
Deployment
Git deployment
Limited
Supported
Docker deploymentSupportedSupported
Infrastructure
Persistent processes
Supported
Limited — instance-based billing keeps CPU allocated
Edge networkLimitedLimited — deploy per region, add a load balancer
Scales to zeroSupportedSupported
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.

Only criteria both providers publish appear here; a tinted cell marks a real difference. Criteria only one of them documents are listed below, and an absence there means we found no source — not that the feature is missing. How we source this.

The small bar above a value is inetGeek's own lean toward that side — computed from the same facts shown, never a number the provider published. See the picker below "The short answer" to weigh only the criteria you care about.

02.

Where they differ.

Pricing model

Fly.io
Usage-based, no compute plan tiers
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.
Sources (2) →
  • Fly.io pricing ↗

    “Plans get complicated, so we just charge based on usage. Billing is based on the resources provisioned for your apps, pro-rated for the time they are provisioned.”

    Read 2026-09-05 · official docs

  • Cloud Run pricing — Google Cloud ↗

    “Cloud Run charges you only for the resources you use, rounded up to the nearest 100 millisecond. Your total Cloud Run bill will be the sum of the resource usage in the pricing table after the free tier is applied. [...] Cloud Run pricing depends on the selected region. Pricing for Cloud Run services also depends on the billing configuration. [...] The free tier is applied as a spending based discount using Tier 1 pricing.”

    Read 2026-09-09 · official pricing

Git deployment

Fly.io
Limited
Google Cloud Run
Supported
Sources (2) →

Persistent processes

Fly.io
Supported
Google Cloud Run
Limited — instance-based billing keeps CPU allocated
Sources (2) →
  • Billing — Fly Docs ↗

    “stopped or suspended Machines are billed based on their root file system (rootfs) usage per second (the time they spend in the `stopped` or `suspended` state) by $0.15 per GB per month”

    Read 2026-09-07 · official docs

  • Billing settings for Cloud Run services — Google Cloud Documentation ↗

    “With request-based billing, CPU is only allocated during request processing. With instance-based billing, CPU is allocated for the entire container instance lifecycle. [...] Instance-based billing can be useful for running short-lived background tasks and other asynchronous processing tasks. This setting was previously called CPU always allocated.”

    Read 2026-09-09 · official docs

Autoscaling

Fly.io
Limited
Google Cloud Run
Supported
Sources (2) →
  • Autoscaling · Fly Docs ↗

    “Autoscaling adjusts the number of running or created Fly Machines dynamically. We support two forms of autoscaling: Autostop/autostart Machines and Metrics-based autoscaling. [...] Fly Proxy autostop/autostart starts and stops Machines based on load; Machines are never created or deleted. [...] The metrics-based autoscaler scales your application based on any metric. You deploy the autoscaler as an app in your organization.”

    Read 2026-09-05 · official docs

  • About instance autoscaling in Cloud Run services — Google Cloud Documentation ↗

    “By default, each Cloud Run revision is automatically scaled to the number of instances needed to handle incoming requests, events, or CPU utilization. [...] Cloud Run adjusts instance counts to keep average CPU and concurrency within target thresholds.”

    Read 2026-09-09 · official docs

Regions

Fly.io

18 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.

Sources (2) →
  • Fly.io regions ↗

    “You can host your apps in any of the following regions — including ams (Amsterdam, Netherlands), nrt (Tokyo, Japan) and syd (Sydney, Australia).”

    Read 2026-09-05 · official docs

  • Cloud Run locations — Google Cloud Documentation ↗

    “Each Cloud Run resource resides in a region. [...] Subject to Tier 1 pricing asia-east1 (Taiwan) asia-northeast1 (Tokyo) asia-northeast2 (Osaka) asia-south1 (Mumbai, India) asia-southeast1 [...] northamerica-northeast2 (Toronto) southamerica-east1 (Sao Paulo, Brazil) southamerica-west1 (Santiago, Chile) us-west2 (Los Angeles) us-west3 (Salt Lake City) us-west4 (Las Vegas)”

    Read 2026-09-09 · official docs

When these numbers change, hear about it. Sources are re-checked monthly; a repricing goes out as a short note.

Confirm by email; unsubscribe from any issue. Your address goes to Kit and nowhere else — what we do with it.

03.

Documented by only one.

These criteria are published by one provider and not the other. An absence here means we have not found a source, not that the feature is missing.

Free tierGoogle Cloud Run: Yes
Egress over allowanceFly.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 capFly.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 limitFly.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 durationGoogle Cloud Run: 5 minutes by default, extendable to 60 minutes per request.
CPU time limitFly.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 limitFly.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 poolingFly.io: Supported
ContainersGoogle Cloud Run: Supported
Scheduled jobsFly.io: Limited
Persistent storageFly.io: Supported
Managed databasesFly.io: Supported
SOC 2Google Cloud Run: Covered under Google Cloud's core SOC 2 Type II reports, issued quarterly for Google Cloud and Google Workspace products generally.
ISO 27001Google Cloud Run: The Google Cloud Services ISMS holds an accredited ISO/IEC 27001 certification, audited by an independent third party.
HIPAAGoogle Cloud Run: Cloud Run is listed as a Covered Product under Google Cloud's HIPAA Business Associate Agreement.
PCI DSSGoogle Cloud Run: Cloud Run is listed among the individual Google Cloud products certified against PCI DSS via annual third-party audit.
04.

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.

Provider pages

Related comparisons

Every page here is sourced and dated.