sql >> Databasteknik >  >> RDS >> MariaDB

Det enkla sättet att distribuera ett MySQL Galera Cluster på AWS

ClusterControl 1.7.3 kommer med en anmärkningsvärd förbättring av molnintegrering. Det är möjligt att distribuera ett MySQL- och PostgreSQL-replikeringskluster till molnet, samt att automatiskt starta en molninstans och skala ut ditt databaskluster genom att lägga till en ny databasnod.

Det här blogginlägget visar hur du enkelt distribuerar ett Galera Cluster med ClusterControl på AWS. Den här nya funktionen är en del av ClusterControl Community Edition, som kommer med gratis driftsättning och övervakningsfunktioner. Det betyder att du kan dra nytta av den här funktionen utan kostnad!

ClusterControl Databas Cluster Architecture

Följande diagram sammanfattar vår övergripande databasklusterarkitektur.

ClusterControl-servern är placerad utanför AWS-infrastrukturen, vilket möjliggör rättvis synlighet till vårt databaskluster (beläget i Frankfurt:eu-central-1). ClusterControl-servern MÅSTE ha en dedikerad offentlig IP-adress. Detta beror på att IP-adressen kommer att beviljas av ClusterControl på databasservern och AWS-säkerhetsgruppen. Galera-databasversionen som vi kommer att distribuera är MariaDB Cluster 10.3, med ClusterControl 1.7.3.

Förbereder AWS-miljön

ClusterControl kan distribuera ett databaskluster på molnplattformar som stöds, nämligen AWS, Google Cloud Platform (GCP) och Microsoft Azure. Det första vi måste konfigurera är att få AWS-åtkomstnycklarna så att ClusterControl kan utföra programmatiska förfrågningar till AWS-tjänster. Du kan använda root-kontoåtkomstnyckeln, men detta är inte det rekommenderade sättet. Det är bättre att skapa en dedikerad IAM-användare (Identity and Access Management) enbart för detta ändamål.

Logga in på din AWS-konsol -> Mina säkerhetsuppgifter -> Användare -> Lägg till användare . Ange användaren och välj "Programmatisk åtkomst" som åtkomsttyp:

Skapa en ny användargrupp på nästa sida genom att klicka på "Skapa" grupp"-knappen och ge gruppens namn "DatabaseAutomation". Tilldela följande åtkomsttyp:

  • AmazonEC2FullAccess
  • AmazonVPCFullAccess
  • AmazonS3FullAccess (endast om du planerar att lagra databassäkerhetskopian på AWS S3)

Markera kryssrutan DatabasAutomation och klicka på "Lägg till användare i grupp":

Alternativt kan du tilldela taggar på nästa sida. Annars, fortsätt bara för att skapa användaren. Du bör få de två viktigaste sakerna, åtkomstnyckel-ID och hemlig åtkomstnyckel.

Ladda ner CSV-filen och lagra den på ett säkert ställe. Vi är nu bra på att automatisera distributionen på molnet.

Installera ClusterControl på respektive server:

$ whoami

root

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

$ chmod 755 install-cc

$ ./install-cc

Följ installationsinstruktionerna och gå till http://192.168.0.11/clustercontrol och skapa superadmin-användaren och lösenordet.

För att tillåta ClusterControl att utföra automatisk distribution på molnet måste man skapa molnuppgifter för den valda regionen med ett giltigt AWS-nyckel-ID och hemlighet. Gå till Sidofält -> Integrationer -> Molnleverantörer -> Lägg till din första Cloud Credential -> Amazon Web Services och ange de nödvändiga uppgifterna och välj Frankfurt som standardregion:

Denna referens kommer att användas av ClusterControl för att automatisera klustrets distribution och hantering. Vid det här laget är vi redo att distribuera vårt första kluster.

Databasklusterdistribution

Gå till Distribuera -> Implementera i molnet -> MySQL Galera -> MariaDB 10.3 -> Konfigurera kluster för att gå vidare till nästa sida.

Under Konfigurera kluster, se till att antalet noder är 3 och ange ett klusternamn och MySQL root-lösenord:

