Regions

Last Updated: 24 April 2015

europe regions

Table of Contents

Heroku is available in two geographic regions: US and EU.

You can choose your app’s region to minimize latency for your end users. For example, if your users are primarily in Europe, your app will be faster for them if it’s running in Europe.

Data center locations

Region Name Data Center Location
us amazon-web-services::us-east-1
eu amazon-web-services::eu-west-1

Select a region

List all available regions with:

$ heroku regions
=== regions
eu  Europe
us  United States

Unless a different region is specified, apps will be created in the us region. To specify a different region, use the --region flag when creating the app:

$ heroku create --region eu
Creating calm-ocean-1234... done, region is eu
http://calm-ocean-1234.herokuapp.com/ | git@heroku.com:calm-ocean-1234.git
Git remote heroku added

Verify an app’s region

To verify an app’s region, check the Region attribute of the heroku info command:

$ heroku info
=== calm-ocean-1234
Git URL:       git@heroku.com:calm-ocean-1234.git
Owner Email:   user@test.com
Region:        eu
Repo Size:     164M
...

Migrating existing apps

Existing applications can be migrated to a different region.

Add-ons and region support

Add-ons with region support will be provisioned in the same region as the app. Provision them as you normally would:

$ heroku addons:add heroku-postgresql

Add-ons that don’t require a low-latency connection to your app will be provisioned in the default region if unavailable in your app’s region. If an add-on is latency sensitive and is not available in the same region as your app, provisioning will fail:

$ heroku addons:add cloudcounter
Adding cloudcounter on calm-ocean-1234... failed
!     This app is in region eu, cloudcounter:basic is only available in region us.

You can find add-ons supporting your app’s region using either the CLI or the web interface. To find add-ons supported in the eu region using the CLI, run this command:

$ heroku addons:list --region=eu

On addons.heroku.com you can use the search box to find add-ons that support the eu region by searching for “europe”. You can narrow your search further, for example to Redis add-ons that support the eu region by searching for “Redis europe”.

Deployment

Apps are deployed to the region specified on creation. Deploy your app as usual.

One-off dynos

One-off dynos are run in the region where the app was created. This is also true of secondary services such as Heroku Scheduler that provision one-off dynos to execute jobs.

Custom domains

Adding custom domains to apps running outside the us region is the same as adding domains to apps in the us region.

SSL

To use SSL, provision an SSL endpoint for your application and upload your SSL certificates.

$ heroku addons:add ssl
Adding ssl on example... done, v1 ($20/mo)
Next add your certificate with `heroku certs:add PEM KEY`.
Use `heroku addons:docs ssl` to view documentation.

$ heroku certs:add server.crt server.key
Resolving trust chain... done
Adding SSL Endpoint to example... done
example now served by example.herokuapp.com

If your custom domain is properly configured, no additional DNS configuration is required. This differs from the us region behavior, which requires using a domain like tokyo-123.herokussl.com. All traffic to www.example.com can now be served over SSL.

Data residency

Although each supported region represents a geographically isolated platform runtime, no assumptions should be made about the physical residency of your application data.

Consider the following cases where data is stored in a different location than your app:

  • Some non-latency sensitive add-ons can be provisioned in a different region than your app.
  • Application logs are routed to Logplex, which is hosted in the US.
  • PG Backup snapshots are stored in the US, and WAL files are continuously sent to the US.
  • No guarantees are made about the physical location of Heroku’s control surface APIs through which all CLI commands and the management of your applications occur.