← Blog
Engineering

Container as a service, with the real 2026 prices

Yura Oak
Yura OakAugust 21, 2026

Container as a service (CaaS) is a cloud service that runs your container image for you — starting it, scaling it, routing traffic to it, restarting it when it dies — without you owning the machines underneath. You hand over an image and a size. The provider handles the scheduler, the host OS, the patching, and usually the certificate. Amazon ECS with Fargate, Google Cloud Run, Azure Container Apps, Railway, Fly.io, and Lizard are all CaaS, and they charge between $0.0278 and $0.0864 per vCPU-hour for it.

Written 20 August 2026. Every rate below was read off the provider's own price list that week.


What container as a service actually means

CaaS sits between renting servers and renting a runtime. You still choose the operating system, the language version, and the system libraries, because they are baked into your image. You do not choose the kernel host, the scheduler, or the patch cadence.

The unit of work is the container image. That is the whole definition. Everything else — whether it scales to zero, whether it can run a background worker, whether it gives you a URL — varies by provider and is where the real decision lives.

CaaS vs PaaS vs FaaS vs IaaS

You supplyProvider suppliesThe catch
IaaS — EC2, Hetzner, DigitalOcean DropletsThe whole machine's contentsA virtual machineYou patch it, you monitor it, you scale it
CaaS — Fargate, Cloud Run, Railway, LizardA container imageScheduler, hosts, networking, TLSYou still write the Dockerfile
PaaS — Heroku, Render, App PlatformSource codeEverything above, plus the buildBuildpacks decide what your runtime looks like
FaaS — Lambda, Cloudflare WorkersA functionEverything, per invocationNo process, execution caps, cold starts

The boundaries blur in practice, and the marketing blurs them further. Google Cloud Run takes an image like a CaaS and bills per request like a FaaS. Render takes source like a PaaS and an image like a CaaS. The useful question is not what a provider calls itself. It is whether your workload survives its constraints.

What CaaS providers charge in 2026

ProviderCompute rateEgressIdle
AWS Fargate (ECS, EKS)$0.04048 per vCPU-hour, $0.004445 per GB-hour, us-east-1$0.09 per GBBilled while the task runs
Amazon ECS Express ModeFargate rates, plus an Application Load Balancer at roughly $16 a month$0.09 per GBBilled while the task runs
AWS App Runner (closed to new customers)$0.064 per vCPU-hour, $0.007 per GB-hour$0.09 per GBMemory keeps billing
Google Cloud Run$0.000024 per vCPU-second, $0.0000025 per GiB-second, $0.40 per million requestsNetwork egress ratesScales to zero
Azure Container AppsAbout $0.000024 per vCPU-second and $0.000003 per GiB-second, with a reduced idle rateAzure bandwidth ratesReduced idle rate, or zero
RenderFlat tiers — Standard $25 for 1 vCPU / 2 GB, Pro $85 for 2 vCPU / 4 GBPooled, then $0.15 per GBBilled at the tier price
Fly.ioperformance-1x at $31 a month for 1 dedicated vCPU and 2 GB$0.02 per GBBilled at the machine price
Railway$0.0278 per vCPU-hour, $0.0139 per GB-hour$0.05 per GBBilled while up
Lizard$0.0278 per vCPU-hour, $0.0139 per GB-hour, on measured use$0.05 per GB past a per-plan allowanceBilled while up

Do not read that first column as a league table. Cloud Run and Azure Container Apps bill vCPU only while a request is in flight, so their $0.0864 per vCPU-hour is charged for a fraction of the month. Fargate bills a reserved size for every second the task exists, and so does Fly.io while a Machine is started — with autostop it parks the Machine and bills only its root filesystem. Lizard and Railway bill by the second on what the VM measurably uses, not the size you picked, which is a third thing again. A rate is only comparable next to a duty cycle.

Two worked figures for the same 1 vCPU, 2 GB service, busy all month: Fargate comes to $36.04 plus a load balancer, App Runner to $57.94 including its $1 automatic-deployment fee, and Lizard to about $15.22 at a realistic 25% average CPU and 50% average memory. At zero traffic, Cloud Run costs nothing, App Runner still costs $10.22 for provisioned memory, and a Lizard service that is up bills every second it is up.

The three shapes of CaaS

Orchestrator-first. Amazon ECS, EKS, Google Kubernetes Engine, Azure Kubernetes Service. You get every knob and you configure every knob: task definitions, services, load balancers, VPCs, IAM. Correct when you have a platform team. Expensive in hours when you do not — the lighter options are here.

Serverless containers. Google Cloud Run, Azure Container Apps, AWS Fargate behind ECS Express Mode. You get an image-shaped deploy and per-request or per-second billing. The constraint is the request model: a process that must stay alive between requests or hold state in memory is a poor fit. Cloud Run is the exception on queue work — worker pools, generally available since April 2026, run long-lived pull-based consumers with no HTTP endpoint.

