Partly. AWS does not pay your Heroku bill, but it can fund the AWS side of a Heroku to AWS migration through MAP (Migration Acceleration Program). An AWS partner files the request and AWS decides. For startups, CloudRoute's partner records show $50K to $150K, depending on the workload. Small apps may not qualify; Activate credits are the do-it-yourself fallback.
Yes, for the AWS side of the move, when the migration qualifies. The program is the AWS Migration Acceleration Program (MAP), and an AWS partner files it.
The MAP user guide says the program includes "financial investment to help manage migration double bubble costs". Double bubble is the stretch when you pay Heroku and AWS at the same time. The AWS partner funding page says MAP funds support "migrations or modernizations of any size or workload to AWS", and that partners can receive cash or AWS promotional credits for the work.
For startups, CloudRoute's partner records show $50K to $150K in partner-filed funding. Depends on the workload; AWS approves. AWS itself publishes no MAP amounts. Compare that with AWS Activate Founders, which a startup with no investor can apply for alone: $1,000 to start, up to $5,000 in credits.
What the money can and cannot cover:
Full details on phases, tagging and eligibility are in the AWS MAP guide.
A partner files MAP, POC and IW funding. The founder applies for AWS Activate. CloudRoute files nothing; it matches you with the partner.
A Heroku app is not on AWS yet, so MAP fits the move. A test of something new, such as an AI feature, can fit proof of concept (POC) funding. Once you run on AWS, new work there can fit incremental workload (IW) funding. A partner files each one and AWS decides. AWS Activate is the founder's own application; no consulting partner can file it for you.
| Funding | Who files it | Amount | When it fits |
|---|---|---|---|
| Migration Acceleration Program (MAP) | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are not on AWS yet and want to migrate. |
| Proof of concept (POC) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You want to test something, whether or not you are on AWS today. |
| Incremental workload (IW) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are already on AWS and are launching new work: a new AI feature, a new customer or a new contract. |
| AWS Activate Founders | Founder applies | $1,000 to start, up to $5,000 | Self-funded startups with no investor or accelerator behind them. |
| AWS Activate Portfolio | Founder applies | up to $200,000 | Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider. |
| AWS Credits for AI Startups | Invite only (AWS account manager) | $200,000 or more, by invitation | AI startups ready to scale after Activate Portfolio, invited by AWS. |
AWS publishes no minimum size. It does publish rules that decide many Heroku cases, and the first one changes the order of your project.
If your app is small and does not qualify, nothing is lost. The do-it-yourself path in section VIII costs nothing but time.
Three reasons come up: Heroku's new status, the platform limits, and the price of compute as you grow.
Heroku's status. On February 6, 2026, Heroku announced it is "transitioning to a sustaining engineering model focused on stability, security, reliability, and support", rather than new features. Heroku gave no end date and calls itself an actively supported platform. That is a reason to plan a move on your own schedule, not a reason to rush one.
Platform limits. Heroku's router ends any request that takes longer than 30 seconds, and Heroku says that timeout is not configurable. Dynos restart at least once a day: every 24 hours plus up to 216 random minutes. Heroku Postgres plans cap connections, for example 200 on Standard-0 and 500 on Standard-2 and up (Heroku Postgres plans).
Compute price. On Heroku's pricing page, a Standard-2X dyno with 1 GB of memory is $50 a month. On AWS Fargate, one task with 0.5 vCPU and 1 GB running all month (730 hours, Linux, us-east-1, list price) is about $18. That is not the whole bill: AWS adds a load balancer at $0.0225 an hour (about $16 a month, ELB pricing) plus usage charges, the database, cache, logs and data transfer. Run your own numbers in the AWS Pricing Calculator before you decide on cost alone.
Most pieces map one to one. Two need real design work: the Salesforce sync (Heroku Connect) and the database move.
Compute. Web and worker dynos become containers on Amazon ECS with AWS Fargate. AWS App Runner, once the closest thing to Heroku on AWS, is closed to new customers. AWS now recommends Amazon ECS Express Mode: you give it a container image and two IAM roles, and it sets up an ECS service on Fargate, an Application Load Balancer, auto scaling and networking, with no extra charge beyond the resources it creates. AWS Elastic Beanstalk is another managed option.
Buildpacks and the Procfile. AWS does not run Heroku buildpacks, so each app gets a Dockerfile. Each Procfile process type becomes its own ECS service (web, worker) or a one-off task (the release phase that runs database migrations).
| Heroku | AWS | What changes |
|---|---|---|
| Web dynos | Amazon ECS on Fargate behind an Application Load Balancer (ECS Express Mode sets this up), or Elastic Beanstalk | Buildpack becomes a Dockerfile |
| Worker dynos | A separate ECS service | Each process type becomes its own service or task |
| Release phase | A one-off ECS task or a CI step | Run migrations before new code takes traffic |
| Heroku Postgres | Amazon RDS for PostgreSQL or Aurora PostgreSQL | New connection string; data moves in a maintenance window (section VI) |
| Heroku Key-Value Store | Amazon ElastiCache (Valkey or Redis OSS) | New connection string; same protocol |
| Heroku Scheduler | Amazon EventBridge Scheduler | Recreate each job by hand |
| Config vars | AWS Secrets Manager and Systems Manager Parameter Store | Secrets go to Secrets Manager, plain settings to Parameter Store; ECS passes both in as environment variables, so code does not change |
| Pipelines and review apps | CodePipeline and CodeBuild, or GitHub Actions pushing to ECR and ECS | Rebuild the deploy flow |
| Log drains and metrics | Amazon CloudWatch Logs and Container Insights | Point logs at the new sink |
| Custom domains and SSL | Amazon Route 53 and AWS Certificate Manager | New DNS records and certificates |
| Heroku Connect | No direct equivalent | Plan the Salesforce sync as its own piece of work |
On classic Heroku Postgres plans, in a planned maintenance window: streaming changes out is not available there, whatever older guides say. Heroku Postgres Advanced is the exception.
Heroku's help center is direct about classic plans. Tools such as Amazon DMS "may require SUPERUSER or REPLICATION roles", Heroku Postgres does not give customers those roles, and so it is "not possible" to use them to replicate a Heroku Postgres database to a non-Heroku database (Heroku help article). The AWS DMS documentation matches: a full-load-only task needs no extra setup, but ongoing change capture (CDC) needs superuser rights on the source.
So you have two ways to copy the data, both inside a window where the app does not write: a DMS full-load task, or a dump and restore. Heroku's import and export guide uses heroku pg:backups:capture and heroku pg:backups:download, then pg_restore into the new database. Heroku says PGBackups is meant for moderately loaded databases up to 20 GB and points larger ones to its logical backups guide.
On Heroku Postgres Advanced, Heroku documents managed logical replication to an external Postgres database. That can keep an RDS or Aurora copy in sync until cutover, which shortens the window. Read the limits first: the schema does not replicate (create it on AWS before you subscribe), schema changes do not stream, and sequence values must be advanced with setval() before you cut over. Heroku's Advanced plan page marks this feature as not supported on classic plans.
How to keep the window short and safe:
The order matters more than the speed. Funding comes before building, and the database comes last.
Yes. Many teams with a small app should. Here is the free path, and when a partner is worth it.
A partner is worth it when you want MAP funding (a partner files it), when nobody on the team has run AWS in production, when Heroku Connect or compliance work is in scope, or when the database is too large for a simple dump and restore.
CloudRoute matches you with one vetted AWS partner that fits your stack and region, for free. We reply within 24 hours; your matched partner reaches out within 5 business days. To compare partners yourself, see how to find an AWS partner.
You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.
We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.
Your matched partner scopes the migration with you. Then it checks whether the move qualifies for MAP (Migration Acceleration Program) funding. MAP is for teams that are not on AWS yet.
If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.
CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.
Tell us what you run on Heroku and what you want on AWS. We reply within 24 hours; your matched partner reaches out within 5 business days. If the move qualifies, the partner files MAP and AWS decides.