Moving off App Runner

App Runner is closed to new customers. Keep your app on AWS without learning ECS.

If you were about to start on App Runner, or you're planning your way off it, you probably want what it gave you: push code, get a URL, don't manage servers. ScaleBop gives you that on Amazon ECS in your own AWS account, built from your GitHub repo, with the whole setup saved as code you keep.

What AWS has announced

ScaleBop fits if

  • You want to stay on AWS, in an account you own.
  • Your app is Node.js (Next.js, Express and others), Python (FastAPI, Flask, Django), a static site, or anything with a working Dockerfile.
  • Your code is on GitHub and you want deploys driven from it, as App Runner did.
  • You'd rather not write ECS, load balancer and IAM configuration yourself.

ScaleBop is not a fit if

  • You need auto scaling across many containers on day one. ScaleBop runs one container per app; scaling is a change you make in the generated CDK.
  • You need a preview environment for every pull request. ScaleBop deploys one production environment.
  • Your code isn't on GitHub. ScaleBop deploys through GitHub Actions.
  • You want a platform that runs your app outside your own AWS account.

What changes when you move

Compute

Your app runs as a container on Amazon ECS with Fargate, behind an Application Load Balancer, with CloudFront in front for HTTPS. You don't manage servers. App Runner ran the same kind of container; now you can see and change every piece.

Builds and deploys

A GitHub Actions workflow in your repo builds the image and deploys it. You choose when changes go live with Ship changes, or turn on Auto-ship to deploy every push to your default branch, as App Runner's automatic deployments did. The workflow signs in to AWS with short-lived OIDC credentials, so no AWS keys are stored in GitHub. If your repo has no Dockerfile, ScaleBop writes one for Node.js and Python apps.

Your domain

ScaleBop sets up your custom domain with an HTTPS certificate from AWS Certificate Manager. While you move, App Runner keeps serving until you point DNS at the new app.

Your database

App Runner didn't host databases, so yours already lives somewhere else, and it can stay there. If you'd rather have one in the same AWS account, ScaleBop can add Amazon RDS for PostgreSQL to the setup.

Cost

AWS bills your account directly for Fargate, the load balancer and CloudFront. ScaleBop doesn't resell or mark up AWS. Your first launch with ScaleBop is free; paid plans add more projects.

How ScaleBop does it

  1. Step 1

    Check your repo

    Point ScaleBop at your GitHub repository. It works out the framework, how the app starts and which port it listens on, and tells you anything that needs fixing before it can deploy.

  2. Step 2

    Review the setup

    ScaleBop writes AWS CDK for the infrastructure and a GitHub Actions workflow, and opens them as a pull request so you can read them before anything changes.

  3. Step 3

    Merge to deploy

    Once the pull request is merged, ScaleBop starts the first deploy: the workflow builds your app and deploys it into your AWS account, and the launch only counts once the app answers its health check.

  4. Step 4

    Move your traffic

    Test the new HTTPS address, add your custom domain, then point DNS at it. Keep App Runner running until you're happy, then delete it.

Side by side

App Runner, ECS Express Mode and ScaleBop compared on what each does, from AWS's own documentation.
TopicAWS App RunnerAmazon ECS Express ModeScaleBop
Open to new customersNo, since April 30, 2026. (AWS App Runner product page, checked 17 Oct 2026)Yes. It's what AWS recommends instead of App Runner. (AWS App Runner Developer Guide: availability change, checked 17 Oct 2026)Yes.
Deploy from source codeYes, from GitHub or Bitbucket, using App Runner's managed runtimes, or from a container image. (AWS App Runner Developer Guide: service based on source code, checked 17 Oct 2026)Deploys a container image. You build and push the image yourself, for example in GitHub Actions. (AWS App Runner Developer Guide: availability change, checked 17 Oct 2026)Yes, from GitHub. Your own GitHub Actions workflow builds the image; ScaleBop writes a Dockerfile for Node.js and Python apps that don't have one.
What runs in AWSA managed service: App Runner starts, runs, scales and load-balances it for you. (AWS App Runner Developer Guide: service based on source code, checked 17 Oct 2026)An ECS service on Fargate and an Application Load Balancer with an HTTPS listener, in your account. (Amazon ECS Developer Guide: resources created by Express Mode services, checked 17 Oct 2026)An ECS service on Fargate behind an Application Load Balancer, with CloudFront for HTTPS, in your account.
ScalingApp Runner scales the service for you. (AWS App Runner Developer Guide: service based on source code, checked 17 Oct 2026)Auto scaling on by default: 1 to 20 tasks, targeting 60% average CPU. (Amazon ECS Developer Guide: resources created by Express Mode services, checked 17 Oct 2026)One task. To scale, change the task count or add a scaling policy in the generated CDK.
How the setup is definedSet up in the App Runner console, API or an apprunner.yaml file. (AWS App Runner Developer Guide: service based on source code, checked 17 Oct 2026)Created by one API call (or the console) with a container image and two IAM roles. (AWS App Runner Developer Guide: availability change, checked 17 Oct 2026)AWS CDK and a GitHub Actions workflow committed to your repo, which you can read, change and keep.
Price of the service itselfClosed to new customers, so not an option to price for a new app. (AWS App Runner product page, checked 17 Oct 2026)No additional charge; you pay for the AWS resources it creates. (AWS App Runner Developer Guide: availability change, checked 17 Oct 2026)First launch free; paid plans for more projects. AWS bills your account for the resources.

Questions

Do I have to move off App Runner now?

No. AWS says existing App Runner customers can keep using it, including creating new services. It won't get new features, so plan a move when it suits you rather than in a rush.

Why not use ECS Express Mode directly?

You can, and it costs nothing extra. It suits you if you're happy to build container images in your own pipeline and look after the IAM roles and settings yourself. ScaleBop does that part for you: it checks the repo, writes the Dockerfile if you need one, and saves the infrastructure and the deploy workflow as code in your repo.

Will my app have downtime when I switch?

It doesn't need to. The new app gets its own address first. Once it's working, you point your domain at it, and App Runner keeps serving until DNS has moved over.

Do I need a Dockerfile?

Not for Node.js and Python apps: ScaleBop writes one when your repo doesn't have one. For other languages, a working Dockerfile is what ScaleBop deploys.

See if your app is ready

Paste your public GitHub repo for a free check: whether ScaleBop can deploy it, what it would set up, and how many common security problems it found. No sign-up.

Last reviewed 17 Oct 2026 by Damian Karzon. Facts about AWS services come from AWS's own pages, linked beside each one.