sql >> Database teknologi >  >> RDS >> MariaDB

Den nemme måde at implementere en MySQL Galera Cluster på AWS

ClusterControl 1.7.3 kommer med en bemærkelsesværdig forbedring i cloud-integration. Det er muligt at implementere en MySQL- og PostgreSQL-replikeringsklynge til skyen, samt automatisk at starte en cloud-instans og udskalere din databaseklynge ved at tilføje en ny databaseknude.

Dette blogindlæg viser, hvordan du nemt kan implementere en Galera Cluster ved hjælp af ClusterControl på AWS. Denne nye funktion er en del af ClusterControl Community Edition, som kommer med gratis implementering og overvågningsfunktioner. Det betyder, at du kan drage fordel af denne funktion uden omkostninger!

ClusterControl Database Cluster Architecture

Følgende diagram opsummerer vores overordnede databaseklyngerarkitektur.

ClusterControl-serveren er placeret uden for AWS-infrastrukturen, hvilket giver retfærdig synlighed til vores databaseklynge (placeret i Frankfurt:eu-central-1). ClusterControl-serveren SKAL have en dedikeret offentlig IP-adresse. Dette skyldes, at IP-adressen vil blive givet af ClusterControl på databaseserveren og AWS-sikkerhedsgruppen. Galera-databaseversionen, som vi skal implementere, er MariaDB Cluster 10.3, der bruger ClusterControl 1.7.3.

Forberedelse af AWS-miljøet

ClusterControl er i stand til at implementere en databaseklynge på understøttede cloudplatforme, nemlig AWS, Google Cloud Platform (GCP) og Microsoft Azure. Den første ting, vi skal konfigurere, er at få AWS-adgangsnøglerne til at tillade ClusterControl at udføre programmatiske anmodninger til AWS-tjenester. Du kan bruge root-kontoadgangsnøglen, men dette er ikke den anbefalede måde. Det er bedre at oprette en dedikeret Identity and Access Management (IAM) bruger udelukkende til dette formål.

Log ind på din AWS-konsol -> Mine sikkerhedsoplysninger -> Brugere -> Tilføj bruger . Angiv brugeren og vælg "Programmatisk adgang" som adgangstype:

Opret en ny brugergruppe på næste side ved at klikke på "Opret" gruppe"-knappen og giv gruppens navn "DatabaseAutomation". Tildel følgende adgangstype:

  • AmazonEC2FullAccess
  • AmazonVPCFullAccess
  • AmazonS3FullAccess (kun hvis du planlægger at gemme databasesikkerhedskopien på AWS S3)

Marker afkrydsningsfeltet DatabaseAutomation og klik på "Tilføj bruger til gruppe":

Du kan eventuelt tildele tags på næste side. Ellers skal du bare fortsætte med at oprette brugeren. Du bør få de to vigtigste ting, adgangsnøgle-id og hemmelig adgangsnøgle.

Download CSV-filen og gem den et sikkert sted. Vi er nu gode til at automatisere implementeringen i skyen.

Installer ClusterControl på den respektive server:

$ whoami

root

$ wget http://severalnines.com/downloads/cmon/install-cc

$ chmod 755 install-cc

$ ./install-cc

Følg installationsinstruktionerne og gå til http://192.168.0.11/clustercontrol og opret superadmin-brugeren og adgangskoden.

For at tillade ClusterControl at udføre automatisk implementering på skyen, skal man oprette cloud-legitimationsoplysninger for den valgte region med et gyldigt AWS-nøgle-id og en hemmelighed. Gå til Sidebar -> Integrationer -> Cloud Providers -> Tilføj din første Cloud Credential -> Amazon Web Services og indtast de nødvendige detaljer og vælg Frankfurt som standardregion:

Denne legitimationsoplysninger vil blive brugt af ClusterControl til at automatisere klyngeimplementering og -styring. På dette tidspunkt er vi klar til at implementere vores første klynge.

Databaseklyngeimplementering

Gå til Deploy -> Deploy in the Cloud -> MySQL Galera -> MariaDB 10.3 -> Configure Cluster for at fortsætte til næste side.

Sørg for, at antallet af noder er 3 under Konfigurer klynge, og giv et klyngenavn og MySQL root-adgangskode:

