Infra Atlas · Decisions

Cloud Run or App Engine Flexible?

Two ways to run containers on Google Cloud — and Google's own recommended default.

Reviewed
The verdict

Cloud Run is Google's modern default — its own documentation recommends it over App Engine for new users, citing advanced capabilities such as GPUs at lower prices. It scales to zero and bills per request. App Engine Flexible is not deprecated and remains supported, but it is a legacy option: it still fits when you need VM-level control (Compute Engine VMs with SSH), workloads that must sit in the Compute Engine network, or steady traffic where an always-on instance is acceptable. The deciding factor is scale-to-zero and billing — Cloud Run charges nothing when idle; Flexible always keeps a billable VM running.

Head to head
CriterionCloud RunApp Engine Flexible
Scale to zeroYes — idle revisions scale to 0 instancesNo — at least one instance always runs
Billing when idleRequest-based billing — no charge when idleInstances billed continuously
Deploy unitAny OCI / Docker container, as an immutable revisionA Docker container on Compute Engine VMs
Cold startsYes — scale-from-zeroNone — no scale-from-zero
Startup speedSecondsMinutes — VM boot
Request timeoutDefault 5 min, configurable to 60 min60 min
GPU supportYes — NVIDIA L4 and RTX PRO 6000No
VM-level accessNo host accessYes — SSH into the underlying Compute Engine VM
PositioningModern, recommended default for new projectsSupported; Cloud Run recommended instead
When to pick which

Pick Cloud Run when

  • Traffic is spiky — scale to zero and pay only per request.
  • You are starting a new project — Google recommends it as the default.
  • You need GPUs, fast deploys, or percentage-based traffic splitting.

Pick App Engine Flexible when

  • You need VM-level control — SSH into the Compute Engine VM for debugging.
  • Your app must run inside the Compute Engine network.
  • You have an existing Flexible app and migration cost outweighs modernising now.
Sources
  1. Compare App Engine and Cloud Run — https://docs.cloud.google.com/appengine/migration-center/run/compare-gae-with-run
  2. Cloud Run instance autoscaling — https://docs.cloud.google.com/run/docs/about-instance-autoscaling
  3. Cloud Run billing settings — https://docs.cloud.google.com/run/docs/configuring/billing-settings
  4. Cloud Run request timeout — https://docs.cloud.google.com/run/docs/configuring/request-timeout
  5. Cloud Run GPU configuration — https://docs.cloud.google.com/run/docs/configuring/services/gpu
  6. App Engine flexible environment overview — https://docs.cloud.google.com/appengine/docs/flexible/overview
Related instruments