web-dev-qa-db-fra.com

Comment puis-je déployer un cluster haproxy évolutif et fiable sur Amazon EC2?

Nous avons besoin de certaines fonctionnalités plus avancées que l'ELB fournit (surtout inspection L7), mais il n'est pas évident que de gérer des objets comme un rythme cardiaque et une disponibilité élevée avec quelque chose comme Haproxy utilisant EC2. Il y a une probabilité élevée que nous aurions besoin de 3 nœuds haproxy ou plus dans le cluster, de sorte que le battement de coeur simple entre deux nœuds ne fonctionne pas.

On dirait que d'avoir une couche de battement de coeur devant les nœuds haproxy serait la voie à suivre, éventuellement à l'aide d'IPV, mais la gestion des modifications de la configuration à mesure que les modifications de cluster EC2 (via des modifications intentionnelles, telles que l'expansion ou la non intentionnelle, telles que perdre un Le nœud EC2) semble non trivial.

De préférence, la solution couvrirait au moins deux zones de disponibilité.

En réponse à QS: Non, les sessions ne sont pas collantes. Et oui, nous aurons besoin de SSL, mais cela pourrait en théorie être géré par une autre configuration entièrement - nous sommes en mesure de diriger le trafic SSL vers un emplacement différent de la circulation non SSL.

25
Don MacAskill

Si vous ne faites pas de sessions collantes, ou si vous utilisez le style Tomcat/Apache (Ajoutez le nœud ID à SessionID, par opposition à la conservation de l'état dans la LB), j'utiliserais alors l'ELB devant un groupe de haproxies. ELB a un HealthCheck intégré, afin que vous puissiez le faire surveiller les haproxies et prendre des personnes en bas de la piscine. Beaucoup de moins à installer que le basculement de battement de coeur.

En ce qui concerne les changements de propagation, je n'ai pas de bonne réponse. La marionnette est idéale pour la configuration initiale et la mise en œuvre des modifications, mais pour ajouter/supprimer des nœuds, vous avez tendance à vouloir une réponse plus rapide que son intervalle de vote de 30 minutes.

2
Ben Jencks

Je ne l'ai pas utilisé moi-même mais j'ai vu beaucoup de gens mentionnent à l'aide de la marionnette pour gérer ce type de problèmes sur EC2

1
JamesRyan