Under Vælg legitimationsoplysninger, vælg en legitimationsoplysninger kaldet "AWS Frankfurt" og fortsæt til næste side ved at klikke på "Vælg virtuel maskine". Vælg det foretrukne operativsystem og instansstørrelse. Det anbefales at køre vores infrastruktur inde i en privat sky, så vi kan få en dedikeret intern IP-adresse til vores cloud-forekomster, og værterne er ikke direkte eksponeret for det offentlige netværk. Klik på knappen "Tilføj ny" ud for feltet Virtual Private Cloud (VPC), og giv et undernet på 10.10.0.0/16 til dette netværk:

Den VPC, vi har oprettet, er en privat sky og har ikke internetforbindelse. For at ClusterControl skal være i stand til at implementere og administrere værterne uden for AWS-netværket, skal vi tillade internetforbindelse til denne VPC. For at gøre dette skal vi gøre følgende:

  1. Opret en internetgateway
  2. Tilføj ekstern routing til rutetabellen
  3. Knyt undernettet til rutetabellen

For at oprette en internetgateway skal du logge ind på AWS Management Console -> VPC -> Internet Gateways -> Opret internetgateway -> tildel et navn til denne gateway . Vælg derefter den oprettede gateway fra listen og gå til Handlinger -> Vedhæft til VPC -> vælg VPC'en til rullelisten -> Vedhæft . Vi har nu knyttet en internetgateway til den private sky. Vi skal dog konfigurere netværket til at videresende alle eksterne anmodninger via denne internetgateway. Derfor er vi nødt til at tilføje en standardrute til rutetabellen. Gå til VPC -> Rutetabeller -> vælg rutetabellen -> Rediger ruter og angiv destinationsnetværket, 0.0.0.0/0 og mål (det oprettede internetgateway-id) som nedenfor:

Derefter skal vi knytte DB-undernettet til dette netværk, så det tildeler alle forekomster, der er oprettet i dette netværk, til standardruten, som vi har oprettet tidligere, vælg rutetabellen -> Rediger undernettilknytning -> tildel DB-undernettet , som vist nedenfor:

VPC'en er nu klar til at blive brugt af ClusterControl til udrulningen.

Når den er oprettet, skal du vælge den oprettede VPC fra rullemenuen. For SSH Key vil vi bede ClusterControl om at generere den automatisk:

Den genererede SSH-nøgle vil være placeret inde i ClusterControl-serveren under mappen /var/lib/cmon/autogenerated_ssh_keys/s9s/.

Klik på "Implementeringsoversigt". På denne side skal vi tildele et undernet fra VPC'en til databaseklyngen. Da dette er en ny VPC, har den ikke noget undernet, og vi er nødt til at oprette et nyt. Klik på knappen "Tilføj nyt undernet" og tildel 10.10.1.0/24 som netværket for vores databaseklynge:

Til sidst skal du vælge oprette undernet i tekstboksen og klikke på "Deploy Cluster":

Du kan overvåge jobforløbet under Aktivitet -> Jobs -> Opret klynge . ClusterControl udfører de nødvendige præinstallationstrin, såsom oprettelse af cloud-forekomster, sikkerhedsgruppe, generering af SSH-nøgle og så videre, før de faktiske installationstrin begynder.

Når klyngen er klar, bør du se følgende klynge i ClusterControl-dashboardet:

Vores klyngeimplementering er nu færdig.

Efter AWS-databaseimplementering

Vi kan begynde at indlæse vores data i klyngen eller oprette en ny database til din applikationsbrug. For at oprette forbindelse skal du blot instruere dine applikationer eller klienter til at oprette forbindelse til den private eller offentlige IP-adresse på en af ​​databaseserverne. Du kan få disse oplysninger ved at gå til siden Nodes, som vist på følgende skærmbillede:

Hvis du kan lide at få direkte adgang til databasenoderne, kan du bruge ClusterControl web-SSH-modulet på Node Actions -> SSH Console , hvilket giver dig en lignende oplevelse som at oprette forbindelse via SSH-klient.

For at skalere klyngen op ved at tilføje en databasenode, kan du bare gå Klyngehandlinger (serverstakikon) -> Tilføj node -> Tilføj en DB-knude på en ny cloud-instans og du vil blive præsenteret for følgende dialogboks:

Bare følg implementeringsguiden og konfigurer din nye instans i overensstemmelse hermed. Når forekomsten er oprettet, vil ClusterControl automatisk installere, konfigurere og forbinde noden i klyngen.

Det var det for nu, folkens. God fornøjelse med at klynge sammen i skyen!


  1. Rekursiv forespørgsel i Oracle

  2. Pivotering af rækker til kolonner dynamisk i Oracle

  3. Ændring af en kolonne:null til ikke null

  4. Hvordan NOT RLIKE virker i MySQL