sql >> Database teknologi >  >> RDS >> Mysql

Sådan migreres MySQL fra Amazon EC2 til dit On-Prem Datacenter uden nedetid

Siden starten har der været et stigende antal migrationer til et skybaseret miljø. Cloud computing kan trods alt give mange fordele for virksomheder, især dem, der arbejder med big data.

Men efterhånden som efterspørgslen vokser, stiger omkostningerne også, og du kan komme i en situation, hvor de månedlige cloududgifter bliver for høje, og de negative sider hurtigt opvejer fordelene ved at operere i skyen. Eller måske har du sikkerheds- eller overholdelseskrav, der kræver, at du har mere direkte kontrol over dine systemer. Dette kan i sidste ende give dig anledning til at migrere tilbage til et lokalt miljø.

AWS leverer overvågnings- og administrationsværktøjer til at køre vores system i skyen og samtidig have synlighed og kontrol til optimering. Men når vi er klar til en on-prem løsning, kan det være udfordrende at migrere vores data og genskabe alle værktøjerne til at administrere vores systemer korrekt.

I denne blog vil vi diskutere, hvordan du kan migrere dine systemer fra AWS til et lokalt datacenter, og hvordan ClusterControl kan hjælpe med at strømline processen.

Koncepter

Før vi hopper ind, lad os dække nogle grundlæggende begreber om Amazon Cloud og ClusterControl.

AWS

Amazon Web Services (AWS) er en Infrastructure as a Service-platform, der består af et stort antal uafhængige og semi-uafhængige tjenester. Formålet med Infrastructure as a Service-platformen er på råvarebasis at tilbyde tjenester, der tidligere krævede køb af kapitalintensive infrastrukturkomponenter såsom avancerede servere, netværksroutere og switches, og for større virksomheder, selv deres egne datacentre.

RDS

Amazon Relational Database Service (RDS) gør det nemt at opsætte, betjene og skalere en relationel database i skyen. Det giver omkostningseffektiv kapacitet og kapacitet, der kan ændres størrelse, samtidig med at tidskrævende administrationsopgaver som f.eks. hardwareklargøring, databaseopsætning, patching og sikkerhedskopier automatiseres.

Amazon RDS er tilgængelig på flere databaseinstanstyper og giver dig seks velkendte databasestyringssystemer at vælge imellem, inklusive Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database og SQL Server.

EC2

Amazon Elastic Compute Cloud (EC2) er en tjeneste, der giver sikker og størrelsesmæssig beregningskapacitet i skyen. Det er designet til at gøre web-skala cloud computing nemmere for udviklere.

Amazon EC2s enkle webgrænseflade giver dig mulighed for at opnå og konfigurere kapacitet med minimal friktion. Det giver dig fuld kontrol over dine computerressourcer og lader dig køre på Amazons gennemprøvede computermiljø.

ClusterControl

ClusterControl er et omfattende administrationssystem til open source-databaser, der automatiserer implementering, administrationsfunktioner og sundheds- og ydeevneovervågning fra en enkelt glasrude.

ClusterControl understøtter implementering, administration, overvågning og skalering for forskellige databaseteknologier i ethvert miljø.

Hvorfor migrere til On-Prem?

Som vi tidligere nævnte, er de mest almindelige årsager til at migrere fra AWS til et lokalt miljø omkostninger, sikkerhed, overholdelse eller at køre lokale applikationer. I AWS ved du ikke, hvad der sker under infrastrukturens hætte. Du ved kun, om alt fungerer. Hvis du oplever dårlig ydeevne eller uregelmæssigheder, er den eneste løsning at komme i kontakt med Amazon support.

Eksempel på migreringsscenarie

I AWS har du to forskellige produkter relateret til denne blog:EC2 og RDS.

Den største forskel mellem dem er, at i EC2 har du SSH-adgang til serveren og skal selv administrere databasen. RDS er en hostet databasetjeneste, og du har kun adgang til databaseinstansen.

I RDS, da du ikke har SSH-adgang, skal du oprette et dump og importere det til den nye server eller konfigurere replikering og fremme replikaen til den nye primære. For begge muligheder er processen manuel. Du kan også tilføje en belastningsbalancer for at forbedre denne proces. Vi dækkede denne opgave i disse blogs:Del 1 og Del 2.

Så, lad os fokusere på migreringen fra EC2.

I vores eksempel, lad os se, hvordan man migrerer MySQL fra AWS EC2 til et lokalt datacenter. Vi vil bruge et MySQL-replikeringsmiljø, men disse trin burde fungere for andre teknologier som PostgreSQL.

Vi antager, at du har din primære MySQL-database kørende på en EC2-instans. I det lokale datacenter antager vi også, at du har ClusterControl installeret og en ny databaseserver at migrere til.

I AWS-administrationskonsollen burde du have noget lignende i EC2'en instanssektion:

Først skal du importere din nuværende primære node, der kører på EC2 til ClusterControl. Til denne importproces skal du åbne port 3306 ved at redigere den sikkerhedsgruppe, der er knyttet til EC2-instansen.

Gå derefter til afsnittet Import i ClusterControl:

