Na verdade, estou trabalhando em algo muito semelhante ao que você descreveu (um cluster de failover no EC2) e, depois de experimentar o Heartbeat, estabeleci o Corosync como minha camada de mensagens. O Corosync será executado em vários servidores e suporta Unicast (UDPU) a partir da versão 1.3.0 (a partir de novembro de 2010). Eu configurei e testei o Corosync na nuvem EC2 da Amazon (usando o Linux AMI da Amazon) e posso confirmar que ele funciona sem problemas.
Um arquivo udpu de amostra está instalado em / etc / corosync.
Adicione um bloco de membro à seção de interface para cada nó e especifique o transporte como updu. (Eu usei a mesma porta que o heartbeat no exemplo abaixo, mas você pode alterá-lo conforme desejado).
por exemplo:
totem {
version: 2
secauth: off
interface {
member {
memberaddr: 10.xxx.xxx.xxx
}
member {
memberaddr: 10.xxx.xxx.xxx
}
ringnumber: 0
bindnetaddr: 10.xxx.xxx.xxx
mcastport: 694
}
transport: udpu
}
(Supõe-se que o Heartbeat suporte 3+ clusters de nós nas versões 1.2.3+, embora eu nunca tenha tentado isso pessoalmente e não sei se funcionaria com Unicast).