Bars of monthly cost for one app with 1 vCPU and 2 GB, busy 8 hours a day. Cloud Run $19.84, App Runner $25.44, ECS Express Mode with its own load balancer $63.12, ECS Express Mode with 25 apps sharing a load balancer $40.66.

AWS App Runner was the closest thing AWS had to "here is a container, give me a URL". AWS has now closed it to new customers, and points them to Amazon ECS Express Mode. We read the notice, the Express Mode docs and the price pages to see what the move changes for one small app.

Short version: the deploy command stays short, but the bill changes shape. App Runner charges memory only while an instance waits. Express Mode keeps a Fargate task and a load balancer running all the time. For an app with 1 vCPU and 2 GB, busy 8 hours a day, we get $25.44 a month on App Runner and $63.12 on Express Mode. Built-in deploys from source are gone too: Express Mode takes only an image.

What AWS says, and the date

QuestionAWS's notice, as read on 3 Nov 2026
New customers?"We decided to close AWS App Runner to new customers"
Existing customers?Continue as normal, "including creating new resources and services"
Maintenance?AWS "continues to invest in security and availability" but does "not plan to introduce new features"
Shutdown date?None given
Where to go?AWS recommends exploring ECS Express Mode, and the notice carries a migration guide

On the date: reports give 30 April 2026 as the cutoff, and a search-engine copy of AWS's own page read "starting April 30, 2026". The page we can read today no longer prints a date; it just says the service is closed. The Internet Archive's first capture of the page is from 1 April 2026, so the notice came at least a few weeks ahead. If you hold an account that used App Runner before the cutoff, you can still create services. If not, this article is about your alternatives.

What a deploy takes, before and after

App RunnerECS Express Mode
You provideA container image, or a source repositoryA container image and two IAM roles
Deploy from sourceBuilt in: connect a repository, build fee $0.005 a build-minuteNot offered. AWS's guide: add a Dockerfile, a registry and a GitHub Actions workflow
Auto deploy on pushBuilt in: $1 per application a monthFrom your own CI, with an OIDC role and five variables in AWS's example
What appears in your accountAn App Runner serviceCluster, task definition, service, load balancer with listener rules and target groups, security groups, three service-linked roles, scaling target and policy, log group, deployment alarm, ACM certificate
ProvisioningA service in the App Runner console or API"Typically takes 3-5 minutes" (AWS's migration guide)
DefaultsSet per service1 vCPU, 2 GB, x86, minimum 1 task, maximum 20, scale at 60% CPU
While no one is callingPays memory only: CPU isn't billed for an idle provisioned instancePays the whole task and the load balancer; 1 is the default minimum
URLService URL, custom domain`name.ecs.region.on.aws` with TLS, custom domain through the load balancer

The command itself is hardly longer. This is the minimal form from AWS's tutorial:

bash
aws ecs create-express-gateway-service \
  --primary-container "image"="123456789012.dkr.ecr.us-east-1.amazonaws.com/my-app:latest" \
  --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \
  --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \
  --monitor-resources

In return you get things App Runner never had: all the resources are ordinary ECS, ALB and IAM pieces you can change, with canary deployments and rollback alarms by default. The price of that is that they are yours to understand when something fails. For a team already on AWS that's a fair trade. For someone who picked App Runner so as not to learn ECS, it's the part that was lost.

A worked monthly cost for one small app

Prices are from the App Runner, Fargate, load balancer, VPC and Cloud Run pages, in us-east-1 and Iowa, for a 30-day month (720 hours), the way AWS's own examples count. The app is busy 8 hours a day, one instance at a time.

ItemRate1 vCPU, 2 GB0.25 vCPU, 0.5 GB
App Runner, memory all month$0.007 per GB-hour$10.08$2.52
App Runner, vCPU while active (240 h)$0.064 per vCPU-hour$15.36$3.84
App Runner total$25.44$6.36
Express Mode, Fargate x86, all month$0.04048 per vCPU-hour, $0.004446 per GB-hour$35.55$8.89
Task's public IPv4$0.005 an hour$3.60$3.60
Load balancer hours$0.0225 an hour$16.20$16.20
Load balancer usage, 0.1 LCU on average$0.008 per LCU-hour$0.58$0.58
Load balancer public IPv4, two zones$0.005 an hour each$7.20$7.20
Express Mode total$63.12$36.46
Cloud Run, request-based, 240 active hours$0.000024 per vCPU-second, $0.0000025 per GiB-second, 180,000 and 360,000 free$19.84$1.04

Not counted: data transfer, logs, image storage, and requests on Cloud Run ($0.40 per million after 2 million free). The 0.1 LCU is our assumption for a small app; a load balancer in more than two zones costs another $3.60 per zone. Moving to Graviton (--cpu-architecture ARM64) takes the Fargate line for 1 vCPU and 2 GB from $35.55 to $28.44.

Most of the gap on a small task is the load balancer: $23.98 a month whatever the task size. Up to 25 Express Mode services can share one, and that changes the picture:

Express Mode, 1 vCPU and 2 GBMonthly cost per app
1 app, own load balancer$63.12
5 apps sharing$44.40
25 apps sharing$40.66
App Runner busy 8 h a day, for comparison$25.44
App Runner busy 24 h a day, for comparison$56.16

So the line crosses only for busy apps at scale: with 25 apps sharing a load balancer, Express Mode gets cheaper than App Runner once each app is active for more than about 16 hours a day. With one app it never does; App Runner busy all day comes to $56.16.

Where its users can go

If you valuedLook atWhat you give up
Staying on AWS, with the same imageECS Express ModeIdle pricing: from $25.44 to $63.12 in our example
Staying on AWS and paying for useLambda with a container imageA request-shaped app model, and a 15-minute limit
Paying little while idle, same imageCloud Run with request-based billingAnother cloud and a cold start; $19.84 in our example
Deploy from source, no pipeline to ownA platform that builds for youAWS integration such as VPC access and IAM roles
Staying where you areApp Runner, if you're an existing customerNew features; AWS gives no end date

Our reading: if you run on App Runner today, there's no date forcing a move, and the notice says you can even add services. We would not start anything new on it, and we would make sure the app already builds as a plain image, because that is the one piece every option above accepts. If you deploy from source now, that Dockerfile is your first job, and a good .dockerignore is the second. For how the bills compare as traffic grows, see scale to zero, worked out.

Sources (read 3 Nov 2026): AWS App Runner availability change; App Runner pricing; Amazon ECS Express Mode, its resources and defaults and CLI tutorial; Fargate, Elastic Load Balancing and VPC pricing; Cloud Run pricing. Monthly totals are our own arithmetic.

On systemi you deploy from a zip or an https git URL and a branch; we build the container, and an app that gets no traffic sleeps and wakes on the next request.

See how deploys work