web-dev-qa-db-fra.com

Equilibreur de charge et page de maintenance AWS

J'utilise AWS Load Balancer avec 3 serveurs EC2 et j'essaie de servir une page de maintenance lorsque le site est en maintenance. 

Cette page doit renvoyer le code HTTP 503, car il s'agit d'un code approprié pour un mode de maintenance qui évite les problèmes de référencement.

Lorsque je renvoie 503 du code de l'un de mes serveurs, Load Balancer le rend "Pas en service" et lorsque tous les serveurs renvoient 503, le site Web renvoie une page vierge (car tous les serveurs sont déconnectés).

Mes questions sont:

1) Existe-t-il un moyen de servir une page statique personnalisée avec un message pour les visiteurs de Load Balancer s'il n'y a pas de serveurs en bon état? 

2) Ou comment configurer le contrôle d'intégrité de Load Balancer pour s'assurer qu'il ne considère pas 503 comme une raison de marquer le serveur comme étant "malsain"?

Merci!

13

Vous pouvez implémenter une route supplémentaire sur votre serveur d'applications, disons/hcm (pour la maintenance de la vérification de l'état), qui répond toujours 200 OK. Lorsque la maintenance est terminée, vous modifiez la vérification de santé ELB par programme pour utiliser la cible/hcm qui renvoie 200 OK au lieu de/ou /index.html, qui renvoie le service 503 non disponible. Annulez ces modifications lorsque vous quittez la maintenance.

12
jarmod

Peut ne pas répondre à vos exigences 503, mais une bonne option consiste à utiliser les basculements s3 et dns: https://aws.Amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns -failover-and-s3-website-hosting/

4
anAWS Ninja

L'équilibreur de charge vous servira d'un 503 lorsque vous ne disposerez plus d'aucun serveur en bonne santé. Vous ne devez donc rien faire de spécial.

Si vous renvoyez autre chose qu'un 200 sur le contrôle d'intégrité, ELB retirera la machine de l'équilibreur de charge après l'échec du nombre configuré de contrôles d'intégrité.

Donc, pour récapituler, vous pouvez potentiellement servir 503 à partir de votre application en maintenance, mais vous devez toujours renvoyer 200 pour des contrôles d'intégrité. Si vous ne vous souciez pas du contenu de la page, vous pouvez simplement supprimer les machines de l'équilibreur de charge (ou des vérifications de l'état d'échec) et le LB fera le bon choix pour vous.

0
Mircea