Talvez, talvez não. Como você suspeita, a menos que seja possível dividir facilmente a carga de trabalho do sistema em unidades discretas que podem se comunicar pela rede, você não verá qualquer benefício de ir para um provedor "em nuvem" em termos de escalabilidade. Existem provedores de "nuvem" que oferecem máquinas muito maiores (do ponto de vista de RAM, de qualquer maneira - tenho minhas dúvidas de que você obterá consistentemente o equivalente a oito núcleos E5420 de qualquer um deles), mas você pode obter mais RAM para o seu servidor existente, também, se necessário.
Eu gastaria o tempo olhando para cada componente individual do sistema, avaliando o uso de recursos de cada um e, portanto, quanto de um "salvamento" seria movê-lo para uma caixa separada. Em seguida, observe como cada componente (a partir do uso mais intenso de recursos) pode ser armazenado em cluster, para que o trabalho desse componente possa ser dividido em várias máquinas (o que é chamado de "escalabilidade horizontal"). Uma vez feito isso para tudo o que tem o potencial de usar em qualquer lugar próximo aos recursos de uma máquina em seus níveis de carga projetados, você pode consultar seus superiores com um plano e uma estimativa de esforço e custo para dividir tudo.
Nada disso é específico para "nuvem", é apenas uma investigação básica de due diligence sobre como lidar com o aumento da carga do usuário. Onde você pode começar a usar os benefícios da computação em nuvem é quando você precisa escalar rapidamente. Basta apertar um botão e whoomp! há mais recursos à sua disposição. Não espere até que a carga apareça para testá-la - se você valorizar seu tempo de atividade, execute com pelo menos dois de cada componente escalonável o tempo todo, calcule quais serão os limites do gatilho de expansão. avançar, monitorá-los e gerar suas novas instâncias o mais rápido possível. Em seguida, coloque o sistema sob carga pesada e teste que tudo funciona conforme o esperado.