Bem, não quero dizer apenas o óbvio, mas a ideia geral é levar essa complexidade para os serviços gerenciados pela Amazon.
Então, no frontend, você usaria o ELB (Elastic Load Balancing) para fornecer balanceamento de carga altamente disponível. No final, você usa o Amazon Relational Database Service (MySQL hospedado), SimpleDB e S3 para armazenamento. Todos eles são gerenciados pela Amazon e contêm algum tipo de manipulação de alta disponibilidade / failover.
Isso normalmente deixa seus servidores de aplicativos da web e todos os tipos de servidores menos comuns que você pode estar usando (servidores de renderização, armazenamentos de dados NoSQL autoinstalados, etc).
Os servidores Webapp geralmente são bem administrados com as verificações de integridade incorporadas no ELB. Você pode aceitar uma pequena degradação de desempenho quando um servidor webapp estiver inativo ou provisionar consistentemente um servidor mais do que o necessário. Ou, se sua configuração for simples, quando um servidor webapp falhar, o ELB, junto com a Cloudwatch, poderá gerar automaticamente um novo servidor webapp para você.
Seus próprios servidores personalizados são outro assunto. Para eles, é verdade, você está sozinho e precisará se contentar com os métodos incorporados do aplicativo, ou colocar fita adesiva junto com scripts personalizados / ferramentas de alta disponibilidade de código aberto.
A solução da compra da Rightscale pode ser muito cara. Mas as ferramentas menos dispendiosas da Amazon, como o ELB, o alerta básico do CloudWatch (agora disponível para resolução de 5 minutos) ou o AutoScale, valem a pena se você precisar de alta disponibilidade.