How to connect a PostgreSQL and MySQL Database Instance to a Private Network
Private Networks allows you to enhance the security of your system's architecture by isolating it from the internet.
When using Private Networks, your application connects directly to your Database nodes without going through a Load Balancer.
This improves performance by reducing the latency between your application and your database nodes. It also increases the security of your databases, as Instances in your Private Network can directly communicate with your Database Instance, without passing through the public internet.
You can create new Database Instances to attach to your Private Network, or attach existing ones.
Before you start
To complete the actions presented below, you must have:
- A Scaleway account logged into the console
- Owner status or IAM permissions allowing you to perform actions in the intended Organization
- A valid API key
- A PostgreSQL or MySQL Database Instance
How to attach a Database Instance to a Private Network
-
Click PostgreSQL and MySQL under Databases on the side menu. A list of your Database Instances displays.
-
Select the geographical region of the Instance you want to manage from the drop-down.
-
Click the database name or more icon > More info to access the Database Instance information page.
-
Scroll to the Network section.
-
Click Attach Private Network next to Private endpoint. A pop-up appears.
-
Choose whether to:
- Select and attach an existing Private Network and select the network from the drop-down list.
- Create and attach a new Private Network and enter the name of the network in the form.
-
Click Attach to Private Network to conclude.
How to connect to a Database Instance through a Public Gateway
If you want to connect locally to a Database Instance that is not accessible via the public internet, you can use SSH bastion and connect it to the same Private Network the Database Instance is connected to.
-
Open an SSH tunnel with port forwarding:
ssh -L <local_port>:<database_private_ip>:<database_port> bastion@<bastion_ip> -p<bastion_port> -N
-
Connect using
psql
:psql -h localhost --port <local_port> -d <database> -U <user>
How to detach a Database Instance from a Private Network
- Click PostgreSQL and MySQL under Databases on the side menu. A list of your Database Instances displays.
- Select the geographical region of the Instance you want to manage from the drop-down.
- Click the database name or more icon > More info to access the Database Instance information page.
- Click the Private Networks tabs. The Private Network configuration displays.
- Click unlink icon next to the static IP that you want to unlink from your Database Instance.
- Click Detach resource to remove the Instance from your Private Network.