ClusterControl 1.7.3 wordt geleverd met een opmerkelijke verbetering in cloudintegratie. Het is mogelijk om een MySQL- en PostgreSQL-replicatiecluster in de cloud te implementeren, evenals automatisch een cloudinstantie te starten en uw databasecluster uit te schalen door een nieuw databaseknooppunt toe te voegen.
Deze blogpost laat zien hoe u eenvoudig een Galera-cluster kunt implementeren met ClusterControl op AWS. Deze nieuwe functie maakt deel uit van de ClusterControl Community Edition, die wordt geleverd met gratis implementatie- en monitoringfuncties. Dit betekent dat u gratis van deze functie kunt profiteren!
ClusterControl Database Cluster Architectuur
Het volgende diagram geeft een samenvatting van onze algemene databaseclusterarchitectuur.
De ClusterControl-server bevindt zich buiten de AWS-infrastructuur, waardoor een goede zichtbaarheid mogelijk is naar ons databasecluster (in Frankfurt:eu-central-1). De ClusterControl-server MOET een speciaal openbaar IP-adres hebben. Dit komt omdat het IP-adres wordt toegekend door ClusterControl op de databaseserver en de AWS-beveiligingsgroep. De Galera-databaseversie die we gaan implementeren is MariaDB Cluster 10.3, met ClusterControl 1.7.3.
De AWS-omgeving voorbereiden
ClusterControl kan een databasecluster implementeren op ondersteunde cloudplatforms, namelijk AWS, Google Cloud Platform (GCP) en Microsoft Azure. Het eerste dat we moeten configureren, is om de AWS-toegangssleutels te krijgen zodat ClusterControl programmatische verzoeken aan AWS-services kan uitvoeren. U kunt de toegangssleutel van het root-account gebruiken, maar dit is niet de aanbevolen manier. Het is beter om alleen voor dit doel een speciale gebruiker voor identiteits- en toegangsbeheer (IAM) aan te maken.
Log in op uw AWS-console -> Mijn beveiligingsreferenties -> Gebruikers -> Gebruiker toevoegen . Specificeer de gebruiker en kies "Programmatic Access" als het Toegangstype:
Maak op de volgende pagina een nieuwe gebruikersgroep door op de knop "Maken group" knop en geef de groepsnaam "DatabaseAutomation". Wijs het volgende toegangstype toe:
- AmazonEC2FullAccess
- AmazonVPCFullAccess
- AmazonS3FullAccess (alleen als u van plan bent de databaseback-up op AWS S3) op te slaan
Vink het selectievakje DatabaseAutomation aan en klik op "Gebruiker toevoegen aan groep":
Optioneel kunt u op de volgende pagina tags toewijzen. Ga anders gewoon door met het maken van de gebruiker. U zou de twee belangrijkste dingen moeten krijgen, toegangssleutel-ID en geheime toegangssleutel.
Download het CSV-bestand en bewaar het ergens veilig. We zijn nu klaar om de implementatie in de cloud te automatiseren.
Installeer ClusterControl op de betreffende server:
$ whoami
root
$ wget http://severalnines.com/downloads/cmon/install-cc
$ chmod 755 install-cc
$ ./install-cc
Volg de installatie-instructies en ga naar http://192.168.0.11/clustercontrol en maak de super admin-gebruiker en het wachtwoord aan.
Om ClusterControl in staat te stellen automatische implementatie in de cloud uit te voeren, moet men cloudreferenties maken voor de geselecteerde regio met een geldige AWS-sleutel-ID en geheim. Ga naar Zijbalk -> Integraties -> Cloudproviders -> Voeg uw eerste cloudreferentie toe -> Amazon Web Services en voer de vereiste gegevens in en kies Frankfurt als de standaardregio:
Deze referentie wordt door ClusterControl gebruikt om de implementatie en het beheer van het cluster te automatiseren. Op dit moment zijn we klaar om ons eerste cluster te implementeren.
Databaseclusterimplementatie
Ga naar Deploy -> Deploy in the Cloud -> MySQL Galera -> MariaDB 10.3 -> Cluster configureren om door te gaan naar de volgende pagina.
Zorg ervoor dat in het gedeelte Cluster configureren het aantal knooppunten 3 is en geef een clusternaam en een MySQL-rootwachtwoord op:
Kies onder Inloggegevens selecteren een inloggegevens met de naam "AWS Frankfurt" en ga naar de volgende pagina door op "Virtuele machine selecteren" te klikken. Kies het gewenste besturingssysteem en de instantiegrootte. Het wordt aanbevolen om onze infrastructuur in een privécloud te laten draaien, zodat we een speciaal intern IP-adres voor onze cloudinstanties kunnen krijgen en de hosts niet rechtstreeks worden blootgesteld aan het openbare netwerk. Klik op de knop "Nieuwe toevoegen" naast het veld Virtual Private Cloud (VPC) en geef een subnet van 10.10.0.0/16 aan dit netwerk:
De VPC die we hebben gemaakt, is een privécloud en heeft geen internetverbinding. Om ervoor te zorgen dat ClusterControl de hosts van buiten het AWS-netwerk kan implementeren en beheren, moeten we internetconnectiviteit met deze VPC toestaan. Om dit te doen, moeten we het volgende doen:
- Maak een internetgateway
- Externe routering toevoegen aan de routetabel
- Koppel het subnet aan de routetabel
Om een internetgateway aan te maken, logt u in op AWS Management Console -> VPC -> Internet Gateways -> Create internet gateway -> een naam toewijzen aan deze gateway . Selecteer vervolgens de aangemaakte gateway uit de lijst en ga naar Acties -> Attach to VPC -> selecteer de VPC voor de vervolgkeuzelijst -> Attach . We hebben nu een internetgateway aan de private cloud gekoppeld. We moeten het netwerk echter configureren om alle externe verzoeken via deze internetgateway door te sturen. Daarom moeten we een standaardroute toevoegen aan de routetabel. Ga naar VPC -> Routetabellen -> selecteer de routetabel -> Routes bewerken en specificeer het bestemmingsnetwerk, 0.0.0.0/0 en doel (de aangemaakte internetgateway-ID) zoals hieronder:
Vervolgens moeten we het DB-subnet aan dit netwerk koppelen, zodat het alle instanties die binnen dit netwerk zijn gemaakt, toewijst aan de standaardroute die we eerder hebben gemaakt, selecteer de routetabel -> Subnetkoppeling bewerken -> wijs het DB-subnet toe , zoals hieronder weergegeven:
De VPC is nu klaar om door ClusterControl te worden gebruikt voor de implementatie.
Eenmaal aangemaakt, selecteer je de aangemaakte VPC in de vervolgkeuzelijst. Voor SSH-sleutel vragen we ClusterControl om deze automatisch te genereren:
De gegenereerde SSH-sleutel bevindt zich in de ClusterControl-server onder de map /var/lib/cmon/autogenerated_ssh_keys/s9s/.
Klik op "Deployment Summary". Op deze pagina moeten we een subnet van de VPC toewijzen aan het databasecluster. Aangezien dit een nieuwe VPC is, heeft deze geen subnet en moeten we een nieuwe maken. Klik op de knop "Nieuw subnet toevoegen" en wijs 10.10.1.0/24 toe als het netwerk voor ons databasecluster:
Selecteer ten slotte het subnet maken in het tekstvak en klik op "Cluster implementeren":
U kunt de voortgang van de taak volgen onder Activiteit -> Vacatures -> Cluster maken . ClusterControl voert de noodzakelijke pre-installatiestappen uit, zoals het maken van de cloudinstanties, de beveiligingsgroep, het genereren van SSH-sleutels enzovoort, voordat de daadwerkelijke installatiestappen beginnen.
Zodra het cluster gereed is, zou u het volgende cluster in het ClusterControl-dashboard moeten zien:
Onze clusterimplementatie is nu voltooid.
Na implementatie van AWS-database
We kunnen beginnen met het laden van onze gegevens in het cluster of een nieuwe database maken voor uw toepassingsgebruik. Om verbinding te maken, geeft u uw toepassingen of clients de opdracht om verbinding te maken met het privé- of openbare IP-adres van een van de databaseservers. U kunt deze informatie krijgen door naar de pagina Nodes te gaan, zoals weergegeven in de volgende schermafbeelding:
Als u rechtstreeks toegang wilt krijgen tot de databaseknooppunten, kunt u de ClusterControl web-SSH-module gebruiken op Node Actions -> SSH Console , waarmee u een vergelijkbare ervaring krijgt als verbinding maken via een SSH-client.
Om het cluster op te schalen door een databaseknooppunt toe te voegen, gaat u gewoon naar Clusteracties (serverstackpictogram) -> Knooppunt toevoegen -> Een DB-knooppunt toevoegen aan een nieuwe cloudinstantie en u krijgt het volgende dialoogvenster te zien:
Volg gewoon de implementatiewizard en configureer uw nieuwe instantie dienovereenkomstig. Zodra de instantie is gemaakt, zal ClusterControl het knooppunt automatisch installeren, configureren en toevoegen aan het cluster.
Dat was het voor nu, mensen. Veel plezier met clusteren in de cloud!