Not quite sure if this is the correct thread to be posting this in, so please feel free to move it if its not.
Our developers have nearly finished developing our Drupal 7 based web application and as with any start up, I am assuming the role of the sys admin, financial controller and everything else under the sun! My experience with Linux is limited to what i've been able to learn through the internet i.e - install and configure apache, mysql, php, memcache, varnish etc.
Current set up:
After having spent the best part of 4 weeks stress / load testing various cloud service providers we ended up with Google Cloud.
2x web servers (8 cores + 7.5gb ram each) running: - Ubuntu 14.04 LTS - Apache 2.4 (mpm_event + PHP_FPM) - Memcache 3.0
1x database server (4 cores + 26GB ram) running: - MySQL 5.6
1x Load balancer for the two web servers
I'm now at the part where I need to decide how / where to run the filesystem for our load balanced Drupal application. As you all know, Drupal stores assets by default on the local disk /sites/default/files. Now, obviously this isn't going to work with a load balanced solution since files that are written to server 1 will not be available to be served from server2.
These are the following potential solutions I have thought of:
1) Use the Amazon S3 module for Drupal which allows the application to both write and read from an S3 bucket. This seems to be the easiest solution, but i'm a bit reluctant after having spent a lot of time configuring my servers for speed and performance. That extra bit of time its going to take Drupal to write to S3 is what worries me and the fact that I have less control over the situation.
2) This is where my inexperience in terms of implementation lacks, but the second option would be to spin up another instance, mount it to the servers (is it possible to mount another server to both web servers??). Then change Drupal so that it writes to that mounted filesystem. (This seems more performant, but not sure whether possible and certainly a more complex task).
3) Use rsync between the two web servers. Again, my experience with rsync is very limited and i'm not sure whether it would be able to read / write fast enough.
So, that is my current dilemma. And any input whatsoever would be greatly appreciated.