Oct 27, 20266 min read

Cloud Run Alternatives for Running Containers and Backends in 2026

Comparing Azure Container Apps, Encore, ECS Express Mode, Fly.io, Render, Railway and Knative for teams moving off or comparing against Google Cloud Run.

Cloud Run runs a container behind HTTPS, scales it to zero and charges for the time requests are served. It is a good default on Google Cloud, and teams look elsewhere when the company is on AWS or Azure, or when the app needs more than a container.

Beyond the container, a Cloud SQL database, Pub/Sub topics, Cloud Scheduler jobs, secrets and service accounts all sit next to it and are configured separately. This guide compares alternatives on both counts.

What you need to decide:

  • Which cloud the workload should run in.
  • Whether you want the platform to handle databases, queues and cron jobs, or only containers.
  • Whether resources should live in your own cloud account.
  • How much cold start and idle cost matter for your traffic.

Cloud Run alternatives at a glance

CapabilityEncoreAzure Container AppsECS Express ModeFly.ioRenderRailwayKnative
Runs inYour AWS or GCP accountYour Azure subscriptionYour AWS accountFly's infrastructureRender's infrastructureRailway's infrastructureYour Kubernetes cluster
Database, queues, cronDeclared in code and provisionedConfigured separatelyConfigured separatelyPostgres add-on, rest separatePostgres, cron jobsTemplates and servicesNot included
Scale to zeroDepends on the target computeYesMinimum of one task by defaultMachines can stopPaid instances stay onSleep optionYes
Local developmentencore run with local infraDockerDockerDockerDockerDockerDocker
Best forBackends with infra in your cloudAzure shopsAWS shopsGlobal edge appsSimple web appsFast prototypesTeams already on Kubernetes

Azure Container Apps: the closest match on Azure

Azure Container Apps

Azure Container Apps runs containers with HTTP or event-driven scaling, including scale to zero, on a managed environment built on Kubernetes, KEDA and Dapr.

Key features

  • Scale rules on HTTP, queues and other KEDA scalers.
  • Revisions with traffic splitting.
  • Jobs for scheduled and event-triggered work.

Good to know

Databases and Service Bus are separate Azure resources you wire up with Bicep, Terraform or the portal.

Encore: backend code with infrastructure in your own cloud

Encore

Encore is an open source infrastructure SDK for TypeScript, Python, Go and Rust. The databases, Pub/Sub topics, buckets and cron jobs a service declares in code are created in your own AWS or GCP account on deploy. On GCP it can deploy to Cloud Run, and the same code can deploy to AWS by adding an environment there.

A service declares what it uses next to the code that uses it:

import { api } from "encore.dev/api"; import { Topic } from "encore.dev/pubsub"; import { Bucket } from "encore.dev/storage/objects"; interface OrderPlaced { orderId: string; } // Pub/Sub on GCP, SNS and SQS on AWS. export const orders = new Topic<OrderPlaced>("orders", { deliveryGuarantee: "at-least-once" }); // Cloud Storage on GCP, S3 on AWS. const receipts = new Bucket("receipts", { versioned: false }); export const place = api( { expose: true, method: "POST", path: "/orders" }, async ({ orderId }: OrderPlaced): Promise<OrderPlaced> => { await receipts.upload(`${orderId}.txt`, Buffer.from(`order ${orderId}`)); await orders.publish({ orderId }); return { orderId }; }, );

encore run starts the service with a local bucket and Pub/Sub, and it also starts Postgres locally when a service declares a database. On deploy, Encore provisions the compute, topics and buckets on GCP or AWS, and provisions an IAM role for the service.

For coding agents, the infrastructure a change needs is part of the same diff as the code.

Key features

  • TypeScript, Python, Go and Rust SDKs for APIs, databases, Pub/Sub, buckets, cron and secrets.
  • Deploys to your own cloud account, on Cloud Run or ECS.
  • Preview environments for each pull request.
  • Distributed tracing locally and in the cloud.

Good to know

