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).
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.
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):
Private services also display this value as their Service Address:
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
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.