Når et nettsted, for eksempel en nettbutikk, er kjernen i virksomheten din, kan nettstedets evne til å betjene kunder gjennom trafikkstifter og plutselige serverfeil bety forskjellen mellom en stor seier og et frustrerende tap.
Så, mens du konfigurerer en enkelt virtuell server for jobben, er det enklere enn noensinne, det er verdt å ta et øyeblikk å vurdere en høy tilgjengelighetsklynge. I en klynge, i stedet for å kjøre alt på en maskin, blir de forskjellige delene av serverarkitekturen håndtert av separate serverinstanser. I et slikt oppsett kan du skalere serveren ved å legge til flere arbeidere når lasten vokser og holde serveren i gang selv om en eller flere av arbeiderne bryter av hvilken som helst grunn.
Når du er godt forberedt, kan du være trygg på at dette års Black Friday-salg eller en plutselig funksjon ikke vil bringe nettbutikken din nede.
I denne opplæringen lærer du hvordan du bruker ClusterCS og Amazon Web Services for å skape en skalerbar klynge av servere og bruke den til å være vert for et WordPress-nettsted for en WooCommerce-basert e-handelswebside.
ClusterCS er et kontrollpanel for servere i skyen. Det gir kraften til vanlige kontrollpaneler til virtuelle og dedikerte servere, og samler dem alle bak et enkelt grensesnitt. Verktøyet ble opprinnelig opprettet for å håndtere vertsregnskapet administrert av Soft Dreams, selskapet bak det, så det har blitt godt testet i virkelige produksjonsmiljøer.
ClusterCS støtter multi-server applikasjoner som e-handelsoptimalisert WordPress-nettsted som vi skal bygge i denne opplæringen, samt opprettholde individuelle servere.
For å komme i gang, besøk ClusterCS nettsiden og opprett en konto.
En gratis konto lar deg administrere en enkelt server og opptil fem separate domener som kjører på den. En klyngeoppsett på flere servere krever en betalt konto, men mange av trinnene du vil se i opplæringen, gjelder også på en enkelt serveroppsett.
Som et skybasert kontrollpanel, fungerer ClusterCS med en hvilken som helst virtuell eller dedikert server: Du kan bruke den til å kontrollere servere på Digital Ocean, Amazon Web Services (AWS) eller til og med på en virtuell maskin som kjører på den bærbare datamaskinen.
I denne opplæringen går vi med AWS. Hvis du ikke har en AWS-konto enda, må du registrere deg for en. Deretter logger du deg inn på AWS-konsollen for å opprette server-forekomster for nettstedet vårt.
Oppsettet vi lager i denne opplæringen er som følger:
lb
): Denne forekomsten vil være den utovervendte delen av klyngen. Det vil også holde filene på nettstedet ditt.app1
, APP2
): Disse forekomstene vil kjøre webserveren. Å ha mer enn en applikasjonsserver gjør oppsettet mer motstandsdyktig. Hvis man går ned, kan de andre fortsatt vise programmets sider. Å legge til flere applikasjonsservere er også en rask måte å reagere på en økning i trafikken.db
): Å ha databasen skilt fra app-servere, legger til et nivå av sikkerhet samtidig som databasen er tilgjengelig for alle servere som bruker den.La oss få serverne i gang!
Når du starter servere for en klynge, er det viktig å sikre at de kan snakke med hverandre, og at ClusterCS kan nå dem ved hjelp av SSH.
Ved Amazon Web Services er brannmurkonfigurasjon gjort ved hjelp av a Sikkerhetsgruppe. Vi lager en rett i begynnelsen, men hvis du har tilkoblingsproblemer når som helst, kan du alltid gå tilbake for å bekrefte og endre innstillingene.
I AWS EC2 administrasjonskonsolls venstre meny, klikk på Sikkerhetsgrupper. Klikk deretter på Opprett sikkerhetsgruppe.
I popup-vinduet som åpnes, gi din sikkerhetsgruppe et navn og en beskrivelse. Deretter klikker du på Legg til regel å legge til nye regler en etter en.
Først tillat SSH-tilgang fra ClusterCS IP-adressene 85.9.60.46/32
og 193.226.133.91/32
. Deretter tillater HTTP og HTTPS-tilgang (porter 80
og 443
) fra overalt, slik at kundene dine kan få tilgang til nettstedet ditt.
På dette tidspunktet ser du sikkerhetsgruppens oppsett slik ut:
Klikk Skape for å lagre endringene.
Nå som du har opprettet sikkerhetsgruppen, har den en ID, som du kan bruke til å konfigurere tilgangen mellom klyngens server-forekomster.
I listen over sikkerhetsgrupper velger du den du nettopp har opprettet og åpner den innkommende fane. Du ser reglene du nettopp opprettet. Kopier sikkerhetsgruppens ID (en streng som begynner med sg-
) og klikk på Redigere knappen for å endre reglene.
Legg til en ny regel med sikkerhetsgruppenes ID som trafikkilde. Du kan enten velge å tillate all TCP-trafikk fra denne kilden, eller hvis du foretrekker å være mer spesifikk, bruk følgende liste over porter: 80
, 443
, 25
, 110
, 143
, 465
, 587
, 993
, 995
, 2049
, 111
, 892
, 662
, 32803
, 21
, 2049
, 111
, 892
, 662
, 32769
, 8080
, 8081
, og 8082
.
På dette tidspunktet ser konfigurasjonen ut slik:
For å kunne koble til AWS-forekomster fra datamaskinen, legg til en SSH-regel for din IP. AWS-konsollen har et alternativ for dette ("Min IP"), slik at du ikke trenger å slå opp din IP.
Til slutt, for å tillate FTP-tilgang for opplasting av filer til serverklyngen, legg til porter 21
og 50500
-50900
.
Når det er gjort, er du klar til å starte noen servere.
Med sikkerhetsgruppen din på plass, er det på tide å starte AWS-forekomstene for klyngen. AWS gir deg mange alternativer for å tilpasse de virtuelle serverne, men mesteparten av tiden er standardalternativene et godt valg.
Gå tilbake til EC2 Dashboard og klikk på Start instans knapp.
Ved å klikke på knappen starter en syv-trinns veiviser for å starte serveren.
I trinn 1 får du velge basisbildet for den virtuelle serveren. Velg det første alternativet, Amazon Linux AMI, ved å klikke på Å velge knappen ved siden av den.
I trinn 2 velger du en forekomsttype som passer til nettstedet ditt en mindre forekomst vil ikke kunne håndtere så mye trafikk som en større, men en større vil bli dyrere. Tenk på rollene maskinene vil spille i klyngen din. For eksempel kan du raskt legge til nye applikasjonsservere som svar på en økning i serverbelastning, men å legge til databaseressurser er mye vanskeligere. Derfor er det en god ide å kjøre databasen på en kraftigere server med mer minne enn på app-serverne.
I trinn 3 til 5 i startveiviseren går du gjennom alternativene for å se om det er noe du vil endre - men mest sannsynlig vil standardalternativene være bra for oppsettet ditt..
I trinn 6 velger du alternativet Velg en eksisterende sikkerhetsgruppe, og velg sikkerhetsgruppen vi definerte ovenfor.
Endelig, gjennomgå innstillingene dine og klikk Launch for å starte forekomstene.
Som det siste trinnet vil AWS be deg om å spesifisere og laste ned et SSH-nøkkelpar for tilgang til serverne.
Velg Opprett et nytt nøkkelpar alternativet og skriv inn et beskrivende navn for nøkkelparet. Klikk deretter Last ned nøkkelpar å laste ned den private nøkkelfilen.
Lag nøkkelen på et trygt sted på datamaskinen. Jeg liker å plassere alle mine SSH nøkler i ~ / .Ssh
katalog, men du kan velge hvilken som helst plassering.
Når du har lastet ned nøkkelen, Starte tilfeller knappen blir klikkbar. Klikk på det, og vent noen minutter for at tilfellene skal starte.
Hvis du starter instanser en etter en, gjenta prosessen for de neste tilfellene til alle fire serverne for klyngen er oppe.
AWS tildeler IP-adresser til dine tilfeller når du starter dem. Å stoppe en forekomst gir ut IP-adressen sin. Ettersom ClusterCS er avhengig av serverens IP-adresser for å koble til dem, kan det føre til problemer hvis du av en eller annen grunn må starte på nytt.
For å komme forbi dette problemet kan du bruke AWSs elastiske IP-adresser-funksjon.
En elastisk IP-adresse er en permanent IP-adresse som du kan knytte til noen av serverens forekomster. Ved å bruke denne adressen i ClusterCS-konfigurasjonen, kan du holde den pekende på forekomsten, selv om forekomsten er stoppet.
Klikk på Elastiske IP-er i AWS Console's venstre side meny. Deretter klikker du på Allokere ny adresse knapp.
Velg VPC som omfang, og klikk Tildele. En IP-adresse tildeles umiddelbart for deg å bruke.
Høyreklikk på IP-adressen, og velg Associeringsadresse å knytte IP til en EC2-server forekomst.
Klikk på Forekomst tekstfelt. Deretter velger du en forekomst fra en rullegardinmeny som viser alle dine forekomster. Til slutt klikker du Forbinder. Gjenta prosessen for resten av EC2-forekomstene dine.
Nå kan serverne dine nås ved hjelp av deres elastiske IP-adresse, selv etter at de har blitt startet på nytt.
Når dine EC2-forekomster er oppe, før du går til ClusterCS, er det godt å kontrollere at du kan koble til dem.
Først endrer du SSH-nøkkelens tillatelser:
chmod 400 ~ / .ssh / key_name.pem
Deretter ser du opp forekomstens offentlige IP-adresse (IPv4 Public IP) Fra EC2 Dashboard:
Deretter kobler du til den, for eksempel ved hjelp av kommandolinjeklienten (eller PuTTY hvis du bruker Windows):
ssh -i ~ / .ssh / tutorial-clustercs.pem [email protected]
Hvis du har problemer med å koble til, må du gå tilbake til sikkerhetsgruppens innstillinger og sørge for at alle nødvendige porter er tilgjengelige.
Når du ser at du kan koble til serveren, er du klar til å flytte over til ClusterCS for å konfigurere programvaren for serverne på klyngen din.
Serverens forekomster er nå oppe. Det er på tide å konfigurere dem til å gjøre sin del i å kjøre e-handelswebområdet ditt som deler av en multiserverklynge. Vi vil gjøre dette ved hjelp av ClusterCS kontrollpanelet.
ClusterCS administrasjonen er delt inn i to deler: servere og domener.
Serverseksjonen definerer det underliggende systemet: serverkonfigurasjonen og programvaren kjører på en eller flere maskiner som danner den. Domenesdelen, som vi skal se nærmere på, spesifiserer kundekontoer og nettsteder som kjører oven på konfigurasjonen på lavt nivå.
Klikk på Administrer servere å begynne å konfigurere klyngen. Hvis du bruker den gratis versjonen, kan du ikke opprette en klynge, men trinnene i å konfigurere en enkelt server ligner veldig på det vi skal gjøre i denne delen av opplæringen.
Klikk på Legg til Cluster.
Deretter, på neste side, rull ned til Legg til ny server seksjon. Der vil du se noen instruksjoner, etterfulgt av et skjema.
For å legge til den første serveren i klyngen, fyll ut skjemaet med følgende informasjon:
EC2-bruker
lb
for lastbalansen og app1
for den første applikasjonsserveren og så videre.Når du velger "SSH-nøkkel" som innloggingstype, vises et tekstområde for inntasting av SSH-nøkkelen. Kopier innholdet i .PEM
fil du lastet ned fra AWS når du starter maskinene og limer den inn i dette tekstområdet. Forlate SSH-nøkkelpassord feltet tomt.
Når alle dataene er på plass, klikk neste.
ClusterCS vil nå koble til serveren og kontrollere at den samsvarer med oppsettets krav. Når sjekken er ferdig, ser du følgende resultater.
Klikk på Legg til server i Cluster Pool.
Du ser at serveren ble lagt til i listen over servere som skal gjøre opp klassen din.
Rull ned og gjenta prosessen for de resterende tre serverne.
Bare da klikker du på Fortsett til Setup å konfigurere klyngen og tjenestene du ønsker å kjøre på sine forskjellige servere.
Nå som alle serverne er tilgjengelige for ClusterCS å bruke, kan du starte den morsomme delen av å velge rollene for hver av serverne.
Gi oppsettet et navn og velg en oppskrift, en malkonfigurasjon, som skal brukes som grunnlag for konfigurasjonen.
ClusterCS kommer med et optimert utgangspunkt for PHP-baserte applikasjoner, kalt Smart webserver (optimalisert LAMP). På en enkelt maskinoppsett der hele konfigurasjonen kjøres på en enkelt server, er denne oppskriften klar til bruk utenfor boksen.
I et klyngeoppsett må du gjøre litt mer konfigurasjon.
Klikk Tilpass for å åpne en detaljert visning. Du vil se følgende liste over "lag", kombinasjoner av programvaremoduler som sammen gir tjenerne sine evner. All funksjonalitet i et lag kan konfigureres, og du kan også opprette nye lag og legge til nye applikasjoner på eksisterende.
Start fra det første laget, brannmur, avklikke på Få til lenke ved siden av tittelen. Du får se følgende visning for å angi detaljene for dette laget.
På venstre side kan du velge hvilke moduler som fyller laget (vi bruker standard sett med moduler, slik at du kan forlate den delen som det er).
På høyre side kan du velge serverne som skal kjøre dette laget. En brannmur er noe hver server i klyngen må ha, så velg alle fire serverne ved å klikke på navnene sine.
Klikk deretter Lagre å gå tilbake til klyngekonfigurasjonsvisningen. Nå ser brannmurlaget ut slik:
Gå gjennom resten av lagene i klyngen din og opprett følgende konfigurasjon:
Lag | servere |
---|---|
brannmur | lb , db , app1 , APP2 |
Smart Traffic Manager | lb |
Internett server | app1 , APP2 |
database | db |
e-post | Ikke brukt, fjern fra konfigurasjon |
Webmail | Ikke brukt, fjern fra konfigurasjon |
Oppbevaring | lb , app1 , APP2 |
verktøy | app1 , APP2 |
I denne opplæringen er det ikke behov for e-post, så jeg fjernet de e-postrelaterte lagene fra konfigurasjonen. Hvis du vil bruke e-post i oppsettet ditt, foreslår jeg at du legger til en egen server forekomst for den. På den måten vil problemer med webserveren ikke forstyrre e-post eller omvendt.
Jeg aktiverte Lagringslaget på lastbalansemaskinen, så vel som på app-serverne. Senere, når du konfigurerer nettstedet, velger vi lb
server som den som har sine filer. De to andre maskinene vil bli montert på den ved hjelp av NFS, slik at de også får tilgang til dataene. På denne måten vil nettstedet ditt ikke være avhengig av en enkelt appserver, og du kan skalere dem opp og ned fritt.
Når alt ser bra ut, klikk Lagre for å lagre konfigurasjonen og starte installeringsprosessen på serverne.
Oppsettet tar omtrent 20 minutter å fullføre, avhengig av størrelsen på klyngen din.
Du har nå opprettet en serverklynger med en databaseserver, to applikasjonsservere og en lastbalanser som forsøker å omdirigere trafikk til de forskjellige forekomstene. Det er på tide å begynne å bruke klyngen ved å sette opp et nettsted for å løpe på toppen av det.
Klikk på domener i ClusterCS toppmeny.
Deretter klikker du på Legg til domenenavn.
På denne skjermen angir du hvordan klyngen (eller en enkelt server) brukes til domenet ditt.
Når oppsettet ser bra ut, klikk Legg til.
Når den oransje "Pågår" -teksten endres til "Aktiv", er domenet klar til bruk. Dette trinnet tar vanligvis bare noen få minutter.
På ethvert nettsted som håndterer sensitiv kundeinformasjon, for eksempel folks bestillinger i en nettbutikk, anbefales det å bruke SSL til å kryptere trafikken mellom brukeren og serveren.
Ved hjelp av ClusterCS er SSL enkelt å konfigurere. I Domener-dashbordet klikker du på SSL. Du ser tre forskjellige måter å konfigurere SSL på.
Vi går med La oss kryptere, en fri, allment klarert sertifiseringsmyndighet støttet av store organisasjoner som Mozilla og opprettet for å øke hastigheten på webens flytting for å sikre surfing.
Klikk på Installer La oss kryptere for å starte oppsettet.
Gi sertifikatet et navn, skriv inn e-postadressen din, og velg domenenavnene du vil opprette sertifikater for. Undersøk Automatisk fornyelse boksen så du vil alltid ha et gyldig SSL-sertifikat.
Klikk deretter på Start knappen, godta bekreftelse popup som dukker opp, og vent på at sertifikatgenerasjonen skal fullføres.
Når sertifikatet er klart, vil du se en skjerm med informasjonen.
Let's Encrypt SSL-sertifikatet er nå klar til bruk.
Konfigurer serverklyngens brannmur for å tillate tilgang til lastbalansen fra port 443, og nettstedet ditt er klar til å akseptere HTTPS-trafikk.
På servere dashbordet, ved siden av klyngen din, klikker du brannmur. Rull deretter ned til bunnen av siden for å legge til en ny regel.
Konfigurer den nye brannmurregelen ved å bruke følgende informasjon:
lb
(din lastbalanseksempel)noen
noen
443
Klikk på Legg til knappen for å legge til konfigurasjonen og deretter på Søke om knappen for å utføre endringene i serverklyngen din.
Du er nå klar til å sette opp WordPress. Skjønnheten i dette ClusterCS-oppsettet er at selv om du bruker flere servere, er installasjonen ikke forskjellig fra hva du vil gjøre med en enkelt server eller delt hosting.
Start med å lage databasen. I domener dashbord, velg databaser. Deretter klikker du på Legg til database.
På neste side skriver du inn et navn for databasen din (for eksempel, wordpress
), og klikk Skape.
På neste side vil du legge merke til at databasen nå er lagt til.
Klikk på Legg til ny bruker knappen for å opprette en ny bruker.
Når oppsettet ber deg om å velge verten, kan databasebrukeren koble databasen fra, velg Anyhost. Dette vil tillate at applikasjonsserverne kobler seg til databasen, selv om de kjører på separate servere.
Når du har lagt til brukeren, klikker du på Forbinder ved siden av brukerens navn for å gi brukeren tilgang til databasen.
På neste side vil du kunne velge tillatelser for brukeren i denne databasen. Klikk på Sjekk alt å gi brukeren full tilgang til databasen. Deretter klikker du på Associate Bruker å bruke disse endringene.
Databasen er nå klar til bruk.
Last ned den nyeste WordPress-versjonen og bruk FTP (bruker brukernavnet og passordet du oppgav da du opprettet domenet) for å laste det opp til ditt nye nettsted. Hvis du allerede har konfigurert DNS-innstillingene, må du koble til domenets nettadresse. Du kan også bruke lastbalanseksemplerets offentlige IP-adresse.
Når du har lastet opp WordPress til nettstedet ditt public_html
katalog, åpne nettstedets URL i nettleseren din og kjør WordPress installasjonen.
Bruk følgende databaseinformasjon:
Når WordPress-installasjonen er klar, fortsett ved å sette opp WooCommerce og andre plugins og temaer du vil bruke på e-handelsstedet ditt.
Så kom tilbake for noen endelige optimaliseringer, og lær hvordan du skalere klassen opp og ned.
Du har nå konfigurert et multi-server WordPress-nettsted på ClusterCS. Nettstedet er sikkert, stabilt, godt organisert og enkelt skalerbart. Men hva gjør du nettopp når nettbutikken din eller et annet nettsted får mye trafikk, og det er på tide å skalere opp tjenesten?
Her ser du kraften i et klyngeoppsett: takket være arbeidet vi gjorde foran, når du trenger mer prosessorkraft, kan du ganske enkelt legge til flere servere i klyngen.
Først skal du starte en ny server forekomst på AWS, og sørg for at den bruker det samme SSH-nøkkelparet og tilhører samme sikkerhetsgruppe som de andre serverne i klyngen.
Deretter, i ClusterCS administrere servere dashbord, klikk Få til for å oppdatere klubbens preferanser.
Bla helt ned, og klikk på Legg til servere.
Gjenta trinnene for å legge til en server i klyngebassenget ovenfra.
Klikk Fortsett å sette opp og konfigurer lagene for serveren. Velg alle de samme programmene som på app1
og APP2
servere. Klikk deretter Lagre å bruke endringene og vent til konfigurasjonen er ferdig.
Nettstedet ditt kjører nå på tre applikasjonsservere i stedet for to.
Like enkelt som å legge til nye servere i klyngen er det ikke det eneste du kan gjøre for å svare på voksende serverkrav. I Hastighet delen av ClusterCS Domener-dashbordet, kan du konfigurere regler for hvordan forespørsler som kommer til nettstedet ditt, skal håndteres.
Når du brukte "Smart webserver" -oppskriften for å starte klyngen, har du allerede noen optimaliseringer på plass: mens PHP-trafikk håndteres av Apache, er det en regel, "Statiske filer til Lighttpd", som forteller lastbalansen til ruten forespørsler om statiske filer som bilder til Lighttpd for å ta litt av Apache.
Under denne regelen vil du legge merke til en seksjon for å konfigurere dine egne konfigurasjonssett.
Det er mange ting du kan gjøre med dette verktøyet, men vi ser på en av de mest effektive: caching en enkelt side ved hjelp av Nginx.
Fyll ut følgende informasjon:
sti
og slutter med
, og skriv butikkens sti-for eksempel, /butikk
. Klikk deretter Legg til.cache_with
som handlingen og Smart Trafikkleder / Nginx
som parameter.Klikk Legg til sett. Deretter klikker du Henrette å bruke endringene i serverklyngen din.
Nå blir siden cached ved hjelp av Nginx, noe som betyr at mindre tid blir brukt på å kjøre PHP-forespørsler på Apache-serveren.
I denne opplæringen lærte du hvordan du bruker ClusterCS til å konfigurere en klynge av AWS-servere og et WordPress-nettsted på toppen av det. Vi har også sett på måter å skalere nettstedet opp og ned, samt konfigurere caching for å håndtere store trafikkspisser.
Som du så, kan disse trinnene også brukes på mindre, en-serveroppsett, eller alternativt, hvis du vil grave dypere inn i detaljene i oppsettet ditt, har ClusterCS flere alternativer for det også.
Besøk ClusterCS nettsted og kunnskapsbase for å lære mer. ClusterCS-staben er også alltid klar til å svare på dine spørsmål og hjelpe deg med serveroppsettet ditt.