Disons que j'ai un site web : mysite.com
qui fonctionne sur AWS, servi à partir de quelques instances EC2 derrière un équilibreur de charge d'application. L'équilibreur de charge termine SSL par un certificat ACM.
J'ai besoin d'acheminer les demandes entrantes vers une URL (exemple : mysite.com/{user_id}/something/here/
) loin de l'équilibreur de charge et les envoyer plutôt à une fonction Lambda (plus précisément, je veux juste capturer le corps de la requête et l'écrire quelque part, puis renvoyer un HTTP 200 ; cela ne doit pas nécessairement être fait via une fonction Lambda).
L'ALB vous permet de router vers différents groupes cibles, mais il semble qu'ils ne puissent contenir que des instances EC2. La documentation indique que "Vous enregistrez les cibles, telles que les instances EC2, avec un groupe cible". sinon peuvent être ajoutées si ce ne sont pas uniquement des instances EC2 ?
Je ne veux pas avoir à faire tourner ma propre instance de haproxy, etc., ni à les acheminer via nginx une fois que les requêtes passent par l'ALB et atteignent les serveurs web, car le but de cet exercice est de réduire les choses que je dois gérer, pas de les augmenter !
Y a-t-il un moyen de contourner ce problème ?
0 votes
D'après un examen de la documentation (je n'ai pas encore utilisé ALB), il semble que vous deviez cibler les instances EC2. Je pense que le moyen le plus simple de le faire est de passer par un proxy comme Nginx. Je me demande si la passerelle API ne pourrait pas jouer un rôle, mais cela signifierait acheminer toutes les demandes à travers elle. Pouvez-vous demander au client d'appeler un point de terminaison différent pour cette requête, un sous-domaine qui est mappé à Lambda ? Si vous modifiez votre question pour donner plus de détails sur votre cas d'utilisation, vous pourriez obtenir de meilleures informations.
0 votes
Ma principale préoccupation est que si je le proxy avec nginx et autres, je dois maintenir cette instance et travailler pour qu'elle reste en place pendant les pics de trafic, et je fais cela pour essayer de réduire la redondance en l'éloignant le plus possible de mes mains. Malheureusement, je ne peux pas non plus modifier les chemins appelés.
0 votes
Quelque chose comme API Gateway qui vous permet d'accéder à un service AWS (DynamoDB, SQS..) me semble parfait, mais je ne vois pas comment l'implémenter dans ma configuration existante, car je dois intercepter une URL allant à l'ALB et l'envoyer uniquement à API Gateway, mais laisser tout le reste passer par l'équilibreur de charge tel que configuré.
0 votes
Si cette configuration est plausible, API Gateway serait probablement la passerelle principale. Je n'en sais pas assez pour savoir si c'est le cas ou non. Je pense qu'il est préférable que vous utilisiez un proxy via une instance EC2.