Avanceret belastningsbalance og klynge i Amazon Web Services

SENDT AF Zevenet | 24. juli 2020

Introduktion

Den følgende artikel beskriver, hvordan man indstiller avancerede belastningsbalanceringstjenester med ZEVENET Load Balancer til høj tilgængelighed i Amazon Web Services EC2-infrastruktur. Vi beskriver proceduren til konfiguration af a ZEVENET klynge og konfigurere en TCP-belastningsbalanceprofil til belastningsbalance-HTTP-tjenester med 3 web-backend-servere.

AWS og ZEVENET infrastruktur

Følgende diagram beskriver den arkitektur, vi ønsker at implementere webbelastningsbalancering med ZEVENET Application Delivery Controller i AWS.

Det kræves at implementere to ZEVENET-applikationsleveringskontrollere, denne skabelon er tilgængelig på Amazon Web Services markedsplads, og hver ZEVENET-applikationsleveringscontroller er konfigureret i den samme VPC end web-backend-servere, som det er vist i diagrammet ovenfor med undernettet 17.32.16.0./20.

Hver ZEVENET ADC-instans er konfigureret med en grænseflade eth0, og hver instans tildeles en Elastisk IP, tildeles også en yderligere elastisk IP til en yderligere IP gennem eth0 i ZLB1-prod eksempel, der vil blive brugt til belastningsbalanceringsformål, som beskrevet nedenfor:

ZLB1-prod er tildelt 172.31.20.89 i eth0, fås direkte adgang til denne instans af en Elastisk IP 34.225.30.206
ZLB2-prod er tildelt 172.31.26.237 i eth0, fås direkte adgang til denne instans af en Elastisk IP 54.161.240.226

En yderligere IP er tildelt ZLB1-prod og konfigureret i belastningsbalanceren med navn eth0: VIP1 og IP 172.31.26.47, denne IP bruges til at konfigurere her en Load Balancing Service og være en del af cluster service, så denne IP fungerer kun i et af ZEVENET-tilfælde ad gangen, som administrerer ACTIVE rolle i klyngen. Denne interne IP er tildelt en Elastic IP, som klienter har adgang til for at oprette forbindelse til den offentliggjorte rigtige webtjeneste.

Endelig backend 01, backend 02 og backend 03 er EC2-tilfælde med Linux-baserede webservere, disse tilfælde er en del af den belastningsafbalancerede service, hvor klienten opretter forbindelse, når dens anmodede om http://54.144.190.17/ .

Implementering af to ZEVENET-forekomster på AWS Marketplace

Lader distribuere to ZEVENET Load Balancers og konfigurere dem som beskrevet tidligere.

Gå til afsnittet EC2-tilfælde, og tryk ind Start forekomst.

1. Søg efter den påkrævede ZEVENET Load Balancer Enterprise Edition AMI. Dette AMI er baseret på en BYOL-licens model. Evalueringsfasen er gratis, og hjælp i løbet af en måned er inkluderet, efter dette tidsrum kræves der en endelig licens for at arbejde.

2. Vælg en Forekomst Type. Vælg her den nødvendige forekomst baseret på de ressourcer, du vil indlæse balance. En enkelt t2. lille eksempel er godt at begynde at arbejde med L4 profiler, men hvis du vil bruge HTTP-profiler så vil vi anbefale mindst a t2.medium instans. Men, a t2.micro forekomst er god nok til testformål.

3. Konfigurer Forekomstdetaljer. Vælg her VPC, hvor der kører de nye ZEVENET-forekomster, i dette konfigurationseksempel introducerer vi ZEVENET EC2-forekomster i den samme VPC end de virkelige web-backends-servere, der allerede er konfigureret.

4. Tilføj Opbevaring. Som standard kræver ZEVENET EC2-forekomst mindst 12 GB lagerplads, hvis du vil aktivere logfiler som standard, vil vi anbefale at øge denne størrelse mindst til 20 GB. ZEVENET kræver ikke adgang til Disk, bare for at gemme logfiler, så Volumenstype til generelle formål er et godt valg.

5. Tilføj tags. Konfigurer her nogle beskrivelseskoder om ønsket.

6. Konfigurer Sikkerhedsgruppe. ZEVENET bruger som standard TCP-porten 444 til HTTPS-web GUI-styringsformål og TCP-porten 22 i SSH til kommandolinjestyrings- og klyngeformål. Derudover hver Virtual Port der bruges i virtuelle belastningsbalancer-tjenester skal være inkluderet i din sikkerhedsgruppe. Vi har konfigureret en sikkerhedsgruppe, der bruges til disse ZEVENET EC2-tilfælde i en mindre restriktiv tilstand som følger:

TYPE = All traffic
Protocol = ALL 
Port Range = All
Source = 0.0.0.0/0
Description = Allow all from all to all

Denne sikkerhedsgruppe er oprettet til testformål, du kan vælge at blokere alle porte og kun tillade brugt til belastningsbalancering og styring.

