Wanneer een website, zoals een online winkel, de kern van uw bedrijf is, kan de mogelijkheid van de site om klanten te bedienen via verkeerspieken en plotselinge serverstoringen het verschil betekenen tussen een grote winst en een frustrerend verlies.
Het is dus eenvoudiger dan ooit om een enkele virtuele server voor de taak in te stellen, maar het is de moeite waard om even een moment te overwegen om een cluster met hoge beschikbaarheid te overwegen. In een cluster worden in plaats van alles op één machine uitgevoerd, de verschillende delen van de serverarchitectuur afgehandeld door afzonderlijke serverinstances. In een dergelijke opstelling kunt u de server schalen door meer werknemers toe te voegen wanneer de belasting groeit en de server blijft draaien, zelfs als een of meer werknemers om welke reden dan ook breken.
Als je goed voorbereid bent, kun je er zeker van zijn dat de verkoop op Black Friday van dit jaar of een plotselinge functie je online winkel niet zal verslaan.
In deze zelfstudie leert u hoe u ClusterCS en Amazon Web Services kunt gebruiken om een schaalbaar cluster van servers te maken en deze te gebruiken om een WordPress-site te hosten voor een op WooCommerce gebaseerde e-commerce website.
ClusterCS is een configuratiescherm voor servers in de cloud. Het brengt de kracht van reguliere bedieningspanelen naar uw virtuele en dedicated servers en verzamelt ze allemaal achter een enkele interface. De tool is oorspronkelijk gemaakt voor het verwerken van de hostingaccounts die worden beheerd door Soft Dreams, het bedrijf erachter, dus het is goed getest in echte productie-omgevingen.
ClusterCS ondersteunt multi-servertoepassingen, zoals de voor e-commerce geoptimaliseerde WordPress-site die we in deze zelfstudie zullen bouwen, evenals het onderhouden van individuele servers.
Ga om aan de slag te gaan naar de ClusterCS-website en maak een account aan.
Met een gratis account kunt u een enkele server en maximaal vijf afzonderlijke domeinen beheren. Voor het splitsen van een clusteropstelling op meerdere servers is een betaald account vereist, maar veel van de stappen die u in de zelfstudie zult zien, zijn ook van toepassing op een installatie met één server.
Als cloudgebaseerd bedieningspaneel werkt ClusterCS met elke virtuele of dedicated server: u kunt het gebruiken om servers op Digital Ocean, Amazon Web Services (AWS) te bedienen of zelfs op een virtuele machine die op uw laptop draait.
In deze zelfstudie gaan we samen met AWS. Als je nog geen AWS-account hebt, meld je dan aan. Meld u vervolgens aan bij de AWS-console om de serverinstances voor de instelling van onze website te maken.
De setup die we in deze tutorial maken, is als volgt:
pond
): Dit exemplaar is het naar buiten gekeerde deel van het cluster. Het bevat ook de bestanden voor uw website.app1
, APP2
): Deze instanties zullen de webserver uitvoeren. Als u meer dan één toepassingsserver heeft, is de instelling veerkrachtiger: als de toepassing leeg is, kunnen de anderen de pagina's van de toepassing nog steeds bedienen. Ook het toevoegen van meer applicatieservers is een snelle manier om te reageren op een toename van het verkeer.db
): Als de database gescheiden is van de app-servers, wordt een beveiligingsniveau toegevoegd en is de database beschikbaar voor alle servers die deze gebruiken.Laten we de servers draaiende krijgen!
Wanneer u servers voor een cluster start, is het belangrijk om ervoor te zorgen dat ze met elkaar kunnen praten en dat ClusterCS hen kan bereiken met behulp van SSH.
Bij Amazon Web Services wordt de firewall geconfigureerd met behulp van a Beveiligingsgroep. We zullen er in het begin één aanmaken, maar als u op enig moment verbindingsproblemen hebt, kunt u altijd terugkeren om de instellingen te controleren en aan te passen.
Klik in het menu aan de linkerkant van de AWS EC2-beheerdersconsole op Beveiligingsgroepen. Klik vervolgens op Maak beveiligingsgroep aan.
In de pop-up die wordt geopend, geeft u uw beveiligingsgroep een naam en een beschrijving. Klik vervolgens op Regel toevoegen om nieuwe regels één voor één toe te voegen.
Geef eerst SSH-toegang toe vanaf de ClusterCS IP-adressen 85.9.60.46/32
en 193.226.133.91/32
. Geef vervolgens HTTP- en HTTPS-toegang toe (poorten 80
en 443
) overal vandaan, zodat uw klanten toegang hebben tot uw website.
Op dit punt ziet de configuratie van uw beveiligingsgroep er als volgt uit:
Klik creëren om de wijzigingen op te slaan.
Nu u de beveiligingsgroep hebt gemaakt, heeft deze een ID die u kunt gebruiken om de toegang tussen de serverinstances van uw cluster te configureren.
Selecteer in de lijst met beveiligingsgroepen degene die u zojuist hebt gemaakt en open deze inbound tab. Je ziet de regels die je zojuist hebt gemaakt. Kopieer de ID van de beveiligingsgroep (een tekenreeks die begint met sg-
) en klik op de Bewerk om de regels te wijzigen.
Voeg een nieuwe regel toe met de ID van de beveiligingsgroep als verkeersbron. U kunt ervoor kiezen om al het TCP-verkeer van deze bron toe te staan of, als u dat liever hebt, de volgende lijst met poorten gebruiken: 80
, 443
, 25
, 110
, 143
, 465
, 587
, 993
, 995
, 2049
, 111
, 892
, 662
, 32803
, 21
, 2049
, 111
, 892
, 662
, 32769
, 8080
, 8081
, en 8082
.
Op dit punt ziet uw configuratie er als volgt uit:
Als u vanaf uw computer verbinding kunt maken met de AWS-instanties, voegt u een SSH-regel toe voor uw IP-adres. De AWS-console heeft hiervoor een optie ("My IP"), dus u hoeft uw IP niet op te zoeken.
Voeg ten slotte poorten toe om FTP-toegang toe te staan voor het uploaden van bestanden naar de servercluster 21
en 50500
-50900
.
Zodra dat is gebeurd, bent u klaar om een aantal servers te starten.
Met uw beveiligingsgroep op zijn plaats, is het tijd om de AWS-instanties voor het cluster te starten. AWS biedt u vele opties voor het aanpassen van de virtuele servers, maar meestal zijn de standaardopties een goede keuze.
Keer terug naar het EC2-dashboard en klik op Start Instance knop.
Als u op de knop klikt, wordt een zevenstaps wizard gestart voor het starten van de server.
In stap 1 kunt u de basisafbeelding voor uw virtuele server selecteren. Kies de eerste optie, Amazon Linux AMI, door op te klikken kiezen knop ernaast.
Kies in Stap 2 een exemplaartype dat past bij de behoeften van uw website; een kleinere instantie kan niet zoveel verkeer verwerken als een grotere, maar een grotere wordt duurder. Overweeg de rollen die de machines in uw cluster zullen spelen. U kunt bijvoorbeeld snel nieuwe applicatieservers toevoegen als reactie op een toename van de serverbelasting, maar het toevoegen van databasebronnen is veel moeilijker. Daarom is het een goed idee om de database uit te voeren op een krachtigere server met meer geheugen dan op de app-servers.
In stap 3 tot 5 van de Launch Wizard doorloopt u de opties om te zien of u iets wilt wijzigen, maar hoogstwaarschijnlijk zijn de standaardopties goed voor uw set-up.
Kies in stap 6 de optie Selecteer een bestaande beveiligingsgroep, en kies de beveiligingsgroep die we hierboven hebben gedefinieerd.
Controleer tot slot uw instellingen en klik op Lancering om de instanties te starten.
Als laatste stap zal AWS u vragen om een SSH-sleutelpaar op te geven en te downloaden voor toegang tot de servers.
Selecteer de Maak een nieuw sleutelpaar optie en voer een beschrijvende naam in voor het sleutelpaar. Dan klikken Key Pair downloaden om het bestand met de privésleutel te downloaden.
Bewaar de sleutel op een veilige plaats op uw computer. Ik plaats graag al mijn SSH-sleutels in de ~ / .Ssh
map, maar u kunt elke locatie kiezen.
Nadat u de sleutel hebt gedownload, wordt de Start Instances knop wordt klikbaar. Klik erop en wacht een paar minuten totdat de instanties zijn gestart.
Als u exemplaren één voor één start, herhaalt u het proces voor de volgende exemplaren totdat alle vier servers voor het cluster actief zijn.
AWS wijst IP-adressen toe aan uw instanties wanneer u ze start. Als u een instantie stopt, wordt het IP-adres vrijgegeven. Aangezien ClusterCS vertrouwt op de IP-adressen van de server om verbinding te maken, kan dit tot problemen leiden als u om welke reden dan ook uw instanties opnieuw moet opstarten.
Om dit probleem te omzeilen, kunt u de Elastic IP-adressenfunctie van AWS gebruiken.
Een elastisch IP-adres is een permanent IP-adres dat u aan een van uw serverinstances kunt koppelen. Door dat adres in uw ClusterCS-configuratie te gebruiken, kunt u het naar het exemplaar laten wijzen, zelfs als het exemplaar is gestopt.
Klik op Elastische IP's in het menu aan de linkerzijde van de AWS-console. Klik vervolgens op de Nieuw adres toewijzen knop.
Selecteer VPC als strekking, en klik Toewijzen. Er wordt onmiddellijk een IP-adres toegewezen dat u kunt gebruiken.
Klik met de rechtermuisknop op het IP-adres en selecteer Associate Address om het IP te koppelen aan een EC2-serverinstantie.
Klik op de Aanleg tekstveld. Selecteer vervolgens een exemplaar in een vervolgkeuzemenu met al uw exemplaren. Klik ten slotte op Associëren. Herhaal het proces voor de rest van uw EC2-exemplaren.
Nu zijn uw servers toegankelijk via hun Elastic IP-adres, zelfs nadat ze opnieuw zijn opgestart.
Zodra uw EC2-instanties actief zijn, voordat u naar ClusterCS gaat, is het goed om te controleren of u verbinding met hen kunt maken.
Wijzig eerst de machtigingen van de SSH-sleutel:
chmod 400 ~ / .ssh / key_name.pem
Zoek vervolgens het openbare IP-adres van het subsysteem (IPv4 Openbaar IP) Van het EC2-dashboard:
Maak er vervolgens verbinding mee, bijvoorbeeld met behulp van de opdrachtregelclient (of PuTTY als u Windows gebruikt):
ssh -i ~ / .ssh / tutorial-clustercs.pem [email protected]
Als u problemen ondervindt bij het verbinden, gaat u terug naar de instellingen van de beveiligingsgroep en zorgt u ervoor dat alle vereiste poorten toegankelijk zijn.
Als u ziet dat u verbinding kunt maken met de server, bent u klaar om over te gaan naar ClusterCS om de software voor de servers in uw cluster in te stellen.
De serverinstanties zijn nu actief. Het is tijd om ze te configureren om hun steentje bij te dragen aan het uitvoeren van uw e-commerce website als onderdeel van een multiservercluster. We doen dit met behulp van het ClusterCS-configuratiescherm.
De ClusterCS-beheerder is opgesplitst in twee delen: Servers en domeinen.
In het gedeelte Servers wordt het onderliggende systeem gedefinieerd: de serverconfiguratie en de software die wordt uitgevoerd op de een of meer computers waaruit het systeem bestaat. Het gedeelte Domeinen, dat we in een beetje zullen bekijken, specificeert klantaccounts en sites die op de low-level configuratie worden uitgevoerd.
Klik op Beheer servers om het cluster te configureren. Als u de gratis versie gebruikt, kunt u geen cluster maken, maar de stappen bij het instellen van een enkele server lijken veel op wat we in dit deel van de zelfstudie zullen doen.
Klik op Cluster toevoegen.
Blader vervolgens op de volgende pagina naar beneden naar Voeg een nieuwe server toe sectie. Daar zie je enkele instructies, gevolgd door een formulier.
Om de eerste server aan het cluster toe te voegen, vult u het formulier in met de volgende informatie:
ec2-user
pond
voor de load balancer en app1
voor de eerste toepassingsserver, enzovoort.Wanneer u "SSH-sleutel" kiest als aanmeldtype, verschijnt een tekstvak voor het invoeren van de SSH-sleutel. Kopieer de inhoud van de .pem
bestand dat je hebt gedownload van AWS bij het opstarten van de machines en plak het in dit tekstgebied. Verlaat de SSH Key Password veld leeg.
Zodra alle gegevens aanwezig zijn, klikt u op volgende.
ClusterCS maakt nu verbinding met de server en verifieert of deze overeenkomt met de vereisten van de set-up. Zodra de controle is voltooid, ziet u de volgende resultaten.
Klik op Server aan clusterpool toevoegen.
U ziet dat de server is toegevoegd aan de lijst met servers die uw cluster vormen.
Scroll naar beneden en herhaal het proces voor de resterende drie servers.
Klik dan alleen op Ga verder met Setup om het cluster en de services die u wilt uitvoeren op de verschillende servers te configureren.
Nu alle servers beschikbaar zijn voor gebruik door ClusterCS, kunt u het leuke gedeelte beginnen met het kiezen van de rollen voor elk van de servers.
Geef uw opstelling een naam en kies een recept, een sjabloonconfiguratie, om te gebruiken als basis voor de configuratie.
ClusterCS wordt geleverd met een geoptimaliseerd startpunt voor op PHP gebaseerde applicaties, genaamd Slimme webserver (geoptimaliseerde LAMP). Bij een enkele installatie van de machine, waarbij de gehele configuratie op één server wordt uitgevoerd, is dit recept klaar om direct te worden gebruikt.
In een clusteropstelling moet u wat meer configuratie uitvoeren.
Klik Aanpassen om een gedetailleerde weergave te openen. U ziet de volgende lijst met "lagen", combinaties van softwaremodules die samen de servers hun mogelijkheden bieden. Alle functionaliteit binnen een laag kan worden geconfigureerd en u kunt ook nieuwe lagen maken en nieuwe toepassingen aan bestaande toevoegen.
Begin vanaf de eerste laag, brandmuur, doorklikken op de Beheren link naast de titel. U ziet de volgende weergave voor het opgeven van de details van deze laag.
Aan de linkerkant kunt u kiezen welke modules de laag vormen (we zullen de standaardset modules gebruiken, zodat u dat onderdeel kunt verlaten zoals het is).
Aan de rechterkant kunt u de servers selecteren die deze laag zullen uitvoeren. Een firewall is iets dat elke server in het cluster moet hebben, dus selecteer alle vier servers door op hun naam te klikken.
Dan klikken Opslaan om terug te keren naar de clusterconfiguratieweergave. Nu ziet de Firewall-laag er als volgt uit:
Doorzoek de rest van de lagen in uw cluster en maak de volgende configuratie:
Laag | Servers |
---|---|
brandmuur | pond , db , app1 , APP2 |
Smart Traffic Manager | pond |
Web Server | app1 , APP2 |
Database | db |
Niet gebruikt, verwijderen uit configuratie | |
Webmail | Niet gebruikt, verwijderen uit configuratie |
opslagruimte | pond , app1 , APP2 |
nutsbedrijven | app1 , APP2 |
In deze zelfstudie is e-mail niet nodig, daarom heb ik de e-mailgerelateerde lagen uit de configuratie verwijderd. Als u e-mail in uw opstelling wilt gebruiken, raad ik aan er een aparte serverinstantie voor toe te voegen. Op die manier interfereren problemen met uw webserver niet met uw e-mail of andersom.
Ik heb de opslaglaag op de load balancer-machine en op de app-servers geactiveerd. Later, bij het configureren van de site, selecteren we de pond
server als degene die zijn bestanden bewaart. De twee andere machines worden eraan gekoppeld met NFS, dus ook zij hebben toegang tot de gegevens. Op deze manier is uw website niet afhankelijk van een enkele app-server en kunt u ze vrij op en neer schalen.
Als alles er goed uitziet, klik dan Opslaan om uw configuratie op te slaan en het installatieproces op de servers te starten.
De installatie duurt ongeveer 20 minuten, afhankelijk van de grootte van uw cluster.
U hebt nu een servercluster gemaakt met een databaseserver, twee toepassingsservers en een load balancer die verkeer zorgvuldig naar de verschillende instanties leidt. Het is tijd om het cluster te gebruiken door een website te maken om er bovenop te lopen.
Klik op domeinen in het ClusterCS-hoofdmenu.
Klik vervolgens op Voeg domein toe.
Op dit scherm geeft u op hoe het cluster (of een enkele server) wordt gebruikt voor uw domein.
Als de installatie er goed uitziet, klikt u op Toevoegen.
Zodra de oranje tekst "Bezig met verwerken" is gewijzigd in "Actief", is het domein gereed voor gebruik. Deze stap duurt meestal maar een paar minuten.
Op elke website die gevoelige klantinformatie verwerkt, zoals de bestellingen van mensen in een online winkel, wordt het aanbevolen SSL te gebruiken om het verkeer tussen de gebruiker en de server te coderen.
Met behulp van ClusterCS is SSL eenvoudig in te stellen. Klik in het dashboard van Domains op SSL. U ziet drie verschillende manieren om SSL te configureren.
We gaan met Let's Encrypt, een gratis, algemeen vertrouwde certificeringsinstantie die wordt ondersteund door grote organisaties zoals Mozilla en gemaakt om het surfen op het web te versnellen naar veilig browsen..
Klik op Installeer Let's Encrypt om de installatie te starten.
Geef het certificaat een naam, voer uw e-mailadres in en selecteer de domeinnamen waarvoor u certificaten wilt aanmaken. Controleer de Automatisch vernieuwen checkbox zodat u altijd een geldig SSL-certificaat hebt.
Klik vervolgens op de Begin knop, accepteer de bevestigingspop-up die verschijnt en wacht tot de certificaatgeneratie is voltooid.
Wanneer het certificaat klaar is, ziet u een scherm met de informatie.
Het Let's Encrypt SSL-certificaat is nu klaar voor gebruik.
Configureer de firewall van het servercluster om toegang tot de load balancer toe te staan vanaf poort 443, en uw website is klaar om HTTPS-verkeer te accepteren.
Op de Servers dashboard, klik naast uw cluster op brandmuur. Blader vervolgens omlaag naar de onderkant van de pagina om een nieuwe regel toe te voegen.
Stel de nieuwe firewallregel in met behulp van de volgende informatie:
pond
(uw load balancer-instantie)ieder
ieder
443
Klik op de Toevoegen om de configuratie toe te voegen en vervolgens op de Van toepassing zijn om de wijzigingen in uw servercluster uit te voeren.
U bent nu klaar om WordPress in te stellen. Het mooie van deze ClusterCS-installatie is dat, hoewel u meerdere servers gebruikt, de installatie niet verschilt van wat u zou doen met een enkele server of gedeelde hosting.
Begin met het maken van de database. In de domeinen dashboard, selecteer databases. Klik vervolgens op Database toevoegen.
Voer op de volgende pagina een naam in voor uw database (bijvoorbeeld, wordpress
) en klik op creëren.
Op de volgende pagina ziet u dat de database nu is toegevoegd.
Klik op de Voeg een nieuwe gebruiker toe om een nieuwe gebruiker te maken.
Wanneer de setup u vraagt om de host te kiezen, kan de databasegebruiker de database verbinden met, selecteren Anyhost. Hierdoor kunnen de applicatieservers verbinding maken met de database, zelfs als ze op afzonderlijke servers worden uitgevoerd.
Wanneer u de gebruiker heeft toegevoegd, klikt u op Associëren naast de naam van de gebruiker om de gebruiker toegang te geven tot die database.
Op de volgende pagina kunt u de rechten voor de gebruiker in deze database kiezen. Klik op Controleer alles om de gebruiker volledige toegang tot de database te geven. Klik vervolgens op Gebruiker koppelen om deze wijzigingen toe te passen.
De database is nu klaar voor gebruik.
Download de nieuwste WordPress-versie en gebruik FTP (met de gebruikersnaam en het wachtwoord dat u hebt opgegeven bij het maken van het domein) om het naar uw nieuwe site te uploaden. Als u uw DNS-instellingen al hebt geconfigureerd, maakt u verbinding met de URL van uw domein. U kunt ook het openbare IP-adres van de load balancer-instantie gebruiken.
Wanneer u WordPress naar uw site heeft geüpload public_html
map, open de URL van de website in uw browser en voer de WordPress-installatie uit.
Gebruik de volgende database-informatie:
Wanneer uw WordPress-installatie gereed is, gaat u door met het instellen van WooCommerce en eventuele andere plug-ins en thema's die u op uw e-commercesite wilt gebruiken.
Kom dan terug voor een aantal laatste optimalisaties en om te leren hoe u uw cluster op en neer kunt schalen.
U hebt nu een multi-server WordPress-website geconfigureerd op ClusterCS. De site is veilig, stabiel, goed georganiseerd en eenvoudig schaalbaar. Maar wat doe je precies als je online winkel of andere website veel bezoekers krijgt en het tijd is om de service te vergroten?
Hier zie je de kracht van een clusteropstelling: dankzij het werk dat we vooraan deden, wanneer je meer verwerkingskracht nodig hebt, kun je gewoon meer servers aan het cluster toevoegen.
Start eerst een nieuw serverexemplaar op AWS, zorg ervoor dat het hetzelfde SSH-sleutelpaar gebruikt en tot dezelfde beveiligingsgroep behoort als de andere servers in het cluster.
Vervolgens in de ClusterCS Manage Servers dashboard, klik Beheren om de voorkeuren van uw cluster bij te werken.
Scroll helemaal naar beneden en klik op Servers toevoegen.
Herhaal de stappen voor het hierboven toevoegen van een server aan de clusterpool.
Klik Ga verder met instellen en configureer de lagen voor de server. Selecteer alle dezelfde software als op de app1
en APP2
servers. Dan klikken Opslaan om de wijzigingen toe te passen en te wachten tot de configuratie is voltooid.
Uw website wordt nu uitgevoerd op drie toepassingsservers in plaats van twee.
Net zo eenvoudig als het toevoegen van nieuwe servers aan het cluster, is dit niet het enige wat u kunt doen om te reageren op groeiende serververeisten. In de Snelheid in het gedeelte van het ClusterCS Domains-dashboard, kunt u regels configureren voor de manier waarop verzoeken naar uw website moeten worden behandeld.
Terwijl u het recept "Slimme webserver" gebruikte om het cluster te starten, hebt u al enkele optimalisaties geïnstalleerd: terwijl PHP-verkeer wordt afgehandeld door Apache, is er een regel, "Statische bestanden naar Lighttpd", die de taakverdeler opdracht geeft om te routeren verzoeken om statische bestanden zoals afbeeldingen naar Lighttpd om Apache een beetje te belasten.
Onder die regel ziet u een sectie voor het configureren van uw eigen configuratiesets.
Er zijn veel dingen die u met deze tool kunt doen, maar we zullen een van de meest effectieve bekijken: caching van een enkele pagina met behulp van Nginx.
Vul de volgende informatie in: