J'ai un conteneur Elastic Beanstalk Docker qui exécute une application Sinatra. En utilisant ebextensions, j'ai une instance haproxy s'exécutant sur la boîte EC2 - qui transmet le trafic du port 9090
au docker_ip:application_port
. La configuration fonctionne bien, puisque je suis capable de boucler l'IP de la boîte EC2 sur le port 9090
et de toucher les extrémités de mon application (je peux aussi voir les journaux haproxy)L'écouteur de l'équilibreur de charge élastique ne fonctionne pas pour un port
Maintenant, j'ai configuré un écouteur tcp supplémentaire sur Elastic loadbalancer pour transférer le port 9090 vers le port 9090 (le port par défaut est le port 80 -> 80). Cependant, quand j'essaie d'accéder à domain_name:9090
, il expire. Si je viens d'accéder domain_name
cela fonctionne. Toutes les idées sur la façon dont je peux procéder au débogage, pourquoi les auditeurs de l'équilibreur de charge ne fonctionnent pas comme prévu.
Notez que la visibilité ELB est définie sur public. Donc, j'ai activé la journalisation pour l'équilibreur de charge et j'ai directement accédé à son nom DNS. Il connecté les requêtes envoyées au port 80, mais pas ceux envoyés au port 9090.
Une autre mise à jour - je courais un tcpdump sur la boîte EC2 sur le port 9090. Il n'a pas capturé des paquets où je courais load_balancer_domain:9090
Résolu - je devais modifier les règles du groupe de sécurité sur l'équilibrage de charge pour permettre le trafic sortant sur le port 9090 pour l'instance.
merci, cela a fonctionné –
Ce SO m'a sauvé la vie. Été chercher partout pour pourquoi l'équilibreur de charge n'a pas envoyé le trafic à l'instance - n'a pas pensé à vérifier les règles de trafic _outbound_. JE VOUS REMERCIE! –