Når konfigurationsassistenten kommer tilbage til EC2-forekomstlisten, begynder det nye apparat at blive implementeret og Initiering tilstand vises. Derefter konfigureres nu et beskrivende navn i feltet Navn, i vores tilfælde er vores indsatte lastbalancere i EC2 navngivet ZLB1-prod og ZLB2-prod.

Konfiguration af netværket til ZEVENET EC2-forekomster

Når ZEVENET-virtuelle apparater er installeret, og Forekomstater viser Løb tilstand kan vi fortsætte med at konfigurere netværket.

Klik på højre knap over ZLB1-prod apparatet og vælg Netværk> Administrer IP-adresserI Administrer IP-adresser pop op-vindue tryk ind Tildel ny IP og tryk på knappen Ja, opdatering, tildeler systemet en ny IP til eth0 i den samme VPC. Husk denne nye IP, i vores eksempel vil denne nye IP være 172.31.26.47. Systemet tildelte en ny IP, der vil blive brugt til belastningsbalanceringsformål i den fremtidige klyngtjeneste.

Gå til sektion Elastiske IP'er og tildele hver ZEVENET-instans en ny Elastisk IP. Disse vil blive brugt til styringsformål, ikke til belastningsbalancering.

I det samme Elastisk IP tildele en ny IP til ZLB1-prod, men i dette tilfælde skal du vælge Privat IP adresse 172.31.26.47. Efter denne konfiguration ZLB1-prod vil være tilgængelig via web og ssh med IP 34.225.30.206, men ZLB2-prod er tilgængelig gennem de samme tjenester med IP 54.161.240.226 og Elastisk IP 54.144.190.17 tildelt IP 172.31.26.47.

Aktivering af ZEVENET EC2-forekomster med tidsmæssige licenser

Når de elastiske IP'er er konfigureret, vil de virtuelle indlæsningsbalancere være tilgængelige som følger:

ZLB1-prod vil være tilgængelig via https://34.225.30.206:444 brugerrot og adgangskode til forekomst-id.
ZLB1-prod vil være tilgængelig gennem ssh i IP 34.225.30.226 med brugeradministrator og privat certifikatfil, dette er konfigureret på EC2-implementeringstidspunktet.
ZLB2-prod vil være tilgængelig via https://54.161.240.226:444 brugerrot og adgangskode til forekomst-id.
ZLB2-prod vil være tilgængelig gennem ssh i IP 54.161.240.226 med brugeradministrator og privat certifikatfil, dette er konfigureret på EC2-implementeringstidspunktet.

Hvis du overvejer at ændre værtsnavnet før du fortsætter, skal du i så fald genstarte EC2-forekomsten for at anvende ændringer.

Når adgangen til webgui'en er udført med succes, vil du se to vigtige værdier, værtsnavnet og certifikatnøglen, begge oplysninger er unikke pr. Indlæsningsbalancer og er relateret til aktiveringslicensen. Brug disse oplysninger i følgende URL som beskrevet: https://www.zevenet.com/activate-enterprise-edition-cloud-evaluation/

Når formularen er udfyldt, sender systemet automatisk licensen til den angivne e-mail. Upload den modtagne PEM-aktiveringslicens via web-GUI i hver belastningsbalancer, når dette er gjort, er web-GUI låst op, og alle funktioner er fuldstændigt aktiverede og operationelle.

Udfør den samme aktiveringsprocedure i begge noder ZLB1-prod og ZLB2-prod.

Konfiguration af den virtuelle IP til belastningsbalancering

I det foregående punkt tildelte vi allerede en yderligere IP til eth0 172.31.26.47 i forekomsten ZLB1-pro, og denne IP er blevet tildelt en Elastisk IP 54.144.190.17, nu venter den på at udføre denne konfiguration i ZBL1-pro belastningsbalanceren.

Gå til ZLB1-pro belastningsbalanceren gennem webgrænsefladen ved hjælp af dens Elastic IP https://34.225.30.206:444, når du er logget ind, gå til navigationsmenuen Netværk> Virtuelle grænseflader> Opret virtuelt interface, og udfør følgende konfiguration:

Parent Interface = eth0 172.31.26.47

* Da EC2-forekomsterne ikke ved noget om Elastiske IP'er, skal vi her konfigurere den fysiske IP for EC2-instansen, der er knyttet til den offentlige Elastiske IP, der bruges til belastningsbalanceformål 54.144.190.17

Virtual Interface name = vip1
IP Address = 172.31.26.47

Presse Opret for at anvende konfigurationen.

Nu en ny IP 172.31.26.47 med navn eth0: VIP1 er konfigureret i ZLB1-pro EC2 ZEVENET Load Balancer og kan pinges fra alle EC2-forekomster i denne VPC.

Konfiguration af ZEVENET Cluster-tjenesten i Amazon Web Services