Platform-shaped. Railway, Render, Fly.io, Lizard. One command deploys, a URL and a certificate come back, and a database is one more command away. The constraint is scope: these are not places to run a fifty-service mesh with custom CNI. All ten compared on price.

What CaaS still leaves you holding

Honest list, because the category page on most vendor sites will not give you one.

  • The Dockerfile. CaaS runs an image. Something has to build it. Cloud Run, Fargate, and Azure Container Apps all assume you arrive with one.
  • The database. Most CaaS offerings run compute and nothing else. Postgres, Redis, and object storage come from a second product, a second bill, and often a second network hop.
  • Secrets and configuration. Every provider has a mechanism, and no two are alike.
  • The load balancer, sometimes. Fargate and Kubernetes make it yours. App Runner, Cloud Run, and the platform-shaped providers include it.
  • Egress. Charged everywhere, at rates that differ by 7.5×: $0.02 per GB on Fly.io in North America and Europe, $0.05 on Railway and on Lizard past its per-plan allowance, $0.09 on AWS, $0.15 on Render past the included allowance.

Where Lizard fits

Lizard is container as a service without the Dockerfile step, and with the database in the same command.

npm i -g @lizard-build/cli
cd your-app && lizard up

lizard up detects Go, Node, Python, Rust, Ruby, PHP, Java, or a static site and lizardpack writes a real multi-stage Dockerfile on the build node — so you do not need Docker installed locally. If the repo already has a Dockerfile, it is used as it stands.

What runs is a long-lived process in its own Firecracker micro-VM, not a request handler: no execution ceiling, a read-write filesystem, and a *.onlizard.com domain with TLS on the first deploy. A worker with no HTTP port deploys exactly the same way. lizard add postgres redis s3 puts Managed Postgres, Managed Redis, and S3-compatible Managed Object Storage in the same project; lizard secrets set DATABASE_URL='${{postgres.DATABASE_URL}}' --service api wires each one in by reference. lizard ssh --service <name> -- <cmd> runs a command inside the running VM. Lizard bills only for active resources, by the second.


Deploy a container without configuring one

Free to start with $5 of credit and no card. Hobby is $5 a month.

Get started free → lizard.build/login


FAQ

What is container as a service? Container as a service is a cloud model where the provider runs your container image on infrastructure you do not manage. You supply an image and a size; the provider supplies the scheduler, the hosts, the networking, and usually TLS, and bills you per second or per request. Amazon ECS with Fargate, Google Cloud Run, Azure Container Apps, Railway, Fly.io, and Lizard are all examples.

What is the difference between CaaS and PaaS? The unit you hand over. CaaS takes a container image, so you control the operating system, the language version, and the system libraries. PaaS takes source code and builds the image for you with buildpacks, which is less work and less control. Several platforms, Render and Lizard among them, accept either.

What is the difference between CaaS and FaaS? A container versus a function. FaaS — AWS Lambda, Cloudflare Workers — runs one function per invocation with an execution cap and no process between calls. CaaS runs a container you defined, and on most providers it can stay alive, hold state in memory, and open outbound connections.

Is Kubernetes a container as a service? Kubernetes is the orchestrator, not the service. Managed Kubernetes — Google Kubernetes Engine, Amazon EKS, Azure Kubernetes Service — is CaaS, because the provider runs the control plane and the nodes for you. Running Kubernetes yourself on your own machines is not.

What does container as a service cost? Between $0.0278 and $0.0864 per vCPU-hour across the major providers in August 2026, plus memory at $0.004445 to $0.0139 per GB-hour and egress at $0.02 to $0.15 per GB. The rate matters less than the billing model: Google Cloud Run charges CPU only while a request is in flight, AWS Fargate charges the reserved size for the task's whole life, and Lizard and Railway charge by the second on measured use.

Which CaaS provider scales to zero? Google Cloud Run and Azure Container Apps do, which makes them the cheapest option for bursty traffic with long quiet periods. AWS Fargate bills for the task as long as it runs, and Fly.io bills a Machine while it is started — with autostop it parks the Machine and bills only its root filesystem. On Lizard a service bills every second it is up, and the trade you get for that is a process that never sleeps between requests.

Do I need a Dockerfile for container as a service? On AWS Fargate and Azure Container Apps, yes — they take an image. On Lizard, Railway, Render, and Google Cloud Run, no: point them at the source and the build step is done for you — gcloud run deploy --source . builds with Google Cloud's buildpacks — and you can still bring your own Dockerfile when you want control.

Can I run a background worker on a CaaS platform? On most. Lizard, Railway, Render, and Fly.io deploy a worker with no HTTP port the same way they deploy a web service, so a queue consumer or a scheduler is just another service. Cloud Run does it through worker pools, generally available since April 2026. Azure Container Apps is the one still built around HTTP requests, with a separate Jobs product for batch work.


Sources

Build with AI. Ship with Lizard.

You don't need a platform team to go live. Your whole cloud, one CLI command away.

Try for free

No credit card required

We use cookies for essential site functionality and analytics. See our Cookie Policy.