sql >> Database >  >> RDS >> MariaDB

Galera Cluster Cloud-aanbiedingen vergelijken:deel twee Google Cloud Platform (GCP)

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

GCE heeft een kleiner aantal beschikbare vooraf gedefinieerde typen rekenknooppunten om uit te kiezen, in tegenstelling tot AWS. Als het echter gaat om het type knooppunt, is het gedetailleerder. Dit maakt het gemakkelijker om in te stellen en te kiezen wat voor soort instantie u wilt gebruiken. U kunt bijvoorbeeld een schijf toevoegen en de fysieke blokgrootte (4 is standaard) instellen op 16 of u kunt de modus zowel lezen/schrijven als alleen-lezen instellen. Hierdoor kunt u het juiste type machine of rekeninstance aanbieden om uw Galera-node te beheren. U kunt uw rekenknooppunten ook instantiëren met Cloud SDK, of met behulp van Cloud API's, om deze te automatiseren of te integreren in uw continue integratie, levering of implementatie (CI/CD).

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.


  1. Hoe een opgeslagen procedure aanroepen in een orakelpakket met Entity Framework?

  2. Is een view sneller dan een simpele query?

  3. Hoe u de huidige weekgegevens in MySQL kunt krijgen

  4. Hoe Sinh() werkt in PostgreSQL