What is:
- 1 MySQL server in server rack
- Dynamic number of clients (50-150 computers, some are turned on, some are turned off), which should work with this database. Clients are geographically distributed, but have a stable connection to the Internet. Some clients work in 1 request mode in 5-10 seconds, others generate 20-30 requests per second around the clock.
The question itself: how to organize connection of clients to the database?
Already considered, but there were questions:
- API interlayer (not suitable due to too much alteration of the client architecture + additional server in the rack)
- Set MySQL "booty" on the Internet (the entire Internet is replete with what is not safe, what exactly they don’t say except brute force)
- SSH tunnel (no personal experience checking it for stability and autossh reconnects)
- VPN (no personal experience checking it for stability)
- may still have something ...