- Introductie
- AWS en Relianoid-infrastructuur
- Twee Relianoid-instanties implementeren in AWS Marketplace
- Het netwerk configureren voor de Relianoid EC2-instanties
- Relianoid EC2-instanties inschakelen met tijdelijke licenties
- Het virtuele IP-adres configureren voor taakverdeling
- De Relianoid Cluster-service configureren in Amazon Web Services
- Een eenvoudige L4 Load-balancing configureren voor webservices
- Nieuwe interfaces toevoegen aan de Load Balancer
Introductie #
In dit artikel wordt beschreven hoe u geavanceerde load balancing-services kunt instellen met Relianoid Load Balancer voor hoge beschikbaarheid in een Amazon Web Services EC2-infrastructuur . We beschrijven de procedure voor het configureren van een Relianoid-cluster en het instellen van een TCP-load balancing-profiel voor het verdelen van HTTP-services over 3 webbackendservers.
AWS en Relianoid-infrastructuur #
Het onderstaande diagram beschrijft de architectuur waarmee we web load balancing willen implementeren met Relianoid Application Delivery Controller in AWS.
Het is noodzakelijk om twee Relianoid Application Delivery Controllers te implementeren. Deze template is beschikbaar in de Amazon Web Services Marketplace. Elke Relianoid Application Delivery Controller wordt geconfigureerd in dezelfde VPC als de webbackendservers, zoals weergegeven in het bovenstaande diagram met het subnet 17.32.16.0./20.
Elke Relianoid ADC-instantie is geconfigureerd met één interface eth0 , en aan elke instantie is één Elastic IP toegewezen . Daarnaast is er nog een extra Elastic IP toegewezen via eth0 in de ZLB1-prod- instantie, die gebruikt zal worden voor load balancing, zoals hieronder beschreven:
ZLB1-prod is toegewezen aan 172.31.20.89 in eth0 is deze instantie rechtstreeks toegankelijk voor één Elastisch IP 34.225.30.206
ZLB2-prod is toegewezen aan 172.31.26.237 in eth0 is deze instantie rechtstreeks toegankelijk voor één Elastisch IP 54.161.240.226
Aan ZLB1-prod is een extra IP-adres toegewezen , geconfigureerd in de load balancer met de naam eth0:vip1 en IP-adres 172.31.26.47 . Dit IP-adres wordt gebruikt om hier een load balancing-service te configureren en maakt deel uit van de clusterservice . Dit IP-adres werkt dus slechts op één van de Relianoid-instanties tegelijk, die de actieve rol in het cluster beheert. Dit interne IP-adres is toegewezen aan een Elastic IP-adres, dat door clients wordt gebruikt om verbinding te maken met de gepubliceerde webservice.
Tot slot zijn backend01 , backend02 en backend03 de EC2-instanties met Linux-gebaseerde webservers. Deze instanties maken deel uit van de load-balanced service waar de client verbinding mee maakt wanneer deze http://54.144.190.17/ aanvraagt.
Twee Relianoid-instanties implementeren in AWS Marketplace #
Laten we twee Relianoid Load Balancers implementeren en configureren zoals eerder beschreven.
Ga naar het gedeelte EC2-instanties en klik op Instantie starten.
1. Zoek naar de vereiste Relianoid Load Balancer Enterprise Edition AMI. Deze AMI is gebaseerd op een BYOL-licentiemodel (Bring Your Own License) . De evaluatieperiode is gratis en er is een maand lang ondersteuning inbegrepen. Na deze periode is een definitieve licentie vereist om de software te kunnen gebruiken.
2. Kies een instantietype . Selecteer hier de gewenste instantie op basis van de resources die u wilt loadbalanceren. Een enkele t2.small -instantie is geschikt om mee te beginnen met L4-profielen , maar als u HTTP-profielen wilt gebruiken , raden we minimaal een t2.medium -instantie aan. Een t2.micro- instantie is echter voldoende voor testdoeleinden.
3. Configureer de instantiegegevens . Selecteer hier de VPC waarin de nieuwe Relianoid-instanties worden uitgevoerd. In dit configuratievoorbeeld introduceren we de Relianoid EC2-instanties in dezelfde VPC als de reeds geconfigureerde webbackendservers.
4. Opslagruimte toevoegen . Standaard vereist een Relianoid EC2-instantie minimaal 12 GB opslagruimte. Als u logboekregistratie standaard wilt inschakelen, raden we aan deze grootte te vergroten tot minimaal 20 GB. Relianoid heeft geen toegang tot de schijf nodig, alleen voor het opslaan van logboeken, dus het volumetype is voor algemene doeleinden een goede keuze.
5. Tags toevoegen . Configureer hier eventueel beschrijvingstags.
6. Configureer de beveiligingsgroep . Relianoid gebruikt standaard TCP-poort 444 voor HTTPS-webinterfacebeheer, poort 9999 voor de sessiesynchronisatiedaemon en TCP-poort 22 in SSH voor commandoregelbeheer en clustering. Daarnaast moet elke virtuele poort die wordt gebruikt in de virtuele services van de load balancer, worden opgenomen in uw beveiligingsgroep. We hebben een beveiligingsgroep geconfigureerd die wordt gebruikt voor de Relianoid EC2-instanties in een minder restrictieve modus, zoals hieronder weergegeven:
TYPE = Al het verkeer Protocol = ALL Poortbereik = Alles Bron = 0.0.0.0/0 Beschrijving = Alles van alles naar alles toestaan
Deze beveiligingsgroep is gemaakt voor testdoeleinden. U kunt ervoor kiezen om alle poorten te blokkeren en alleen het gebruik voor taakverdeling en beheer toe te staan.
Zodra de configuratieassistent terugkeert naar de lijst met EC2-instanties, begint de implementatie van het nieuwe apparaat en wordt de status 'Initiating' weergegeven. Configureer nu een beschrijvende naam in het veld ' Name' . In ons geval heten onze geïmplementeerde load balancers in EC2 ZLB1-prod en ZLB2-prod.
Het netwerk configureren voor de Relianoid EC2-instanties #
Zodra de virtuele Relianoid-apparaten zijn geïmplementeerd en de instantiestatus de modus 'Actief ' aangeeft, kunnen we verdergaan met het configureren van het netwerk.
Klik met de rechtermuisknop op het ZLB1-prod- apparaat en kies Netwerken > IP-adressen beheren . In het pop-upvenster IP-adressen beheren klikt u op Nieuw IP-adres toewijzen en vervolgens op Ja, bijwerken . Het systeem wijst nu een nieuw IP-adres toe aan eth0 in dezelfde VPC. Onthoud dit nieuwe IP-adres; in ons voorbeeld is dit 172.31.26.47 . Het systeem heeft een nieuw IP-adres toegewezen dat in de toekomst zal worden gebruikt voor load balancing in de clusteringservice.
Ga naar de sectie Elastic IP's en wijs aan elke Relianoid-instantie een nieuw Elastic IP-adres toe . Deze worden gebruikt voor beheerdoeleinden, niet voor load balancing.
In hetzelfde Elastic IP- gedeelte wijst u een nieuw IP-adres toe aan ZLB1-prod , maar kies in dit geval het privé-IP- adres 172.31.26.47 . Na deze configuratie is ZLB1-prod bereikbaar via web en ssh met het IP-adres 34.225.30.206 , terwijl ZLB2-prod via dezelfde services bereikbaar is met het IP-adres 54.161.240.226 en het Elastic IP-adres 54.144.190.17 dat is toegewezen aan het IP-adres 172.31.26.47.
Relianoid EC2-instanties inschakelen met tijdelijke licenties #
Zodra de Elastic IP's zijn geconfigureerd, zijn de virtuele Load Balancers als volgt toegankelijk:
ZLB1-prod is toegankelijk via https://34.225.30.206:444 gebruiker root en wachtwoord de instantie-ID.
ZLB1-prod zal toegankelijk zijn via ssh in IP 34.225.30.226 met gebruikersbeheerder en privécertificaatbestand, dit wordt geconfigureerd tijdens de implementatie van EC2.
ZLB2-prod is toegankelijk via https://54.161.240.226:444 gebruiker root en wachtwoord de instantie-ID.
ZLB2-prod zal toegankelijk zijn via ssh in IP 54.161.240.226 met gebruikersbeheerder en privécertificaatbestand, dit wordt geconfigureerd tijdens de implementatie van EC2.
Als u overweegt de hostnaam te wijzigen voordat u doorgaat, start dan de EC2-instantie opnieuw op om de wijzigingen toe te passen.
Zodra de toegang tot de webinterface succesvol is, ziet u twee belangrijke waarden: de hostnaam en de certificaatsleutel. Beide gegevens zijn uniek per load balancer en zijn gekoppeld aan de activeringslicentie. Gebruik deze informatie in de volgende URL zoals beschreven: https://www.relianoid.com/activate-enterprise-edition-cloud-evaluation/
Zodra het formulier is ingevuld, verzendt het systeem automatisch de licentie naar het aangegeven e-mailadres. Upload de ontvangen PEM-activeringslicentie via de web-GUI in elke load balancer. Zodra dit is gebeurd, wordt de web-GUI ontgrendeld en zijn alle functies volledig ingeschakeld en operationeel.
Voer dezelfde activeringsprocedure uit in beide knooppunten ZLB1-prod en ZLB2-prod.
Het virtuele IP-adres configureren voor taakverdeling #
In het vorige punt hebben we al een extra IP-adres (172.31.26.47) toegewezen aan eth0 in de ZLB1-pro-instantie. Dit IP-adres is gekoppeld aan een Elastic IP-adres (54.144.190.17) . Nu moeten we deze configuratie nog uitvoeren in de load balancer ZBL1-pro.
Ga naar de ZLB1-pro load balancer via de webinterface met behulp van het Elastic IP-adres https://34.225.30.206:444 . Nadat u bent ingelogd, gaat u naar het navigatiemenu Netwerk > Virtuele interfaces > Virtuele interface aanmaken en voert u de volgende configuratie uit:
Bovenliggende interface = eth0 172.31.26.47
*Aangezien de EC2-instanties niets weten over elastische IP's, moeten we hier het fysieke IP-adres configureren van de EC2-instantie die is gekoppeld aan het openbare elastische IP-adres dat wordt gebruikt voor taakverdelingsdoeleinden 54.144.190.17
Naam virtuele interface = vip1
IP-adres = 172.31.26.47
Druk op de knop 'Maken' om de configuratie toe te passen.
Er is nu een nieuw IP-adres 172.31.26.47 met de naam eth0:vip1 geconfigureerd in de ZLB1-pro EC2 Relianoid Load Balancer. Dit adres kan nu vanaf elke EC2-instantie in deze VPC worden gepingd.
De Relianoid Cluster-service configureren in Amazon Web Services #
Het Relianoid Load Balancer-cluster werkt in een stateful actieve-passieve modus. Dit betekent dat de clusterresources op beide knooppunten geconfigureerd zijn, maar alleen beschikbaar zijn op het actieve knooppunt. Wanneer een dergelijk knooppunt uitvalt en deze rol op het andere lid wordt gestart, moeten de clusterresources opnieuw worden benaderd. Omdat virtuele IP-adressen ook clusterresources zijn, moet Amazon Web Services op een of andere manier worden aangekondigd dat het voor load balancing geconfigureerde virtuele IP-adres 172.31.26.47 nu via ZLB2-prod operationeel is.
Hiervoor gebruikt de Relianoid Cluster-service de AWS-client, die geconfigureerd moet worden met machtigingen in de EC2-module voor het beheren van interfaces. Voordat we de Relianoid Cluster-service starten, moeten we deze dus voorbereiden. Laten we daarom een AWS-sleutel in uw account configureren met machtigingen om IP-adressen in EC2 te beheren, zodat deze gebruikt kunnen worden in de AWS-opdrachtregelinterface.
Ga naar de Amazon-console https://console.aws.amazon.com/iam/ en kies vervolgens in het navigatiemenu 'Gebruiker' . Klik op de knop 'Gebruiker toevoegen'.
Configureer een beschrijvende gebruikersnaam = aws-for-zlb
Selecteer bij 'AWS-toegangstype selecteren' de optie 'Programmatische toegang' en klik op de knop 'Volgende: Machtigingen' . Klik vervolgens in het gedeelte 'Machtigingen instellen' op 'Groep maken' en vul in het nieuwe venster het veld ' Groepsnaam' in met een beschrijvende naam, bijvoorbeeld ' AmazonEC2' . Zoek en selecteer ten slotte in het veld 'Beleid filteren' het beleid met de naam 'AmazonEC2FullAccess' , dat onder andere machtigingen verleent om de toegewezen IP-adressen tussen EC2-instanties te wijzigen.
Klik op Volgende: tags en vervolgens op Volgende: Beoordelen . Klik ten slotte op Gebruiker aanmaken . In het laatste venster worden de toegangssleutel-ID en de geheime toegangssleutel voor deze gebruiker weergegeven . Bewaar deze gegevens voor toekomstig gebruik.
Nu zijn we klaar om de Relianoid Cluster-service te configureren. Ga hiervoor naar het webpaneel in ZLB1-pro via het toegewezen openbare IP-adres https://34.225.30.206:444, ga naar Systeem > Cluster en vul het formulier in volgens het voorbeeld:
AWS-referenties : De toegangssleutel en geheime sleutel zijn de reeds gegenereerde waarden in de voorgaande regels. De regio: selecteer hier de regio waar uw Relianoid Application Delivery Controller is geïmplementeerd.
Cluster configureren :
Lokaal IP: selecteer het IP-adres en de NIC van eth0.
Remote IP: voer hier het IP-adres van eth0 in knooppunt ZLB2-pro in.
Wachtwoord voor extern knooppunt en Bevestig uw wachtwoord: voer hier het root-wachtwoord in voor ssh in het andere knooppunt, standaard de instance-ID van ZLB2-pro.
Klik op de knop Genereren en wacht een paar seconden. In de tussentijd krijgt het knooppunt waarop u de configuratie uitvoert de ACTIEVE rol (ZLB1-pro) en het andere knooppunt (ZLB2-pro) de PASSIVE rol.
Nu is Relianoid Cluster geconfigureerd in AWS en klaar voor gebruik. Laten we onze eerste geclusterde load-balanced service configureren.
Een eenvoudige L4 Load-balancing configureren voor webservices #
Ga naar LSLB > Farms > Maak een farm aan met de volgende parameters.
Houd er rekening mee dat het gebruikte virtuele IP-adres 172.31.26.47 het eerder geconfigureerde virtuele IP-adres is en een resource van het cluster die altijd bereikbaar is vanaf het actieve knooppunt. Druk op 'Maken' en ga verder.
Configureer nu in het nieuwe venster het gedeelte 'Globaal' zoals hieronder weergegeven:
Configureer tot slot de sectie Services zoals beschreven:
Gebruik IP-persistentie met een time-out van 60 seconden, voor het geval u wilt garanderen dat hetzelfde client-IP-adres gedurende een bepaalde periode met dezelfde backend verbonden blijft. Configureer de geavanceerde health checks met FarmGuardian . Gebruik check_tcp als een eenvoudige health check om te controleren of TCP-backendpoort 80 in elke backend is geopend. Voeg vervolgens de interne IP-adressen en poorten van de backendservers toe waarop de daadwerkelijke webservices draaien.
Test nu de verbinding met het Elastic IP-adres http://54.144.190.17/ dat is toegewezen aan het interne IP-adres 172.31.26.47. De verbinding zal via de load balancer lopen met behulp van eth0:vip1 en worden doorgestuurd naar een van de beschikbare backends.
Nu kan de actieve rol in het cluster geforceerd worden gewijzigd , bijvoorbeeld door het knooppunt met deze rol opnieuw op te starten. Na enkele seconden neemt het andere knooppunt de virtuele service over en maakt opnieuw verbinding met het publieke IP-adres. De huidige en nieuwe clientverbindingen worden tot stand gebracht via dezelfde backend, maar ditmaal via het nieuwe actieve knooppunt, zonder dat de client hierdoor wordt onderbroken.
Nieuwe interfaces toevoegen aan de Load Balancer #
Voor load balancing-doeleinden of andere behoeften kunt u extra interfaces aan de load balancer toevoegen. Dit doet u eenvoudig door de stappen te volgen die AWS beschrijft voor het toevoegen van nieuwe interfaces aan een EC2-instantie. Raadpleeg het artikel van AWS voor meer informatie over de beste werkwijzen hiervoor: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/best-practices-for-configuring-network-interfaces.html . Wanneer u nieuwe interfaces toevoegt aan de EC2-instantie, detecteert Relianoid deze automatisch, zodat u ze vervolgens naar wens kunt configureren.
Profiteer van geavanceerde load balancing en clustering in AWS met Relianoid!






