O que você provavelmente quer fazer é separar seu aplicativo em camadas discretas.
-
Servidor da Web
-
Servidores de aplicativos
-
Servidores de banco de dados
Em seguida, torna-se muito mais fácil dimensionar cada um conforme as necessidades. No entanto, ao fazer isso, seus custos de tamanho mais baixo aumentam, já que você precisa começar com 3 servidores. Se você não separar as camadas, se estiver reduzindo a carga na camada do aplicativo, precisará gerar uma sobrecarga adicional ao iniciar novos servidores, já que o banco de dados também está incluído.
Para um banco de dados MySQL, eu usaria o Amazon RDS, pois são os mesmos tipos de instância (na maior parte) como uma instância EC2 que você cria, mas também inclui backups, consulte este anúncio