Der kan du vælge databaseteknologien, i dette eksempel MySQL Replication, og du skal angive brugeren, nøglen eller adgangskoden og porten for at oprette forbindelse til din server via SSH. Du skal også angive navnet på din nye klynge.

 

Efter opsætning af SSH-adgangsoplysningerne skal du definere nogle databaseoplysninger som f.eks. databaseadministratorens legitimationsoplysninger, port og basedir. Du kan også aktivere ClusterControl Node AutoRecovery og Cluster AutoRecovery funktionerne for den nye klynge.

Derefter skal du tilføje din server ved at bruge IP-adressen eller værtsnavnet og trykke på Importer.

Når det er gjort, kan du overvåge status for importjobbet fra ClusterControl aktivitetsmonitor.

Når opgaven er fuldført, vil du se din databasenode i hovedet ClusterControl-skærm:

Sørg for at aktivere binlog-generering i din nuværende masterdatabase.

Nu kan du tilføje din fremtidige nye primære node som en ny replika fra din nuværende primære database. For dette skal du gå til ClusterControl -> Vælg Cluster -> Cluster Actions -> Tilføj replikeringsslave.

Her skal du tilføje værtsnavnet eller IP-adressen på den nye replika server, og hvis du vil have ClusterControl til at installere softwaren for dig.

Sørg for, at du har forbindelse fra AWS til porte 3306 og 9999 på den lokale server.

ClusterControl iscenesætter replika med data ved at tage en hot backup af den primære, streame den til replikaen og gendanne den der. Når den er gendannet, er replikaknuden forbundet til den primære knude, så den kan indhente begivenheder og blive synkroniseret. Bemærk, at for store databaser, der kører med en vis belastning, vil du måske undgå den ekstra belastning af denne operation på den primære node. I så fald er det muligt at bygge replika-noden først fra en eksisterende backup og derefter forbinde replikaen, så den indhenter den primære node.

Efter denne opgave skulle du have noget som dette:

Du kan også verificere din topologi i ClusterControl Topologi-sektionen.

Derefter skal du promovere replikaen til primær (ClusterControl -> Vælg Cluster -> Node Actions -> Promote slave) og skift slutpunktet i din applikation.

For at forbedre denne topologi kan du tilføje en belastningsbalancer til at styre trafikken fra applikationsserveren til databasen. Når du bruger en belastningsbalancer, behøver du ikke at ændre slutpunktet fra din applikation under migreringen; belastningsbalanceren vil ændre den primære node på en gennemsigtig måde.

Der er mange måder at udføre denne opgave på, og du burde være i stand til at vedtage en strategi som denne til dit miljø, afhængigt af din infrastruktur, sikkerhed osv.

Af sikkerhedsmæssige årsager bør du overveje at bruge en VPN mellem AWS og det lokale miljø.

I tilfælde af en multi-master topologi som Galera Cluster behøver du kun at tilføje de noder, som du ønsker på stedet, men vær forsigtig med latensen. Du kan f.eks. bruge forskellige Galera-segmenter til at reducere netværksforbruget.

Overvejelser ved migrering

Til sidst er her nogle overvejelser, du skal tage i betragtning, hvis du vil forlade AWS og begynde at bruge dit eget miljø:

  • Overvågning:Glem ikke at bruge et overvågningssystem. Du skal vide, hvad der sker i dit system hele tiden!
  • Katastrofegenopretningsstrategi:Du bør overveje en god DRP. Generelt bør du have oplysningerne tre forskellige fysiske steder:Primær, Replika og backup.
  • Høj tilgængelighed:I dag er høj tilgængelighed et must i de fleste produktionsmiljøer, så du skal tænke på den bedste højtilgængelighedsløsning afhængigt af din infrastruktur.
  • Skalering:Du bør være i stand til at skalere, hvis det er nødvendigt i fremtiden eller til en bestemt begivenhed.
  • Tilbageføring:Hvis du vil migrere fra AWS til et lokalt miljø, skal du huske på, at noget kan gå galt (som i enhver form for migrering), så du bør have en tilbagerulningsplan.
  • Antag, at du er ude efter en slags hybridmiljø, med instanser, der kører på AWS og on-prem. I så fald er ClusterControl en fremragende pasform til overvågning, styring af tilgængelighed, sikkerhedskopier, skalering og mere. Prøv det!

Afslutning

Nogle gange er det bare ikke det bedste at arbejde i skyen, og du kan opleve, at du har brug for at migrere tilbage til en lokal løsning. Vi håber, at denne blog har givet dig nogle nyttige oplysninger om migrering af dine MySQL-baserede data til dit lokale datacenter fra AWS, og hvordan ClusterControl leverer de værktøjer, du har brug for til at administrere dine systemer korrekt.

Når du har fuldført din migrering, skal du øge dit overvågningssystem med proaktive strategier såsom forudsigende varsling. Se vores nyligt opdaterede indlæg om databaseovervågning med ClusterControl for at lære mere.

For flere opdateringer om databasestyringstips og bedste praksis, skal du sørge for at abonnere på vores blog, RSS-feed og følge os på LinkedIn og Twitter.


  1. psycopg2 lækker hukommelse efter stor forespørgsel

  2. SQLite JSON_TREE()

  3. Oprettelse af midlertidige tabeller i SQL

  4. MariaDB SYSTEM_USER() Forklaret