Under Välj referens, välj en referens som heter "AWS Frankfurt" och fortsätt till nästa sida genom att klicka på "Välj virtuell maskin". Välj önskat operativsystem och instansstorlek. Det rekommenderas att köra vår infrastruktur i ett privat moln så att vi kan få en dedikerad intern IP-adress för våra molninstanser och värdarna inte är direkt exponerade för det offentliga nätverket. Klicka på knappen "Lägg till ny" bredvid fältet Virtual Private Cloud (VPC) och ange ett undernät av 10.10.0.0/16 till detta nätverk:

VPC:n som vi har skapat är ett privat moln och har ingen internetanslutning. För att ClusterControl ska kunna distribuera och hantera värdarna utanför AWS-nätverket måste vi tillåta internetanslutning till denna VPC. För att göra detta måste vi göra följande:

  1. Skapa en internetgateway
  2. Lägg till extern routing i rutttabellen
  3. Koppla undernätet till rutttabellen

För att skapa en internetgateway, logga in på AWS Management Console -> VPC -> Internet Gateways -> Skapa internetgateway -> tilldela ett namn för denna gateway . Välj sedan den skapade gatewayen från listan och gå till Åtgärder -> Bifoga till VPC -> välj VPC för rullgardinsmenyn -> Bifoga . Vi har nu kopplat en internetgateway till det privata molnet. Vi måste dock konfigurera nätverket för att vidarebefordra alla externa förfrågningar via denna internetgateway. Därför måste vi lägga till en standardrutt till rutttabellen. Gå till VPC -> Rutttabeller -> välj rutttabellen -> Redigera rutter och ange destinationsnätverket, 0.0.0.0/0 och mål (det skapade internetgateway-ID) enligt nedan:

Sedan måste vi associera DB-undernätet till detta nätverk så att det tilldelar alla instanser som skapats i detta nätverk till standardrutten som vi har skapat tidigare, välj rutttabellen -> Redigera undernätsassociation -> tilldela DB-undernätet , som visas nedan:

VPC:n är nu redo att användas av ClusterControl för distributionen.

När du har skapat den, välj den skapade VPC:n från rullgardinsmenyn. För SSH-nyckel kommer vi att be ClusterControl att automatiskt generera den:

Den genererade SSH-nyckeln kommer att finnas i ClusterControl-servern under katalogen /var/lib/cmon/autogenerated_ssh_keys/s9s/.

Klicka på "Deployment Summary". På den här sidan måste vi tilldela ett subnät från VPC till databasklustret. Eftersom detta är en ny VPC har den inget subnät och vi måste skapa ett nytt. Klicka på knappen "Lägg till nytt undernät" och tilldela 10.10.1.0/24 som nätverk för vårt databaskluster:

Slutligen, välj skapa subnät i textrutan och klicka på "Deploy Cluster":

Du kan övervaka jobbförloppet under Aktivitet -> Jobb -> Skapa kluster . ClusterControl kommer att utföra de nödvändiga förinstallationsstegen som att skapa molninstanserna, säkerhetsgruppen, generera SSH-nyckel och så vidare, innan de faktiska installationsstegen börjar.

När klustret är klart bör du se följande kluster i ClusterControl-instrumentpanelen:

Vår klusterdistribution är nu klar.

Post AWS Database Deployment

Vi kan börja ladda in vår data i klustret eller skapa en ny databas för din applikationsanvändning. För att ansluta, instruera helt enkelt dina applikationer eller klienter att ansluta till den privata eller offentliga IP-adressen för en av databasservrarna. Du kan få denna information genom att gå till sidan Noder, som visas i följande skärmdump:

Om du vill komma åt databasnoderna direkt kan du använda ClusterControl web-SSH-modulen på Node Actions -> SSH Console , vilket ger dig en liknande upplevelse som att ansluta via SSH-klient.

För att skala upp klustret genom att lägga till en databasnod kan du bara gå till Klusteråtgärder (serverstackikon) -> Lägg till nod -> Lägg till en DB-nod på en ny molninstans och du kommer att presenteras med följande dialogruta:

Följ bara installationsguiden och konfigurera din nya instans därefter. När instansen har skapats kommer ClusterControl att installera, konfigurera och ansluta noden till klustret automatiskt.

Det var allt för nu, gott folk. Lycka till med att samlas i molnet!


  1. Bästa DBaaS-lösningar för PostgreSQL

  2. MySQL SQRT() Funktion – Returnera kvadratroten av ett tal i MySQL

  3. Inbäddad Postgres för Spring Boot Tests

  4. Bevilja val på alla tabeller som ägs av en specifik användare