How to replicate this architecture in DO for drupal?

Posted November 25, 2016 2.3k views
NginxMySQLDrupalUbuntu 16.04

I want to setup this architecture in DO for high-performance Drupal web app. Please advise.

See this link.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

I’ll try to explain you a one way to do this. You’ll need a few Droplets:

  1. Load balancer Droplet - A Droplet which will balance between two App servers
  2. Two app servers Droplets
  3. 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.

by Justin Ellingwood
High availability is a function of system design that allows an application to automatically restart or reroute work to another capable system in the event of a failure. In terms of servers, there are a few different technologies needed to set up a highly available system. ...