Topic de Dabhu00 :

[Help] Besoin d'un expert AWS réseau pour connecter un websocket sur EC2 à un ALB

Supprimé
  • 1

Ca fait beaucoup trop d'heures que je galère sur ça.

J'ai un websocket codé en python que je run dans un Docker container sur un EC2.
Le server tourne sur le port 8765 et écoute également le port 8080 pour le health check de l'ALB

J'arrive à me co à mon websocket en passant directement par l'IP de l'EC2 en ws://... donc pas de problème de ce côté là.
Là où ça se complique: pour que mon front (en HTTPS) puisse se connecter au websocket, je dois passer par le wss:// et donc, si j'ai bien compris, passer par un ALB qui pourra gérer le certificat SSL/TLS. Bref j'ai crée mon certificat avec ACM, vérifié que tout était OK côté DNS et paramétré ce qu'il fallait dans Route53 (en mappant mon ALB à mon sous domaine via un ALIAS)

Côté ALB, je route le traffic en HTTPS (port 43) vers mon groupe cible qui écoute le port 8765. Le health check est OK.

J'ai aussi vérifié les groupes de sécurité de l'EC2 et de l'ALB, ainsi que le VPC. Tout à l'air bon.

Mon websocket est codé en python avec websockets

    host = "0.0.0.0"
    websocket_port = 8765
    health_check_port = 8080

    server = Server(host, websocket_port, health_check_port)
    
    # Run the server
    asyncio.run(server.run())

Et j'ai aussi vérifié que le container exposait bien les bons ports (de toute façon si c'était pas le cas je ne pourrais pas me connecté à partir de l'ip de l'EC2).

Maintenant, malgré tout ça, impossible de me co en passant par mon DNS et l'ALB. Je me tappe des NS_ERROR_WEBSOCKET_CONNECTION_REFUSED

J'ai regardé les logs côté ALB. Il reçoit bien la requête mais se mange un 502 BAD GATEWAY

https 2024-08-15T10:01:50.136541Z app/xxx/xxx.xxx.xx.xxx xxx xxx.xx.x.xxx:8765 -1 -1 -1 502 - 870 688 "GET https://xxx.xxx.io:443/ HTTP/1.1" "Mes Headers" TLS_AES_128_GCM_SHA256 TLSv1.3 arn:aws:elasticloadbalancing:eu-west-3:xxx:targetgroup/xxx/xxx"Root=xxx" "xxx.xxx.io" "arn:aws:acm:eu-west-3:xxx: certificate/xxx" 0 2024-08-15T10:01:50.132000Z "forward" "-" "-" "xxx.xx.x.xxx:8765" "-" "-" "-" xxx

J'ai épuisé un peu toutes mes options là. Donc si y'a un pro qui passe par là et qui voit un truc obvious que j'ai loupé, je suis preneur https://image.noelshack.com/fichiers/2017/30/4/1501187858-risitassebestreup.png

Même GPT et Claude n'ont pas su me débloquer jusqu'à maintenant, je compte sur vous https://image.noelshack.com/fichiers/2017/39/3/1506463227-risitaspeur.png

Bon bah Claude a fini par résoudre mon problème. :hap:
Finalement c'était le groupe cible le problème, configuré pour échanger avec l'EC2 en HTTPS alors que le websocket attendait du HTTP (Le HTTPS étant côté Load Balancer).

Franchement respect aux kheys qui font ça à longueur de journée, c'est un enfer pour moi :hap:

  • 1

Données du topic

Auteur
Dabhu00
Date de création
15 août 2024 à 14:39:21
Date de suppression
30 août 2024 à 22:05:00
Supprimé par
Auteur
Nb. messages archivés
3
Nb. messages JVC
3
En ligne sur JvArchive 194