Para o banco de dados, você pode facilmente usar o RDS, pois é um recurso de banco de dados compartilhado.
mas para código você pode usar qualquer sistema de arquivos Remoto, como NFS ou GlusterFS. Mas eu recomendaria o GlusterFS mais, devido ao seu conjunto de recursos e habilidades, que não estão presentes no NFS.
Você pode criar um único servidor, para se tornar o servidor GlusterFS, que hospedará todos os dados e os compartilhará entre qualquer número de servidores.
Além disso, isso pode ser útil: