Private Network Communication

Your Render services in the same region can communicate with each other over their shared private network, without traversing the public internet.

  • Web services and private services each have a unique hostname on their private network. These services can listen for private network traffic on any port and use any protocol.
  • PostgreSQL and Redis instances each have an internal URL specifically for connections from within your private network.
  • Background workers and cron jobs can’t receive private network traffic, but they can send requests to other service types.

Private network communication is fast, safe, and reliable. It makes use of consistent internal hostnames and URLs, instead of IP addresses (which can change between deploys).

What’s on my private network?

Static sites and Free web services are not on a private network.

Other Render services are on the same private network if they’re deployed in the same region and they belong to the same account or team.

How to connect

These service types each have an internal address or URL:

  • Web services
  • Private services
  • PostgreSQL databases
  • Redis instances

This value is available from each service’s Connect menu in the Render Dashboard (see the Internal tab):

Viewing service internal address

Private services also display this value as their Service Address:

Private service header with service address elastic-qeqj:10000

The elastic private service above has the internal address elastic-qeqj:10000. Other services on the private network can communicate with it at this address.

You might need to specify a service’s expected protocol in its internal address string when you connect. For example, you might need to specify http://elastic-qeqj:10000 instead of just elastic-qeqj:10000.

Background workers and cron jobs don’t have an internal address, so they can’t receive inbound private network traffic. However, they can send requests to other service types on their private network.