Implementăm o aplicație care utilizează AWS elastic beanstalk cu autoscaling, în spatele unui echilibrator de încărcare. În prezent, folosim un echilibrator de încărcare a aplicației.
Ne-am dori să putem direcționa unii utilizatori/cereri către o anumită instanță din spatele echilibratorului de încărcare, în mod ideal, prin URL. De exemplu, dacă ar veni o solicitare http pentru adresa URL http://domeniul_aplicație/ceva/123, aceasta ar trebui direcționată către instanța 123, în timp ce http://domeniul_aplicație/ceva/456 ar trebui direcționată către instanța 456. O POST sau alt antet http ar putea funcționa, de asemenea, dacă ar fi mai ușor. Sau ar putea chiar să implice ceva ce se face pe partea clientului folosind Javascript.
Ceea ce este important pentru noi este că aceasta ar putea fi orice exemplu, dintre multe dintre cele scalate automat. Fluxul pe care îl avem în vedere este că un utilizator merge la o instanță, acea instanță îi oferă un link undeva și apoi, dacă altcineva vizitează acel link, va ajunge pe aceeași instanță.
Este posibil așa ceva?
Am găsit câteva sugestii pentru a găsi ID-ul instanței unei anumite instanțe aici: Cum să găsesc instanța ec2 care procesează cererea mea și care este transmisă de un Elastic Load Balancer
Și aceasta menționează, de asemenea, cookie-ul pe care ELB îl folosește pentru a menține lipiciitatea sesiunii - ar putea exista o modalitate de a suprascrie cookie-ul pentru a face ruta ELB către o altă instanță?
Un alt lucru pe care l-am găsit sunt grupurile țintă. Am putea crea multe grupuri țintă cu câte o instanță în fiecare, iar apoi ceea ce vrem să facem ar trebui să funcționeze, cred. Dar problema este că vrem ca acest lucru să funcționeze cu scalarea automată și nu cred că există o modalitate de a scala automat grupurile țintă (doar instanțe în cadrul grupurilor țintă), nu-i așa?
O alternativă ar putea fi ca instanțele în sine să spună echilibratorului de încărcare dacă doresc să accepte conexiunea, dar nu știu dacă asta ar putea funcționa. De exemplu.dacă instanța 456, la primirea unei cereri cu o adresă URL de exemplu 123, returnează un cod de eroare HTTP temporar și apoi autoscaler-ul îl redirecționează către o altă instanță, până când în cele din urmă îl direcționează către 123?
Orice alt mod de a face acest lucru ar fi bine, desigur! Multumesc mult!