ZEVENET Load Balancer-klyngen fungerer i tilstandfuld aktiv-passiv tilstand betyder det, at klyngeressourcerne er konfigureret i begge noder, men kun tilgængelige i ACTIVE node. Når en sådan knude mislykkes, og denne rolle startes i det andet medlem, er der brug for adgang til klyngens ressourcer igen. Da de virtuelle IP'er også er klyngeressourcer, skal Amazon Web Service annonceres på en eller anden måde, at den virtuelle IP er konfigureret til belastningsbalancering 172.31.26.47 arbejder nu via ZLB2-prod.

Til dette bruger ZEVENET Cluster-tjenesten den AWS-klient, der skal konfigureres med tilladelser i EC2-modul til styring af grænseflader, så inden ZEVENET Cluster-tjenesten starter, er vi nødt til at forberede den. Så lader konfigurere en AWS Nøgle på din konto med tilladelser til at administrere IP'er i EC2 til at blive brugt i AWS kommandolinjegrænseflade.

Gå til Amazon-konsol https://console.aws.amazon.com/iam/ , vælg derefter i navigationsmenuen Bruger. Klik på knappen Tilføj bruger.

Configure a descriptive User name = aws-for-zlb

In Vælg AWS-adgangstype vælge Programatisk adgang og tryk på knappen Næste: Tilladelser. Nu i Angiv tilladelser sektionspress ind Opret gruppe og udfyld derefter feltet i det nye vindue Gruppe navn med et beskrivende navn, f.eks. AmazonEC2og til sidst i marken Filtrer politikker søg og vælg den navngivne politik AmazonEC2FullAccess som giver tilladelse til at ændre de tildelte IP'er mellem EC2-tilfælde blandt andre.

Tryk på Næste: tags og Næste: Anmeldelse. Tryk til sidst ind Opret bruger, viser det sidste vindue dig Adgangsnøgle-ID og Hemmelig adgangsnøgle for denne bruger, skal du gemme dem til fremtidig brug.

Nu er vi klar til at konfigurere ZEVENET Cluster-tjenesten, så gå til webpanelet i ZLB1-pro gennem den tildelte offentlige IP https://34.225.30.206:444, sektion System> Klynge og udfyld formularen efter eksemplet:

AWS-legitimationsoplysninger: Adgangsnøgle og hemmelig nøgle er de allerede genererede værdier i tidligere linjer. Regionen skal du vælge det område, hvor din ZEVENET Application Delivery-controller er implementeret.

Konfigurer klynge:

Lokal IP: vælg IP og NIC for eth0.
Fjern IP: indtast her IP for eth0 i knudepunktet ZLB2-pro.
Adgangskode til ekstern knude og bekræft password: indtast her rodadgangskoden til ssh i den anden knude, som standard forekomst-ID for ZLB2-pro.

Klik på Generer knappen og vent nogle få sekunder i mellemtiden den node, hvor du kører konfigurationen, vil tage ACTIVE rolle (ZLB1-pro) og den anden (ZLB2-pro) vil tage PASSIV rolle.

I dette punkt er ZEVENET Cluster blevet konfigureret i AWS, og den er klar til at arbejde, lad os konfigurere vores første klyngede belastningsafbalancerede service.

Konfiguration af en simpel L4 Load-balance til webservices

Gå til LSLB> Gårde> Opret gård med følgende parametre.

Tag højde for, at den anvendte virtuelle IP 172.31.26.47 er den virtuelle IP konfigureret tidligere og en ressource i klyngen, som altid kan nås fra ACTIVE node. Trykke Opret og fortsæt.

I det nye vindue konfigureres nu Globalt afsnit som vist nedenfor:

Og til sidst skal du konfigurere sektionen Serviceydelser som beskrevet:

Brug IP-persistens med en timeout på 60 sekunder bare i tilfælde af at du har brug for at garantere, at den samme klient-IP vil være forbundet til den samme backend i en bestemt periode. Konfigurer avanceret sundhedskontrol med FarmGuardian. Brug check_tcp som en simpel sundhedstjek for at kontrollere, at TCP-backend-port 80 åbnes i hver backend. Og derefter tilføje backend-serverne interne IP'er og port, hvor de virkelige webservices kører.

Test nu forbindelsen til Elastisk IP http://54.144.190.17/ assigned to the internal IP 172.31.26.47, the connection will pass through the load balancer using the eth0: VIP1 og videresendt til en af ​​de tilgængelige backends.

Nu en styrke til at ændre ACTIVE rolle i klyngen, for eksempel genstart noden med denne rolle, og efter et par sekunder vil den anden tage den virtuelle service og oprette forbindelse igen til den offentlige IP. De nuværende og nye klientforbindelser etableres mod den samme backend, men denne gang gennem den nye ACTIVE node uden klientforstyrrelser.

Nyd avanceret belastningsbalancering og klynge i AWS med ZEVENET!

Del på:

Dokumentation i henhold til GNU Free Documentation License.

Var denne artikel til hjælp?

Relaterede artikler