I have a fixed number of web servers. Each web server represents a company and the users of the company talk to their assigned web server. I have this setup to decentralise the databases. So if one web server got hacked, the hacker only acquires a small amount of the total data. My clients are not willing to upload their information to one database on a single web server. The webservers run the django webframework for python. I am thinking of one-way SSL as the standard communication protocol between the users and the web servers. This seems to be the most logical choice as it provides a good way to identify the web servers of the companies for the users.
I also need to have communication between the web servers to exchange data. Here I am thinking of the Two-Way SSL protocol. I want to use the python 3 ssl module from one web server to communicate with django on another web server. The ssl module will provide a client certificate. Then django will act as server on the other web server and receive the client certificate. I want to use the following module for django to use the client certificate for authentication: https://github.com/kimvais/django-ssl-client-auth.
By this way I have a Two-Way SSL implementation which authenticates the web servers to each other.
I don't think VPN is a good solution because the web servers don't trust each other. That's why I don't want to go for OpenVPN or IPSec.
Is the Two-way SSL a good way or should I use something different like IPSec?