Overview
If you are searching for a Heroku Shield alternative, Aptible is one of the strongest platform-as-a-service options to evaluate, and for many regulated teams, the most natural fit. Aptible delivers a similar developer experience with simple, abstracted deployment of apps and databases, while providing dedicated infrastructure isolation, enforced security controls, and built-in compliance support for frameworks such as HIPAA, HITRUST, and SOC 2. For teams handling PHI or other sensitive data, these controls are foundational, not optional. Refer to the Security & Compliance docs for more information on our approach to security and compliance, including the specific controls we satisfy. If you are evaluating alternatives due to recent changes to Heroku’s Enterprise offering, you’re in the right place. Many teams that previously relied on Heroku Shield for HIPAA-eligible environments are now looking for infrastructure that combines developer simplicity with robust security and compliance support. This guide will help you evaluate Aptible and outline a clear path for a smooth migration, including:- Heroku Shield vs Aptible comparison
- Key terminology mapping
- Technical migration steps:
- Private Spaces to Dedicated Stacks
- Projects to Environments
- Shield dynos to containers
- Shield Postgres and Redis to Aptible-managed databases
- Auditing Shield-compatible add-ons
- Reconfiguring endpoints and networking
- Minimizing downtime during cutover
FAQs
Why migrate from Heroku Shield to Aptible?
Why migrate from Heroku Shield to Aptible?
How does Aptible pricing compare to Heroku Shield?
How does Aptible pricing compare to Heroku Shield?
Can I keep using a Procfile?
Can I keep using a Procfile?
CMD instruction. This is referred to as an Implicit Service.You can continue using a Procfile if your application has multiple services or process types. Procfile syntax is compatible between Heroku and Aptible.Note: If you are using Direct Docker Image Deploy (deploying a pre-built image from a container registry), you must place your Procfile at /.aptible/Procfile and your .aptible.yml at /.aptible/.aptible.yml inside your Docker image. See Procfiles and .aptible.yml with Direct Docker Image Deploy for details.Heroku Shield vs Aptible comparison
The table below summarizes key differences across compliance, developer experience, and pricing.| Category | Heroku Shield | Aptible |
|---|---|---|
| Compliance | ||
| HIPAA Eligibility | Included | Included |
| HITRUST Inheritance | Not available | Included |
| BAA Support | Included | Included |
| Encryption in Transit and at Rest | Included | Included, by default |
| Managed Intrusion Detection | Not available | Included, by default |
| 24/7 SRE Monitoring | Available with additional fee | Included, by default |
| Automated Backups | Included, plan-dependent retention | Included, by default |
| Granular Access Control | Limited | Included, by default |
| Infrastructure Isolation | Included (Private Spaces) | Included (Dedicated Stacks) |
| Developer Experience | ||
| Runtime Model | Dynos | Docker containers |
| Build System | Buildpacks | Dockerfile-based |
| Traffic Routing | Heroku Router | Explicit Endpoints |
| Automatic Rollbacks | Limited | Included, by default |
| Zero-downtime deploys | Included, by default | Included, by default |
| Public and Private Access | Limited | Available (Public and Private Endpoints supported) |
| Managed Databases | Shield Postgres & Shield Redis | PostgreSQL, MySQL, Redis, Elasticsearch, RabbitMQ, InfluxDB, SFTP |
| Pricing | ||
| Compute Pricing Model | Shield dyno tiers | Container-based pricing |
| Isolation Cost | High fees for getting started | Low fees for getting started: $499/base fee |
| Contract | 12-month contract required | Pay-as-you-go, no lock-in |
| White-glove migration | Not available | Available with additional fee |
Key terminology mapping
If you’re migrating from Heroku Shield, the table below maps common Heroku concepts to their Aptible equivalents.| Heroku Term | Aptible Term | Description |
|---|---|---|
| Dyno | Container | A running instance of your application process |
| Heroku Router | Endpoint | Network entry point that routes traffic to your service |
| App URL | Endpoint URL | Public hostname exposing your service |
| Private Space | Dedicated Stack | Isolated infrastructure environment |
| Project | Environment | Logical grouping of apps and databases |
| Config Vars | Environment Variables | Runtime configuration values |
| Buildpacks | Dockerfile | Defines how your application is built |
| Shield Postgres | Managed PostgreSQL | Production database service |
| Shield Redis | Managed Redis | In-memory data store |
| Add-ons | Managed Databases or External Integrations | Infrastructure services attached to your app |
Before you begin
Before starting your migration from Heroku Shield, ensure the following:Create an Aptible account
Install the Aptible CLI
Review your existing Heroku Shield setup
- Application process types (web, worker, background jobs)
- Environment variables and secrets
- Add-ons such as databases, caches, or third-party services
- Any custom build or runtime configuration
- Networking or domain configuration
Migration steps
Set up your Aptible infrastructure
Private Spaces to Dedicated Stacks
In Heroku Shield, applications run inside Private Spaces, which define the network boundary and isolation model for your workloads. In Aptible, the equivalent concept is a Dedicated Stack. A Dedicated Stack is an isolated AWS environment with its own VPC, enforced encryption, and infrastructure-level security controls.Provision a Dedicated Stack
Execute a BAA if required
Review networking requirements
- Create separate Environments within a single Dedicated Stack (most common approach)
- Provision multiple Dedicated Stacks if stricter infrastructure separation is required
Projects to Environments
In Heroku, applications are grouped into Projects and can be connected via Pipelines. In Aptible, applications and databases are grouped within an Environment, which exists inside a Dedicated Stack. An Environment provides logical separation between staging and production workloads and defines access controls.- Create an Environment corresponding to each Heroku Project
- Create separate Environments for staging and production
Migrate your application
Shield Dynos to Containers
In Heroku Shield, applications run as dynos built via buildpacks and defined by a Procfile. Heroku manages the runtime layer and abstracts containerization. In Aptible, applications run as Docker containers. You define how the application is built and executed using a Dockerfile, and each process type runs as its own service. Key differences:| Heroku Shield | Aptible |
|---|---|
| Buildpacks | Dockerfile |
| Procfile process types | Separate services |
| Dyno scaling | Container scaling |
| Release phase | Explicit release command via .aptible.yml |
Convert Buildpack App to Docker
Dockerfile. See Getting Started with Docker for guidance.Example (Node.js):- App binds to
0.0.0.0 - Correct port exposed
- No reliance on ephemeral filesystem storage
Translate Procfile process types
- Deploy
webas one service - Deploy
workeras a separate service - Run database migrations using before_release in
.aptible.yml
.aptible.yml placement depends on your deployment method:- Git Push (Dockerfile Deploy)
- Direct Docker Image Deploy
Procfile and .aptible.yml in the repository root directory. Aptible will detect and use them automatically during the build process.Configure environment variables
DATABASE_URLREDIS_URLSECRET_KEY_BASE- External service credentials
Scale containers
Migrate your databases
Heroku Shield provides Shield Postgres and Shield Redis inside your Private Space with encryption and compliance controls. In Aptible, you can provision managed PostgreSQL, Redis, as well as MySQL, Elasticsearch, InfluxDB, RabbitMQ, and SFTP.Migrating PostgreSQL
There are two primary approaches to migrating PostgreSQL databases:- Dump and restore works well for smaller databases (under 10GB) and simpler migrations
- Logical replication is recommended for databases over 10GB or high-traffic production apps where minimizing downtime is critical
Option A: Dump and Restore (recommended for databases under 10GB)
Option A: Dump and Restore (recommended for databases under 10GB)
Capture backup from Heroku
- Schedule a maintenance window
- Consider putting the application in read-only mode
- Lower DNS TTL in advance if planning cutover
Provision PostgreSQL in Aptible
- Confirm version compatibility with Heroku Postgres
- Verify required extensions are supported
Restore database
--jobs=N for parallel restore.See Dump and Restore PostgreSQL for detailed instructions.Update DATABASE_URL
Option B: Logical Replication (recommended for databases over 10GB)
Option B: Logical Replication (recommended for databases over 10GB)
Provision PostgreSQL in Aptible
Set up logical replication
pglogical extension to replicate data from Heroku to Aptible. The replica stays in sync until you’re ready to cut over.See Database Replication and aptible db:replicate for details.Monitor replication status
Migrating Redis
Provision Redis in Aptible
Plan cutover
- Cache only: No data migration required
- Job queue: Coordinate cutover carefully to avoid dropped jobs
Auditing your add-ons
Before migrating, review all add-ons attached to your Heroku Shield application:| Heroku Add-on | Migration Approach |
|---|---|
| Shield Postgres | Migrate to Aptible-managed PostgreSQL |
| Shield Redis | Migrate to Aptible-managed Redis |
| Logging add-ons (e.g., Papertrail) | Configure log drains to your observability provider (no additional cost) |
| Email providers | Continue using external provider and update credentials |
| Third-party services | Reconfigure networking and environment variables |
Configuring endpoints and networking
In Heroku Shield, applications are exposed via the Heroku Router within a Private Space. In Aptible, applications are exposed through explicitly defined Endpoints.Public Endpoints
If your application is publicly accessible:- Create a Public Endpoint for the service
- Attach your custom domain
- Confirm TLS configuration
- Validate IP allowlists if required
Private Endpoints
If your Heroku Private Space uses internal routing between services:- Create Private Endpoints inside the Dedicated Stack
- Update internal service URLs
- Confirm security group or access configuration
Networking checklist
- Review outbound IP requirements
- Confirm third-party allowlists
- Update webhook destinations if needed
- Verify internal service-to-service communication
Minimizing downtime during cutover
To reduce downtime and risk during migration, plan the final cutover carefully.Deploy and validate in staging