Encore apps are written with its SDKs, and an existing container is ported service by service rather than deployed as is. The migration guide covers moving from existing infrastructure.

Try Encore →

ECS Express Mode: the AWS equivalent

ECS Express Mode

ECS Express Mode is AWS's simplified path for a container on Fargate with a load balancer, HTTPS and scaling, and it is where AWS points users of App Runner and Copilot for new apps.

Key features

  • One command or console flow from image to HTTPS endpoint.
  • Uses standard ECS and Fargate resources you can manage later.
  • Runs in your own AWS account.

Good to know

Express Mode keeps a minimum of one task running by default, and RDS, SQS and EventBridge schedules are set up separately with their IAM permissions.

Fly.io: machines close to users

Fly.io

Fly.io runs containers as Firecracker machines in many regions, with machines that can stop when idle and start on request.

Key features

  • Multi-region deploys from one config file.
  • Fly Managed Postgres and volumes. The older Fly Postgres is unmanaged and no longer supported.
  • Private networking between apps.

Good to know

Apps run on Fly's infrastructure rather than your own cloud account.

Render: simple managed services

Render

Render deploys web services, workers and cron jobs from a repository, with managed Postgres and Redis-compatible key value stores.

Key features

  • Web services, background workers and cron jobs.
  • Managed Postgres.
  • Blueprint files for infrastructure as code.

Good to know

Free instances spin down when idle, and paid instances stay running.

Railway: fast setup for prototypes

Railway

Railway deploys services and databases from a repository or template onto a project canvas, with usage-based pricing.

Key features

  • Databases from templates.
  • Per-service environment variables and private networking.
  • Pull request environments.

Good to know

Everything runs on Railway's infrastructure, which suits prototypes more than workloads that must stay in a company cloud account.

Knative: Cloud Run's API on your own cluster

Knative Serving is the open source API Cloud Run implements, so the same container and a similar service definition run on any Kubernetes cluster with it installed.

Key features

  • Scale to zero and request-based autoscaling.
  • Revisions and traffic splitting.
  • Knative Eventing for event delivery.

Good to know

You operate the Kubernetes cluster and Knative itself, which fits teams already running Kubernetes.

How to choose

  • Azure Container Apps if the company is on Azure.
  • Encore if you want the backend and its database, queues and cron jobs defined in code and deployed to your own AWS or GCP account.
  • ECS Express Mode for a single container on AWS.
  • Fly.io for apps that need to run in many regions.
  • Render or Railway for simple apps where your own cloud account does not matter.
  • Knative if you already operate Kubernetes.

Compare against Cloud Run pricing with your own traffic, since request-based and instance-based billing differ most for steady workloads.

You can deploy your first Encore app to see the workflow before moving any services.

Frequently asked questions

What is the best alternative to Google Cloud Run?

It depends on why you are moving. Azure Container Apps is the closest equivalent on Azure and ECS Express Mode is the closest on AWS. Encore defines the backend and its databases, queues and cron jobs in code and deploys them to your own AWS or GCP account. Fly.io, Render and Railway are managed platforms outside the big clouds.

What is the AWS equivalent of Cloud Run?

AWS points new container apps to ECS Express Mode, which runs a container on Fargate with a load balancer and scaling. App Runner covered the same ground earlier. Encore can also deploy the same code to AWS, provisioning ECS and the databases and queues it uses in your account.

Can I run Cloud Run workloads on Kubernetes?

Yes. Cloud Run implements the Knative Serving API, so the same container and a similar service definition run on any Kubernetes cluster with Knative installed, at the cost of operating the cluster.

Why do teams move off Cloud Run?

Common reasons are wanting to be on AWS or Azure, needing more than a container with a database, queues and scheduled jobs wired up, cold starts on scale to zero, and pricing for always-on workloads.

Deploy to your cloud on AWS and Google Cloud
without managing infrastructure

Encore lets developers and agents define application infrastructure directly in code, then automatically provisions it from local development to production in your AWS or GCP account.

~/orders — claude
Claude Code
Claude Code v2.1.180Opus 5.5~/orders