Você não especificou quantos servidores você tem. Eu suponho que você tem dois.
Com 2 servidores, você pode fazer, e. o seguinte:
- crie um registro DNS externo que aponte para dois endereços IP diferentes
- atribua esses 2 endereços IP a 2 serviços de cluster
- o nó principal dos 2 serviços de cluster deve estar em máquinas diferentes
Isso cuida da redundância no nível do servidor da web. Existem outras soluções também e, dependendo das suas necessidades de disponibilidade / balanceamento de carga, você pode pular partes dos 3 passos acima.
Em relação ao MySQL, a melhor solução depende das características de leitura / gravação do aplicativo. Verifique a documentação do MySQL como ponto de partida e implemente um cluster MySQL ou um MySQL replicado banco de dados.