Sicurezza:
Oltre alla risposta di Sander, aggiungerei che a determinati livelli di conformità PCI questo è un requisito :
Server Web e database separati CHD è archiviato in massa nel database, rendendolo un bersaglio di alto valore per un aggressore. Un server di database separato significa che l'accesso può essere rigorosamente controllato (esposizione limitata). Richiesto dalla Sezione 1 del PCI DSS.
Fonte: http://www.focusonpci.com/site/index.php/PCI-101/technical-requirements.html
Separando le funzioni di web e database stai limitando la tua esposizione. In genere il tuo db si trova in un segmento privato della tua rete e inaccessibile pubblicamente.
Una connessione VPN statica è anche suggerita, in PCI, tra il tuo web / db e il rilevamento delle intrusioni è fortemente consigliato sulle tue apparecchiature di rete. In caso di compromissione, il db verrà isolato e la connessione VPN interrotta in modo tale che, anche se l'applicazione e la chiave di crittografia sono state compromesse, l'accesso all'archivio dati è stato bloccato ed è inaccessibile.
Disponibilità elevata / Disaster Recovery:
Il punto di Sander è qui. Vai a votarlo. Aggiungo che anche in caso di piccole attività di manutenzione come l'esecuzione di un backup del filesystem o di un dump del database, il tuo db sarà, nella migliore delle ipotesi, limitato alle letture per un po 'di tempo. In casi estremi ho visto timeout di attesa blocco e code di processo riempire che tutte le connessioni disponibili sono messe in coda o eliminate. Il sito "scende", in modo efficace.
Puoi mitigarlo separando il tuo db e programmando il tuo server web per mettere il sito in modalità di manutenzione durante queste finestre di backup senza alcuna conseguenza per il filesystem del web server.