Puncte:0

Cum să configurați redirecționări condiționate pe un Application Load Balancer pentru un mediu Elastic Beanstalk?

drapel ng

Am două medii Elastic Beanstalk cu o singură instanță bazate pe Docker (unul pentru punere în scenă și unul pentru producție).

Aș dori să migrez aplicația (Elastic Beanstalk) pentru a sta în spatele unui echilibrator de încărcare (în primul rând pentru a profita de Manager de certificate AWS).

Momentan folosesc .ebextensii pentru a personaliza configurația Nginx pentru a satisface cerințele de rutare a traficului aplicației mele:

  • Pentru cale /xyz/, traficul ar trebui să ajungă la aplicație prin portul 80 (adică HTTP)
  • Pentru toate celelalte solicitări către portul 80, ar trebui să fie emis un răspuns de redirecționare (301) către portul 443 (HTTPS).
  • Toate solicitările de pe portul 443 (HTTPS) ar trebui să treacă prin aplicație.

Deci intrebarea mea este: cum pot realiza acele cerințe de rutare folosind un echilibrator de încărcare în fața unuia dintre mediile mele Elastic Beanstalk? Mă gândesc să am un echilibrator de încărcare pentru fiecare mediu, de dragul flexibilității.

Am întâlnit următoarele soluții posibile (niciuna nu pare ideală):

  1. Configurați un nou mediu Elastic Beanstalk cu un mediu dedicat Aplicație Load Balancer și apoi modificați ascultătorii și regulile echilibratorului de încărcare prin intermediul serviciului de consolă EC2 (similar cu ceea ce acest Intrarea din documentația Elastic Beanstalk pare să sugereze, sub „Redirecționați traficul HTTP către HTTPS > Configurați echilibrul de încărcare”).
  2. Configurați un nou Application Load Balancer prin intermediul serviciului de consolă EC2, creați un nou mediu Elastic Beanstalk conectat la noul Application Load Balancer ca un Echilibrator de încărcare a aplicației partajate și apoi urmați aceste ghiduri (acest și acest) pentru a (sperăm?) să se asigure că echilibratorul de încărcare și mediul Elastic Beanstalk sunt sincronizate (în ceea ce privește gestionarea instanțelor și rutarea traficului).
  3. Configurați un nou mediu Elastic Beanstalk cu un aplicație Load Balancer dedicat și apoi modificați aplicația astfel încât să asculte pe trei porturi (unul pentru /xyz/ trafic, unul pentru redirecționarea HTTP -> HTTPS și unul pentru traficul HTTPS), care documentează Aici pare să-mi spună să fac (dar nu menționați cum să obțin mai multe porturi de ascultare într-o singură aplicație).

Opțiunile unu și două implică trecerea în spatele „spatelui” lui Elastic Beanstalk pentru a modifica resursele subiacente (ceea ce ezit să o fac), iar a treia opțiune ar cere să-mi modific aplicația (pe care aș dori să o evit).

Este vreuna dintre aceste opțiuni recomandate? Există o variantă mai bună?

Puncte:0
drapel ng

După ce am contactat asistența tehnică AWS în acest sens, pot confirma că:

  • A doua opțiune este acceptată și ghidurile pe care le-am menționat nu sunt necesare. i.e. Atâta timp cât selectați echilibrul de încărcare a aplicației (creat din EC2) ca echilibrator de încărcare partajat (în mediul dvs. Elastic Beanstalk), acestea vor fi sincronizate (în ceea ce privește rutarea adecvată a traficului către instanțe din mediu).
  • O altă posibilitate este să luați prima opțiune, dar în loc să modificați echilibrul de încărcare în EC2 (care presupun că nu ar fi recomandat), puteți utiliza „.ebextensions” pentru a modifica echilibrul de încărcare. Deci, în general, ori de câte ori consola AWS nu furnizează interfața grafică pentru a îndeplini cerințele dvs. Elastic Beanstalk, „.ebextensions” pot fi folosite pentru a rezolva interfața grafică a consolei Elastic Beanstalk care lipsește.
Rami avatar
drapel us
Aveți șabloane despre cum ați făcut modificarea în CloudFormation, în prezent am aproape aceeași problemă.
drapel ng
Nu, îmi pare rău, nu am folosit CloudFormation.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.