In onze laatste blog hebben we het aanbod besproken dat beschikbaar is binnen Amazon Web Services (AWS) bij het uitvoeren van een MySQL Galera-cluster. In deze blog gaan we verder met de discussie door verder te kijken naar wat het aanbod is om dezelfde clustertechnologie te gebruiken, maar deze keer op het Google Cloud Platform (GCP).
GCP, als alternatief voor AWS, trekt voortdurend applicaties aan die geschikt zijn voor DevOps door ondersteuning te bieden voor een breed scala aan full-stack technologieën, gecontaineriseerde applicaties en grote productiedatabasesystemen. Google Cloud is een complete, beproefde omgeving die zijn eigen hardware-infrastructuur bij Google aandrijft voor producten als YouTube en Gmail.
GCP heeft aan populariteit gewonnen, grotendeels vanwege de steeds groter wordende lijst met mogelijkheden. Het biedt ondersteuning voor platforms zoals Visual Studio, Android Studio, Eclipse, Powershell en vele anderen. GCP heeft een van de grootste en meest geavanceerde computernetwerken en biedt toegang tot talloze tools waarmee u zich kunt concentreren op het bouwen van uw applicatie.
Een ander ding dat klanten aantrekt om Google Cloud te migreren, importeren of gebruiken, is hun sterke ondersteuning en oplossingen voor containerisatie. Kubernetes (GKE:Google Kubernetes Engine) is gebouwd op hun platform.
GCP heeft onlangs ook een nieuwe oplossing gelanceerd met de naam Anthos. Dit product is ontworpen om organisaties workloads te laten beheren met dezelfde interface op het Google Cloud Platform (GCP) of on-premises met GKE On-Prem, en zelfs op rivaliserende clouds zoals Amazon Web Services (AWS) of Azure.
Naast deze technologieën biedt GCP geavanceerde en krachtige, computer-geoptimaliseerde machinetypes zoals de C2-familie in GCE die is gebouwd op de nieuwste generatie Intel Scalable Processors (Cascade Lake).
GCP blijft ook open source ondersteunen, wat gebruikers ten goede komt door een goed ondersteund en een duidelijk kader te bieden dat het gemakkelijk maakt om een eindproduct op tijd te leveren. Ondanks deze ondersteuning van open source-technologie biedt GCP geen native ondersteuning voor de implementatie of configuratie van een MySQL Galera Cluster. In deze blog laten we u de enige beschikbare optie zien als u deze technologie wilt gebruiken, implementatie via een computerinstantie die u zelf moet beheren.
De Google Compute Engine (GCE)
GCE heeft een geavanceerde en krachtige set rekenknooppunten beschikbaar voor uw gebruik. In tegenstelling tot AWS heeft GCE het krachtigste rekenknooppunt op de markt (n1-ultramem-160 met 160 vCPU en 3,75 TB geheugen). GCE heeft onlangs ook een nieuw type rekeninstantiefamilie geïntroduceerd, genaamd C2-machinetype. Gebouwd op de nieuwste generatie Intel Scalable Processors (Cascade Lake), bieden C2-machinetypes tot 3,8 GHz aanhoudende all-core turbo en bieden ze volledige transparantie in de architectuur van de onderliggende serverplatforms; zodat u de uitvoering kunt verfijnen. C2-machinetypen bieden veel meer rekenkracht, draaien op een nieuwer platform en zijn over het algemeen robuuster voor rekenintensieve workloads dan de N1-machinetypen met hoge CPU. Het aanbod van de C2-familie is beperkt (op het moment van schrijven) en is niet in alle regio's en zones beschikbaar. C2 ondersteunt ook geen regionale persistente schijven, hoewel het een geweldige add-on zou zijn voor stateful databaseservices die redundantie en hoge beschikbaarheid vereisen. De bronnen van een C2-instantie zijn te veel voor een Galera-knooppunt, dus we zullen ons in plaats daarvan concentreren op de rekenknooppunten, die ideaal zijn.
GCE gebruikt ook KVM als software voor virtualisatietechnologie, terwijl Amazon Xen gebruikt. Laten we eens kijken naar de rekenknooppunten die beschikbaar zijn in GCE en die geschikt zijn om Galera naast zijn equivalentie in AWS EC2 te gebruiken. De prijzen verschillen per regio, maar voor deze grafiek gebruiken we de regio VS-oost met het prijstype op aanvraag voor AWS.
Machine-/instantietype
Google Compute Engine
AWS EC2
Gedeeld
f1-micro
G1-klein
Prijzen beginnen bij $ 0,006 - $ 0,019 per uur
t2.nano – t3.2xlarge'
Prijs begint bij $0,0058 - $0,3328 per uur
Standaard
n1-standard-1 – n1-standard-96
Prijzen beginnen bij $ 0,034 - $ 3,193 per uur
m4.large – m4.16xlarge
m5.groot – m5d.metaal
Prijzen beginnen bij $ 0,1 - $ 5,424 per uur
Hoog geheugen/geheugen geoptimaliseerd
n1-highmem-2 – n1-highmem-96
n1-megamem-96
n1-ultramem-40 – n1-ultramem-160
Prijzen beginnen bij $ 0,083 - $ 17,651 per uur
r4.large – r4.16xlarge
x1.16xgroot – x1.32xgroot
x1e.xlarge – x1e.32xlarge
Prijzen beginnen bij $ 0,133 - $ 26,688 per uur
Hoge CPU/opslag geoptimaliseerd
n1-highcpu-2 – n1-highcpu-32
Prijzen beginnen bij $ 0,05 - $ 2,383 per uur
h1.2xlarge – h1.16xlarge
i3.large – i3.metal
I3en.large - i3en.metal
d2.xlarge – d2.8xlarge
Prijzen beginnen bij $ 0,156 - $ 10,848 per uur
Prijzen (computerinstantie, schijf, vCPU, geheugen en netwerk)
De prijs hangt ook af van de regio waar het zich bevindt, het type besturingssysteem of licentie (RHEL versus Suse Linux Enterprise), en ook het type schijfopslag dat je gebruikt.
GCP biedt ook kortingen waarmee u kunt besparen op uw resourceverbruik. Voor Compute Engine biedt het verschillende kortingen.
kortingen voor duurzaam gebruik zijn van toepassing op de volgende bronnen:
-
De vCPU's en geheugen voor algemene aangepaste en vooraf gedefinieerde machinetypes
-
De vCPU's en geheugen voor voor geheugen geoptimaliseerde machinetypes
-
De vCPU's en geheugen voor computertypes die zijn geoptimaliseerd voor computers
-
De vCPU's en geheugen voor nodes met één huurder
-
De 10% premium kosten voor nodes met één huurder, zelfs als de vCPU's en het geheugen in die nodes worden gedekt door kortingen voor vastgelegd gebruik
-
GPU-apparaten1
Houd er rekening mee dat kortingen voor langdurig gebruik niet van toepassing zijn op VM's die zijn gemaakt met App Engine Flexible Environment en Cloud Dataflow.
U kunt ook gebruikmaken van kortingen voor vastgelegd gebruik wanneer u een VMS koopt die aan een contract is gebonden. Dit type keuze is ideaal voor voorspelbare workloads en resourcebehoeften. Wanneer u een contract voor vastgelegd gebruik aanschaft, koopt u een bepaald aantal vCPU's, geheugen, GPU's en lokale SSD's tegen een gereduceerde prijs in ruil voor het betalen voor die resources voor 1 jaar of 3 jaar. De korting is tot 57% voor de meeste bronnen, zoals machinetypes of GPU's. De korting is tot 70% voor geheugen-geoptimaliseerde machinetypes. Eenmaal gekocht, wordt u maandelijks gefactureerd voor de middelen die u hebt gekocht voor de duur van de door u geselecteerde termijn (of u de services nu gebruikt of niet).
Een verwijderbare VM is een instantie die u kunt maken en uitvoeren tegen een veel lagere prijs dan normale instanties. Compute Engine kan deze instanties echter beëindigen (preëmpen) als toegang tot die bronnen nodig is voor andere taken. Verwijderbare instanties gebruiken overtollige Compute Engine-capaciteit, dus hun beschikbaarheid varieert met het gebruik.
Als uw applicaties fouttolerant zijn en bestand zijn tegen mogelijke preëmptie van instanties, kunnen verwijderbare instanties uw Compute Engine-kosten aanzienlijk verlagen. Batchverwerkingstaken kunnen bijvoorbeeld worden uitgevoerd op verwijderbare instanties. Als sommige van die instanties tijdens de verwerking worden beëindigd, vertraagt de taak maar stopt niet volledig. Verwijderbare instanties voltooien uw batchverwerkingstaken zonder extra werklast op uw bestaande instanties te leggen en zonder dat u de volledige prijs hoeft te betalen voor extra normale instanties.
Voor Compute Engine worden schijfgrootte, machinetypegeheugen en netwerkgebruik berekend in gigabytes (GB), waarbij 1 GB 230 bytes is. Deze meeteenheid wordt ook wel gibibyte (GiB) genoemd. Dit betekent dat GCP u aanbiedt om alleen te betalen op basis van het resourceverbruik dat u hebt toegewezen.
Als je een hoogwaardige productiedatabase-applicatie hebt, is het aan te raden (en ideaal) om een aparte persistente schijf toe te voegen of toe te voegen. U zou die schijf dan als uw databasevolume gebruiken, omdat deze u betrouwbare en consistente schijfprestaties biedt in GCE. Hoe groter de grootte die u instelt, hoe hoger de IOPS die het u biedt. Bekijk hun lijst met prijzen voor persistente schijven om de prijs te bepalen die u zou krijgen. Daarnaast heeft GCE een regionale persistente schijf die geschikt is voor het geval u een meer solide en duurzame hoge beschikbaarheid binnen uw databasecluster nodig heeft. Regionale persistente schijf voegt meer redundantie toe in het geval dat uw exemplaar wordt beëindigd, crasht of beschadigd raakt. Het biedt synchrone replicatie van gegevens tussen twee zones in één regio, wat transparant gebeurt in de VM-instantie. In het onwaarschijnlijke geval van een zonestoring, kan uw workload een failover uitvoeren naar een andere VM-instantie in dezelfde of een secundaire zone. Vervolgens kunt u uw regionale persistente schijf geforceerd aan die instantie koppelen. Geforceerde bevestiging wordt geschat op minder dan een minuut.
Als u back-ups opslaat als onderdeel van uw noodhersteloplossing en een volume nodig heeft dat clusterbreed is, biedt GCP Cloud Filestore, NetApp Cloud Volumes en enkele andere alternatieve oplossingen voor het delen van bestanden. Dit zijn volledig beheerde services die standaard- en premiumservices bieden. U kunt hier de prijspagina van NetApp bekijken en de prijzen van Filestore hier.
Galera-codering op GCP
GCP biedt geen specifieke ondersteuning voor het type codering dat beschikbaar is voor Galera. GCP versleutelt echter standaard klantgegevens die in rust zijn opgeslagen, zonder dat u aanvullende actie hoeft te ondernemen. GCP biedt ook een andere optie om uw gegevens te versleutelen met door de klant beheerde versleutelingssleutels (CMEK) met Cloud KMS en met door de klant geleverde versleutelingssleutels (CSEK). GCP gebruikt ook SSL/TLS-codering voor alle communicatie die wordt onderschept als gegevens worden verplaatst tussen uw site en de cloudprovider of tussen twee services. Deze bescherming wordt bereikt door de gegevens vóór verzending te versleutelen; authenticatie van de eindpunten; en het decoderen en verifiëren van de gegevens bij aankomst.
Omdat Galera MySQL onder de motorkap gebruikt (Percona, MariaDB of Codership build), kunt u profiteren van de File Key Management Encryption Plugin van MariaDB of door de MySQL Keyring-plug-ins te gebruiken. Hier is een externe blog van Percona, een goede bron over hoe u dit kunt implementeren.
Galera Cluster Multi-AZ/Multi-Region/Multi-Cloud-implementaties met GCP
Net als AWS biedt GCP geen directe ondersteuning voor het implementeren van een Galera-cluster op een Multi-AZ/-Region/-Cloud.
Galera Cluster Hoge beschikbaarheid, schaalbaarheid en redundantie op GCP
Een van de belangrijkste redenen om een Galera-knooppuntcluster te gebruiken, is de hoge beschikbaarheid, redundantie en de schaalbaarheid. Als u wereldwijd verkeer bedient, kunt u uw verkeer het beste afstemmen op regio's met uw architectonisch ontwerp, inclusief een geodistributie van uw databaseknooppunten. Om dit te bereiken, is multi-AZ en multi-regio of multi-cloud/multi-datacenter implementatie aan te bevelen en haalbaar. Dit voorkomt dat het cluster uitvalt of een clusterstoring door gebrek aan quorum.
Om u meer te helpen met uw schaalbaarheidsontwerp, heeft GCP ook een autoscaler die u kunt instellen met een autoscaling-groep. Dit werkt zolang u uw cluster hebt gemaakt als beheerde instantiegroepen. U kunt bijvoorbeeld het CPU-gebruik controleren of vertrouwen op de metrische gegevens van Stackdriver die zijn gedefinieerd in uw beleid voor automatisch schalen. Hiermee kunt u instanties inrichten en automatiseren wanneer een bepaalde drempel wordt bereikt, of de instanties beëindigen wanneer deze teruggaat naar de normale status.
Voor multi-regio of multi-cloud implementatie heeft Galera zijn eigen parameter genaamd gmcast.segment waarvoor u deze kunt instellen bij het starten van de server. Deze parameter is ontworpen om de communicatie tussen de Galera-knooppunten te optimaliseren en de hoeveelheid verkeer tussen netwerksegmenten te minimaliseren. Dit omvat het doorgeven van schrijfsets en IST- en SST-donorselectie. Met dit type installatie kunt u meerdere knoop punten in verschillende regio's implementeren. Daarnaast kunt u uw Galera-nodes ook inzetten op een andere routering van cloudleveranciers dan GCP, AWS, Microsoft Azure of on-premise.
We raden u aan om onze blog te lezen Meerdere datacenterconfiguraties met Galera-cluster voor MySQL of MariaDB en netwerkmigratie zonder uitvaltijd met MySQL Galera-cluster met relaisknooppunt om meer informatie te verzamelen over het implementeren van dit soort implementaties.
Galera-clusterdatabaseprestaties op GCP
Aangezien er geen ondersteuning voor Galera beschikbaar is in GCP, zijn uw keuzes afhankelijk van de vereisten en het ontwerp van het verkeer en de vereisten van uw toepassing. Voor query's die veel geheugen verbruiken, kunt u beginnen met n1-highmem-2 instance. Hoge CPU-instanties (n1-highcpu*-familie) kunnen geschikt zijn als dit een database is met veel transacties, of geschikt zijn voor gametoepassingen.
Het kiezen van de juiste opslag en vereiste IOPS voor uw databasevolume is een must. Over het algemeen is een op SSD gebaseerde persistente schijf hier uw keuze. Het hangt af van de hoeveelheid verkeer die nodig is. Mogelijk moet u de GCP-opslagopties bekijken, zodat u de juiste grootte voor uw toepassing kunt bepalen.
We raden u ook aan om onze blog te lezen en de prestaties van Galera-cluster voor MySQL of MariaDB te verbeteren voor meer informatie over het optimaliseren van uw Galera-cluster.
Galera-gegevensback-ups op GCP
Niet alleen moet er een back-up worden gemaakt van uw MySQL Galera-gegevens, u moet ook een back-up maken van de hele laag die uw databasetoepassing omvat. Dit omvat logbestanden (logisch of binair), externe bestanden, tijdelijke bestanden, dumpbestanden, enz. Google raadt u aan altijd een momentopname te maken van de volumes van uw persistente schijven die worden gebruikt door uw GCE-instanties. U kunt eenvoudig snapshots maken en plannen. GCP-snapshots worden opgeslagen in Cloud Storage en u kunt de gewenste locatie of regio selecteren waar de back-up zich bevindt. U kunt ook een planning voor uw snapshots instellen en een bewaarbeleid voor snapshots instellen.
U kunt ook externe services gebruiken, zoals ClusterControl, dat u zowel monitoring- als back-upoplossingen biedt. Kijk hier eens naar als je meer wilt weten.
Galera Cluster Database Monitoring op GCP
GCP biedt geen databasecontrole bij gebruik van GCE. Het monitoren van uw instance gezondheid kan via Stackdriver. Voor de database moet u echter een externe monitoringtool gebruiken met geavanceerde, zeer gedetailleerde databasestatistieken. Er zijn veel keuzes waaruit u kunt kiezen, zoals PMM van Percona, DataDog, Idera, VividCortex of onze eigen ClusterControl (Monitoring is GRATIS bij ClusterControl Community.)
Galera-clusterdatabasebeveiliging op GCP
Zoals besproken in onze vorige blog, kun je dezelfde aanpak volgen voor het beveiligen van je database in de openbare cloud. In GCP kunt u een privésubnet en firewallregels instellen om alleen de poorten toe te staan die nodig zijn om Galera te laten draaien (met name poorten 3306, 4444, 4567, 4568). U kunt NAT Gateway gebruiken of een bastionhost instellen om toegang te krijgen tot uw privédatabaseknooppunten. Wanneer deze knooppunten zijn ingekapseld, zijn ze niet toegankelijk vanaf de buitenkant van het GCP-gebouw. U kunt in onze vorige blog Veilige multicloud MySQL-replicatie implementeren op AWS en GCP met VPN lezen over hoe we dit hebben ingesteld.
Bovendien kun je je data-in-transit beveiligen door een TLS/SSL-verbinding te gebruiken of door je data te versleutelen wanneer ze in rust zijn. Als u ClusterControl gebruikt, is het eenvoudig en gemakkelijk om een beveiligde gegevensoverdracht te implementeren. U kunt onze blog SSL-sleutelbeheer en versleuteling van MySQL-gegevens in transit bekijken als u het wilt uitproberen. Voor gegevens in rust kunt u de discussie volgen die ik eerder heb vermeld in het gedeelte Versleuteling van deze blog.
Problemen met Galera-cluster oplossen
GCP biedt Stackdriver Logging die u kunt gebruiken om u te helpen met vereisten voor observatie, monitoring en melding. Het mooie van Stackdriver Logging is dat het integratie met AWS biedt. Hiermee kunt u de gebeurtenissen selectief opvangen en vervolgens een waarschuwing geven op basis van die gebeurtenis. Dit kan u op de hoogte houden van bepaalde problemen die zich kunnen voordoen en u helpen bij het oplossen van problemen. GCP heeft ook Cloud Audit Logs die u meer traceerbare informatie bieden vanuit de GCP-omgeving, van beheerdersactiviteit, gegevenstoegang en systeemgebeurtenissen.
Als u ClusterControl gebruikt, gaat u naar Logboeken -> Systeemlogboeken en kunt u door de vastgelegde foutenlogboeken bladeren die zijn overgenomen van het MySQL Galera-knooppunt zelf. Afgezien hiervan biedt ClusterControl realtime monitoring die uw alarm- en meldingssysteem zou versterken in geval van nood of als uw MySQL Galera-knooppunt(en) kapot is.
Conclusie
Het Google Cloud Platform biedt een breed scala aan efficiënte en krachtige services die u kunt benutten. Er zijn inderdaad voor- en nadelen voor elk van de openbare cloudplatforms, maar GCP bewijst dat AWS geen slot op de cloud heeft.
Het is interessant dat grote bedrijven zoals Vimeo overstappen op GCP vanuit on-premise en dat ze een aantal interessante resultaten hebben ervaren in hun technologiestack. Ook Bloomberg is blij met GCP en gebruikt Percona XtraDB Cluster (een Galera-variant). Laat ons in de onderstaande opmerkingen weten wat u vindt van het gebruik van GCP voor MySQL Galera-configuraties.