Isso é muito que você tenta realizar em uma única etapa:
- indo para a nuvem a partir de um servidor dedicado
- executando várias instâncias do seu aplicativo em vez de uma instância
- introduza o balanceamento de carga
Cada passo pode ter muitas armadilhas. Apenas um exemplo: se você tiver apenas um servidor de banco de dados e a latência entre diferentes regiões do mundo for um problema, provavelmente a configuração proposta será mais lenta do que antes se a comunicação entre seus servidores da Web em todo o mundo e seu servidor de banco de dados apenas um local é mais "tagarela" do que entre o agente do usuário e seu navegador da Web!
Então, o que eu recomendaria fazer é:
- Use uma rede de entrega de conteúdo como o Amazon CloudFront para todos os seus arquivos estáticos (como JavaScript, imagens, CSS, arquivos HTML estáticos etc.). É fácil de integrar no seu aplicativo e implantação atual, é muito mais barato (sem taxas mínimas, como executar várias instâncias do EC2 24x7), e sua página será carregada de maneira significativamente mais rápida, especialmente a primeira solicitação de página por sessão. Seus arquivos serão distribuídos por muitos datacenters no mundo (não apenas dois), com seu aplicativo real ainda em execução em um único servidor da Web.
- Tente usar um provedor de hospedagem com links melhores para backbones e roteamento internacionais. Para uma única solicitação HTTP, o efeito na latência não deve ser perceptível para usuários "normais" (embora ainda mensuráveis, é claro), geralmente não mais que 300 ms. Na primeira solicitação (ou visita), o efeito é somado porque muitos arquivos podem ter que ser carregados de uma só vez.