title: Options for scaling an Apache-hosted website with data residing on multiple GCE instances
body: <p>Forgive the very basic nature of this question, but what options are available and which work best in GCE for scaling out data across VMs? As an example, say I have 1 web server VM running Apache with the site located in <code>/var/web/mysite/</code> but I need to handle additional traffic so I want to add a 2nd web server.</p>
  
  <p>I'm more interested in how to handle the data storage of uploaded user files from the website as well as read access to the website HTML, CSS &amp; images in <code>/var/web/mysite/</code> than the clustering of the web server software itself at the moment.</p>
  
  <p>Persistent disks in GCE can be mounted on multple VMs but only 1 VM can write so I'm unclear as to how best to scale a website across multiple GCE VMs so that any user can visit any of the webservers to upload or download their content as well as the site files themselves and the site will benefit from having additional servers to handle the data requests.</p>
  
  <p><strong>Assumptions:</strong></p>
  
  <ul>
  <li>Existing web server can suffer some downtime to be re-configured</li>
  <li>Existing site code can't be easily re-written to use Cloud Storage or Datastore API </li>
  <li>Adding more vRAM &amp; vCPU to the existing server isn't enough (scaling up) </li>
  <li>I would like the user experience to be transparent in that they don't have to visit  <code>www2.site.example.com</code> because it has the file it uploaded or to continue their session</li>
  </ul>