En hybrid cloud-database er en blanding af aktive værter, der bor på både lokale og cloud-infrastrukturer, og fungerer som et enkelt operationelt system. Det hjælper med at implementere et miljø med høj tilgængelighed, og da både database og applikationer skal være bærbare for at kunne arbejde på on-prem og cloud, reducerer det også afhængigheden af en bestemt cloud-leverandør (cloud vendor lock-in). Det er dog ikke så ligetil at implementere denne form for miljø.
I dette blogindlæg skal vi se på at bruge ClusterControl til at implementere en Hybrid Cloud MySQL-database mellem lokalt og cloud-infrastruktur, der kører på AWS. Denne opsætning giver os mulighed for at bringe databasen tættere på de klienter og applikationer, der findes i et cloudmiljø, og vi vil opbevare en kopi af databasen på stedet til katastrofegendannelse og live backup-formål.
Arkitektur
Vores implementering består af fire noder - en node til ClusterControl og en node for masterserver to andre noder er i slaveservere, hvor 2 af databasenoderne er placeret i AWS datacenteret som det primære datacenter (samt ClusterControl), mens den tredje node er placeret i det lokale datacenter. Følgende diagram illustrerer vores endelige arkitektur.
Forberedelse af dit cloudmiljø
Først skal du oprette dit miljø med din primære cloud-udbyder. I dette tilfælde vil vi bruge AWS med tre EC2-instanser.
Gå derefter til det lokale miljø og opret én virtuel maskine eller vært, der vil være standby-knudepunktet.
ClusterControl - 52.14.222.75
Master - 3.17.190.53
Slave 1 - 3.14.146.131
Slave 2 - 192.168.33.15
Vi antager, at du har en ClusterControl-installation kørende og allerede har oprettet Cloud Provider-konti. Bemærk, at vi bruger cloud-instanser med offentlige IP'er til bloggens formål. For en opsætning i produktionsgrad skal du sikre dit miljø, for eksempel skal cloud-VM'er være inden for en VPC med kun private IP-adresser. Du ville have en sikker forbindelse mellem on-prem og VPC'en.
Implementering af MySQL ved hjælp af ClusterControl
Gå til din ClusterControl GUI, og vælg indstillingen "Deploy". Hvis du allerede har en MySQL-instans kørende, skal du i stedet vælge "Importér eksisterende server/database".
Her skal vi lave en ny implementering, så vi vælger muligheden "Deploy". Når du vælger MySQL, skal du angive bruger, nøgle eller adgangskode og port for at forbinde med SSH til dine MySQL-noder .
For flere detaljer om SSH-forbindelsen, se venligst ClusterControl-brugerkravene.
Efter opsætning af SSH-adgang skal du definere databasebrugeren og -versionen. Datadir er valgfrit. Du kan også angive, hvilket lager der skal bruges. Her vælger vi MySQL 8.0 version.
Sørg for, at du får et grønt flueben, der angiver, at ClusterControl er i stand til at oprette forbindelse til databasenoderne for at udføre implementeringen. Klik på knappen "Deploy" for at starte implementeringen, og du kan overvåge implementeringsforløbet under Aktivitet -> Jobs -> Opret klynge. Du kan overvåge oprettelsesstatus i ClusterControl-aktivitetsmonitoren.
Når opgaven er afsluttet, kan du se din nye MySQL-opsætning på hovedskærmen til ClusterControl.
Og tjek din endelige topologi i Topologivisningssektionen.
Konklusion
ClusterControl-funktioner giver dig mulighed for hurtigt at opsætte replikering i et Hybrid Cloud-miljø, mellem forskellige Cloud-udbydere eller endda mellem en cloud-udbyder og et On-prem-miljø. Om kommunikationen mellem cloud-udbyderne, eller mellem privat og offentlig cloud, skal du af sikkerhedsmæssige årsager kun begrænse trafikken fra kendte kilder for at reducere risikoen for uautoriseret adgang til dit netværk.