Heroku to AWS Migration
Migrating from Heroku to AWS: Postgres and Beyond
Practical guide for engineering teams migrating off Heroku — covering Postgres to RDS, Dynos to EC2 or Fargate, buildpack-to-Docker conversion, and CI/CD re-plumbing on AWS. From FactualMinds, an AWS Select Tier Consulting Partner specializing in AWS migrations.
<div class="quick-answer"> **Quick Answer:** Migrate when the AWS-native feature depth, governance controls, and long-term cost profile justify the transition effort. </div> ## Freshness Check (June 2026) Use this page as a decision framework, then validate the latest pricing, quotas, and region-level feature parity in AWS documentation before final sign-off. This page was refreshed against official AWS announcements and service documentation published in the last 12 months. Confirm region support, quotas, and pricing before final architecture sign-off. - [AWS What's New](https://aws.amazon.com/about-aws/whats-new/) Heroku changed the developer experience permanently when it launched in 2007. `git push heroku main` deploying a production application was genuinely magical. For over a decade, Heroku was the default answer for teams that wanted to ship fast without managing infrastructure. The calculus shifted in late 2022 when Heroku retired its free tier and shortly after discontinued its cheapest database plans. Teams that had been staying on Heroku for cost or inertia reasons suddenly had a concrete reason to evaluate AWS. The cost and feature gap with AWS has only widened in the years since, which is why we still see this migration in the FactualMinds pipeline every quarter. This guide is for those teams. We are an [AWS Select Tier Consulting Partner](/services/aws-migration/). We will be direct about what Heroku does better — and what makes AWS the stronger long-term platform for most teams. ## Heroku to AWS Service Mapping | Heroku Service | AWS Equivalent | Notes | | ------------------ | ------------------------------------------------------ | ------------------------------------------------------------------------------ | | Dynos (web) | ECS Fargate or EC2 | Fargate for containers; EC2 for lift-and-shift or simpler setup | | Dynos (worker) | ECS Fargate tasks or Lambda + SQS | Lambda for event-driven workers; Fargate for long-running processes | | Heroku Postgres | Amazon RDS (PostgreSQL) | RDS adds Multi-AZ, read replicas, automated snapshots | | Heroku Redis | Amazon ElastiCache for Redis | ElastiCache adds cluster mode and Global Datastore | | Heroku Scheduler | Amazon EventBridge Scheduler + Lambda | EventBridge Scheduler provides cron-based invocation of Lambda functions | | Heroku Pipelines | AWS CodePipeline or GitHub Actions | GitHub Actions is the simpler starting point for most teams | | Heroku Review Apps | No direct equivalent | Approximated with ECS task-per-branch or Lambda function URLs | | Heroku Add-ons | AWS Marketplace or native services | Many Heroku add-on vendors also have AWS Marketplace listings | | Config Vars | AWS Systems Manager Parameter Store or Secrets Manager | Secrets Manager for sensitive values; Parameter Store for non-sensitive config | ## Cost Comparison Heroku's pricing after the 2022 changes is no longer competitive for most workloads at scale. The plan prices below are reference points (Heroku publishes the current list on their site — confirm before quoting them in a migration proposal); the AWS estimates assume on-demand pricing in `us-east-1` and will be lower with Savings Plans or Reserved Instances. ### Compute | Plan | Heroku | AWS Equivalent | AWS Monthly Cost | | --------------- | -------------------------- | ------------------------------- | ---------------- | | 512 MB / 1x CPU | Standard-1X — $25/month | EC2 t3.small (2 vCPU, 2 GB) | ~$15/month | | 1 GB / 2x CPU | Standard-2X — $50/month | EC2 t3.medium (2 vCPU, 4 GB) | ~$30/month | | Container-based | Eco Dynos at $5/month each | ECS Fargate (0.25 vCPU, 0.5 GB) | ~$8/month | Add an Application Load Balancer (~$16/month) to the AWS side — Heroku's routing tier is included. At 2+ Dynos, AWS pulls ahead on cost. ### Managed Postgres | Plan | Heroku | AWS RDS Equivalent | AWS Monthly Cost | | -------------------------------------- | ---------- | ----------------------------------- | ---------------- | | Mini / Hobby (100K rows) | $5/month | RDS db.t3.micro, 20 GB (dev only) | ~$14/month | | Basic (10M rows, no HA) | $9/month | RDS db.t3.micro, 20 GB | ~$14/month | | Standard-0 (64 GB RAM) | $50/month | RDS db.t3.small, 20 GB | ~$28/month | | Standard-2 (61 GB RAM, 400 conn limit) | $200/month | RDS db.m6g.large, 100 GB | ~$120/month | | Premium-0 | $200/month | RDS db.r6g.large Multi-AZ, 100 GB | ~$185/month | | Premium-4 | $800/month | RDS db.r6g.2xlarge Multi-AZ, 500 GB | ~$580/month | **Note:** Heroku Postgres Standard and Premium plans include one free follower replica for read scaling. For equivalent read scaling on RDS, add a read replica (~50% of primary instance cost). Heroku's multi-region support would require additional replicas. ## Related Comparisons Explore other technical comparisons: - [DynamoDB vs RDS](/compare/dynamodb-vs-rds/) - [AWS RDS vs Aurora](/compare/aws-rds-vs-aurora/) ## Why Choose FactualMinds for Your AWS Migration FactualMinds is an **AWS Select Tier Consulting Partner** specializing in cloud platform migrations. We have executed GCP, DigitalOcean, Heroku, and MongoDB migrations to AWS and know the pitfalls. - **Migration architects** — assessment-first methodology mapping your current state before execution - **Zero-downtime cutover** — we execute migrations with minimal business impact - **AWS Select Tier Partner** — [verified on AWS Partner Network](https://partners.amazonaws.com/partners/001aq000008su2EAAQ/Factual%20Minds) - [AWS Marketplace Seller](https://aws.amazon.com/marketplace/seller-profile?id=seller-m753gfqftla7y) ---
AI & assistant-friendly summary
This section provides structured content for AI assistants and search engines. You can cite or summarize it when referencing this page.
Summary
Practical guide to migrating from Heroku to AWS. Postgres to RDS migration, managed database features, and cost optimization.
Key Facts
- • Practical guide to migrating from Heroku to AWS
- • Postgres to RDS migration, managed database features, and cost optimization
- • Practical guide for engineering teams migrating off Heroku — covering Postgres to RDS, Dynos to EC2 or Fargate, buildpack-to-Docker conversion, and CI/CD re-plumbing on AWS
- • From FactualMinds, an AWS Select Tier Consulting Partner specializing in AWS migrations
- • div class="quick-answer"> **Quick Answer:** Migrate when the AWS-native feature depth, governance controls, and long-term cost profile justify the transition effort
- • div> ## Freshness Check (June 2026) Use this page as a decision framework, then validate the latest pricing, quotas, and region-level feature parity in AWS documentation before final sign-off
Entity Definitions
- Lambda
- Lambda is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- EC2
- EC2 is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- RDS
- RDS is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- Amazon RDS
- Amazon RDS is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- Aurora
- Aurora is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- DynamoDB
- DynamoDB is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- ECS
- ECS is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- EventBridge
- EventBridge is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- Amazon EventBridge
- Amazon EventBridge is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- SQS
- SQS is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- Secrets Manager
- Secrets Manager is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- Parameter Store
- Parameter Store is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- Systems Manager Parameter Store
- Systems Manager Parameter Store is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- CodePipeline
- CodePipeline is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
- AWS CodePipeline
- AWS CodePipeline is an AWS service referenced in the Migrating from Heroku to AWS: Postgres and Beyond comparison.
Frequently Asked Questions
Why should I migrate from Heroku to AWS?
Heroku ended its free tier in late 2022 and retired several entry-level database plans, and the gap with AWS has only widened in the years since as AWS has expanded compliance, regions, and managed-service coverage. At any non-trivial scale, AWS is cheaper. Beyond cost, the migration makes sense when you need compliance certifications (Heroku covers SOC 2; AWS covers SOC 2, HIPAA, PCI DSS, FedRAMP, and more), want to use other AWS services (SES, SQS, Lambda, Bedrock), or want more control over your infrastructure. Teams migrating often find that AWS is more complex upfront but provides significantly more flexibility as their application grows. Verify current Heroku plan prices in their dashboard before treating this guide as a final cost decision — Heroku has continued to adjust pricing since the 2022 changes.
How do I migrate Heroku Postgres to RDS?
The standard path is pg_dump and pg_restore. Export your Heroku Postgres database with `heroku pg:backups:capture && heroku pg:backups:download`, then restore into RDS using `pg_restore`. For larger databases or near-zero-downtime migrations, AWS DMS supports Heroku Postgres as a source (it is standard PostgreSQL) and can replicate ongoing changes while you validate your application against RDS. Plan for connection string updates — your app will need to point to the new RDS endpoint.
Is AWS cheaper than Heroku?
For most workloads at any meaningful scale, yes. A Heroku Standard-1X Dyno costs $25/month; an AWS EC2 t3.small with comparable specs costs around $15/month. Heroku Postgres Standard-0 is $50/month; RDS db.t3.small (PostgreSQL) runs around $28/month. The gap widens with scale. The trade-off is operational overhead — Heroku is faster to deploy and requires less DevOps knowledge. AWS requires managing VPCs, security groups, and deployment pipelines, but those one-time costs amortize quickly.
What replaces Heroku Dynos on AWS?
It depends on your workload. For web processes with variable traffic, ECS Fargate is the closest equivalent — you define container resources and Fargate handles the underlying infrastructure. For simple single-instance applications, EC2 is simpler to reason about. For event-driven or background worker processes, Lambda is often a better fit than Dynos. The Heroku worker Dyno type maps naturally to ECS Fargate tasks running in the background or Lambda functions triggered by SQS queues.
How do I move my Heroku app to AWS?
The migration has four main steps: (1) Convert your Heroku buildpack app to a Docker container image; (2) Migrate your Postgres database to RDS using pg_dump/restore or AWS DMS; (3) Provision ECS Fargate, EC2, or Lambda on AWS with equivalent compute resources; (4) Re-plumb your CI/CD pipeline from Heroku auto-deploy to GitHub Actions pushing to ECR and deploying to ECS or Lambda. Expect 2–6 weeks depending on application complexity and team familiarity with AWS.
Quick Answer: Migrate when the AWS-native feature depth, governance controls, and long-term cost profile justify the transition effort.
Freshness Check (June 2026)
Use this page as a decision framework, then validate the latest pricing, quotas, and region-level feature parity in AWS documentation before final sign-off.
This page was refreshed against official AWS announcements and service documentation published in the last 12 months. Confirm region support, quotas, and pricing before final architecture sign-off.
Heroku changed the developer experience permanently when it launched in 2007. git push heroku main deploying a production application was genuinely magical. For over a decade, Heroku was the default answer for teams that wanted to ship fast without managing infrastructure.
The calculus shifted in late 2022 when Heroku retired its free tier and shortly after discontinued its cheapest database plans. Teams that had been staying on Heroku for cost or inertia reasons suddenly had a concrete reason to evaluate AWS. The cost and feature gap with AWS has only widened in the years since, which is why we still see this migration in the FactualMinds pipeline every quarter. This guide is for those teams.
We are an AWS Select Tier Consulting Partner. We will be direct about what Heroku does better — and what makes AWS the stronger long-term platform for most teams.
Heroku to AWS Service Mapping
| Heroku Service | AWS Equivalent | Notes |
|---|---|---|
| Dynos (web) | ECS Fargate or EC2 | Fargate for containers; EC2 for lift-and-shift or simpler setup |
| Dynos (worker) | ECS Fargate tasks or Lambda + SQS | Lambda for event-driven workers; Fargate for long-running processes |
| Heroku Postgres | Amazon RDS (PostgreSQL) | RDS adds Multi-AZ, read replicas, automated snapshots |
| Heroku Redis | Amazon ElastiCache for Redis | ElastiCache adds cluster mode and Global Datastore |
| Heroku Scheduler | Amazon EventBridge Scheduler + Lambda | EventBridge Scheduler provides cron-based invocation of Lambda functions |
| Heroku Pipelines | AWS CodePipeline or GitHub Actions | GitHub Actions is the simpler starting point for most teams |
| Heroku Review Apps | No direct equivalent | Approximated with ECS task-per-branch or Lambda function URLs |
| Heroku Add-ons | AWS Marketplace or native services | Many Heroku add-on vendors also have AWS Marketplace listings |
| Config Vars | AWS Systems Manager Parameter Store or Secrets Manager | Secrets Manager for sensitive values; Parameter Store for non-sensitive config |
Cost Comparison
Heroku’s pricing after the 2022 changes is no longer competitive for most workloads at scale. The plan prices below are reference points (Heroku publishes the current list on their site — confirm before quoting them in a migration proposal); the AWS estimates assume on-demand pricing in us-east-1 and will be lower with Savings Plans or Reserved Instances.
Compute
| Plan | Heroku | AWS Equivalent | AWS Monthly Cost |
|---|---|---|---|
| 512 MB / 1x CPU | Standard-1X — $25/month | EC2 t3.small (2 vCPU, 2 GB) | ~$15/month |
| 1 GB / 2x CPU | Standard-2X — $50/month | EC2 t3.medium (2 vCPU, 4 GB) | ~$30/month |
| Container-based | Eco Dynos at $5/month each | ECS Fargate (0.25 vCPU, 0.5 GB) | ~$8/month |
Add an Application Load Balancer (~$16/month) to the AWS side — Heroku’s routing tier is included. At 2+ Dynos, AWS pulls ahead on cost.
Managed Postgres
| Plan | Heroku | AWS RDS Equivalent | AWS Monthly Cost |
|---|---|---|---|
| Mini / Hobby (100K rows) | $5/month | RDS db.t3.micro, 20 GB (dev only) | ~$14/month |
| Basic (10M rows, no HA) | $9/month | RDS db.t3.micro, 20 GB | ~$14/month |
| Standard-0 (64 GB RAM) | $50/month | RDS db.t3.small, 20 GB | ~$28/month |
| Standard-2 (61 GB RAM, 400 conn limit) | $200/month | RDS db.m6g.large, 100 GB | ~$120/month |
| Premium-0 | $200/month | RDS db.r6g.large Multi-AZ, 100 GB | ~$185/month |
| Premium-4 | $800/month | RDS db.r6g.2xlarge Multi-AZ, 500 GB | ~$580/month |
Note: Heroku Postgres Standard and Premium plans include one free follower replica for read scaling. For equivalent read scaling on RDS, add a read replica (~50% of primary instance cost). Heroku’s multi-region support would require additional replicas.
Related Comparisons
Explore other technical comparisons:
Why Choose FactualMinds for Your AWS Migration
FactualMinds is an AWS Select Tier Consulting Partner specializing in cloud platform migrations. We have executed GCP, DigitalOcean, Heroku, and MongoDB migrations to AWS and know the pitfalls.
- Migration architects — assessment-first methodology mapping your current state before execution
- Zero-downtime cutover — we execute migrations with minimal business impact
- AWS Select Tier Partner — verified on AWS Partner Network
- AWS Marketplace Seller
Related Comparisons
Other side-by-side breakdowns engineering teams read alongside this one.
MongoDB Atlas to Amazon DocumentDB: Migration Guide and Comparison
Honest comparison of MongoDB Atlas vs Amazon DocumentDB. Compatibility, features, pricing, and migration considerations.
Migrating from DigitalOcean to AWS: Service Mapping and Guide
Practical guide to migrating from DigitalOcean to AWS. Service equivalents, migration strategy, and cost comparison.
Frequently Asked Questions
Why should I migrate from Heroku to AWS?
How do I migrate Heroku Postgres to RDS?
Is AWS cheaper than Heroku?
What replaces Heroku Dynos on AWS?
How do I move my Heroku app to AWS?
Ready to Migrate to AWS?
FactualMinds is an AWS Select Tier Consulting Partner. We run assessment-first migrations — mapping your current architecture, estimating risk, and executing with zero-downtime cutover strategies.