Também sugiro separar os servidores da Web do banco de dados. Escalar servidores da Web (= iniciar mais instâncias) é geralmente simples usando uma das opções de sincronização ou compartilhamento do sistema de arquivos descritas nas outras respostas.
No entanto, isso não será tão fácil com o banco de dados.
Se você tiver a opção de alterar seu aplicativo, também poderá fornecer o Serviço de banco de dados relacional da Amazon como tentativa. No entanto, como este é um clone do MySQL, ele não é idêntico em relação aos recursos do PostgreSQL.
Se você quiser experimentar uma opção de armazenamento totalmente diferente, talvez queira dar uma olhada em SimpleDB - que é uma dessas opções de armazenamento NoSQL "modernas". Mas não espere poder fazer tudo o que você está acostumado a partir de um banco de dados relacional.
Ambas as opções de armazenamento (RDS e SimpleDB) são dimensionáveis por design, portanto, você não deve ter problemas ao usá-las com muitos servidores da Web com balanceamento de carga na frente.