Does Corosync and Pacemaker work with Ubuntu 16.04?
Sim. Pacotes do Ubuntu Corosync e Pacemaker for Xenial (16.04), que podem ser instalados com um simples comando: # apt install corosync pacemaker
Does Corosync and Pacemaker work with Amazon EC2 (Ubuntu) instances?
Tecnicamente, sim, mas há muitos casos importantes que você deve saber. A maior preocupação que tenho é o desempenho / confiabilidade da rede entre as instâncias padrão do EC2.
O Corosync lida com a comunicação entre os nós e detecta quando os nós desaparecem do cluster (falhas de nós, falhas de rede, etc). Como a rede da AWS é uma espécie de caixa preta (da perspectiva do administrador), é difícil avaliar a confiabilidade dessa rede. Em clusters "on-prem", esta rede é geralmente um par de conexões diretas entre nós, ou um switch empilhado, então algo altamente confiável e de alto desempenho. Eu não estou dizendo que a rede da AWS não é confiável ou de alto desempenho, mas é muito compartilhada e certamente mais complexa do que um conjunto de cabos crossover. Quando a rede do Corosync é interrompida, mesmo por apenas 1000ms (1s), ela irá declarar um nó inativo (em um cluster de dois nós, com tempos limite padrão). Espero que isso aconteça de vez em quando e saiba como se recuperar dele.
Dito isso, parece que você pode obter "instâncias de cluster" na AWS, que oferecem uma rede de baixa latência / alto desempenho entre nós. É provável que isso seja o que você deseja usar, pois parece abordar a principal preocupação que tenho.
Independentemente das instâncias escolhidas, o Pacemaker deve ser configurado com o STONITH ativado, para garantir que, quando um nó ficar offline ou sua rede for interrompida, ele seja protegido do resto do cluster. STONITH é uma forma de Fencing que usa um nó de cluster em um estado desconhecido e o coloca em um estado conhecido: desligado. O STONITH é ignorado na maioria dos tutoriais que você encontra on-line porque depende muito do seu ambiente / hardware / hipervisor, mas é uma das partes mais importantes de um cluster de HA configurado adequadamente.
Parece haver um novo agente fence para o AWS no git do ClusterLab: link
How to do that (sync two or more Amazon EC2s together)?
Essa parte é um pouco ambígua demais para responder com precisão. Você está falando sobre a sincronização de diretórios, bancos de dados, volumes ou o que? Se você atualizar sua pergunta para ser mais específica, atualizarei minha resposta;)