I’ll try to explain you a one way to do this. You’ll need a few Droplets:
- Load balancer Droplet - A Droplet which will balance between two App servers
- Two app servers Droplets
- Two database Droplets.
If you want to learn more about High Availability concepts head over to What is High Availability?
There are many load balancing software, but I can recommend looking around HAProxy. There is DigitalOcean tutorial how to set it up - How To Set Up Highly Available HAProxy Servers with Keepalived and Floating IPs on Ubuntu 14.04.
On App Droplets set up app (Drupal) how ever you want.
For DB server idea is to set up two MySQL servers. One will be main connected to both App Servers. Now you need to setup replication between main and second.
You’ll need to setup MySQL on Droplet manually as DO doesn’t offer Database Services.
How To Install MySQL on Ubuntu 16.04.
There an older but I hope still helpful tutorial - How To Set Up Master Slave Replication in MySQL.
And that should be it. A feature you want to use as a help is Private Networking. Pay attention to it, it’s very helpful especially for replication part. How To Set Up And Use DigitalOcean Private Networking is there to explain you Private Networking concepts and how to use it.
Also, pay attention that you should have same set up between App Servers. There comes handy Configuration Management. This is optional step, App will work same without it but this helps you maintain servers.
MySQL replication is a process that allows you to easily maintain multiple copies of a MySQL data by having them copied automatically from a master to a slave database. This can helpful for many reasons including facilating a backup for the data,a way to analyze it without using the main database, or simply as a means to scale out.
This tutorial will cover a very simple example of mysql replication—one master will send information to a single slave.