In unserem letzten Blog haben wir die Angebote besprochen, die innerhalb von Amazon Web Services (AWS) verfügbar sind, wenn ein MySQL Galera-Cluster ausgeführt wird. In diesem Blog werden wir die Diskussion fortsetzen, indem wir uns genauer ansehen, was die Angebote für die Ausführung derselben Clustering-Technologie sind, diesmal jedoch auf der Google Cloud Platform (GCP).
GCP als Alternative zu AWS zieht kontinuierlich Anwendungen an, die für DevOps geeignet sind, indem sie Unterstützung für eine breite Palette von Full-Stack-Technologien, containerisierten Anwendungen und großen Produktionsdatenbanksystemen anbietet. Google Cloud ist eine ausgewachsene, kampferprobte Umgebung, die ihre eigene Hardware-Infrastruktur bei Google für Produkte wie YouTube und Gmail betreibt.
GCP hat vor allem aufgrund seiner ständig wachsenden Liste von Funktionen an Bedeutung gewonnen. Es bietet Unterstützung für Plattformen wie Visual Studio, Android Studio, Eclipse, Powershell und viele andere. Die GCP verfügt über eines der größten und fortschrittlichsten Computernetzwerke und bietet Zugriff auf zahlreiche Tools, mit denen Sie sich auf die Erstellung Ihrer Anwendung konzentrieren können.
Eine weitere Sache, die Kunden dazu verleitet, Google Cloud zu migrieren, zu importieren oder zu verwenden, ist ihre starke Unterstützung und Lösungen für die Containerisierung. Kubernetes (GKE:Google Kubernetes Engine) basiert auf ihrer Plattform.
GCP hat außerdem kürzlich eine neue Lösung namens Anthos eingeführt. Dieses Produkt wurde entwickelt, damit Organisationen Workloads über dieselbe Schnittstelle auf der Google Cloud Platform (GCP) oder lokal mit GKE On-Prem und sogar auf konkurrierenden Clouds wie Amazon Web Services (AWS) oder Azure verwalten können.
Zusätzlich zu diesen Technologien bietet GCP hochentwickelte und leistungsstarke, rechenoptimierte Maschinentypen wie die C2-Familie in GCE, die auf skalierbaren Intel-Prozessoren der neuesten Generation (Cascade Lake) basiert.
GCP unterstützt auch weiterhin Open Source, was Benutzern zugute kommt, da es ein gut unterstütztes und unkompliziertes Framework bereitstellt, das es einfach macht, ein Endprodukt zeitnah bereitzustellen. Trotz dieser Unterstützung von Open-Source-Technologie bietet GCP keine native Unterstützung für die Bereitstellung oder Konfiguration eines MySQL Galera-Clusters. In diesem Blog zeigen wir Ihnen die einzige Option, die Ihnen zur Verfügung steht, wenn Sie diese Technologie nutzen möchten, die Bereitstellung über eine Recheninstanz, die Sie selbst verwalten müssen.
Die Google Compute Engine (GCE)
GCE verfügt über eine ausgeklügelte und leistungsstarke Reihe von Rechenknoten, die Ihnen zur Verfügung stehen. Im Gegensatz zu AWS verfügt GCE über den leistungsstärksten Rechenknoten auf dem Markt (n1-ultramem-160 mit 160 vCPU und 3,75 TB Speicher). GCE hat außerdem erst kürzlich eine neue Art von Compute-Instance-Familie namens C2-Maschinentyp eingeführt. Basierend auf der neuesten Generation von Intel Scalable Processors (Cascade Lake), bieten C2-Maschinentypen einen anhaltenden All-Core-Turbo von bis zu 3,8 GHz und bieten volle Transparenz in die Architektur der zugrunde liegenden Serverplattformen; So können Sie die Leistung feinabstimmen. C2-Maschinentypen bieten viel mehr Rechenleistung, laufen auf einer neueren Plattform und sind im Allgemeinen robuster für rechenintensive Workloads als die N1-Maschinentypen mit hoher CPU-Leistung. Die Angebote der C2-Familie sind begrenzt (zum Zeitpunkt des Schreibens) und nicht in allen Regionen und Zonen verfügbar. C2 unterstützt auch keine regionalen persistenten Festplatten, obwohl es ein großartiges Add-on für zustandsbehaftete Datenbankdienste wäre, die Redundanz und Hochverfügbarkeit erfordern. Die Ressourcen einer C2-Instanz sind zu hoch für einen Galera-Knoten, daher konzentrieren wir uns stattdessen auf die Rechenknoten, die ideal sind.
GCE verwendet auch KVM als Software für seine Virtualisierungstechnologie, während Amazon Xen verwendet. Werfen wir einen Blick auf die in GCE verfügbaren Rechenknoten, die für den Betrieb von Galera neben seiner Entsprechung in AWS EC2 geeignet sind. Die Preise unterscheiden sich je nach Region, aber für dieses Diagramm verwenden wir die Region USA-Ost mit dem On-Demand-Preistyp für AWS.
Maschinen-/Instanztyp | Google Compute Engine | AWS EC2 |
Freigegeben | f1-micro G1-klein Die Preise beginnen bei 0,006 $ bis 0,019 $ pro Stunde | t2.nano – t3.2xlarge' Der Preis beginnt bei 0,0058 $ bis 0,3328 $ pro Stunde |
Standard | n1-standard-1 – n1-standard-96 Preise beginnen bei 0,034 $ bis 3,193 $ pro Stunde | m4.large – m4.16xlarge m5.large – m5d.metal Preise beginnen bei 0,1 $ bis 5.424 $ pro Stunde |
Hoher Arbeitsspeicher/Speicheroptimiert | n1-highmem-2 – n1-highmem-96 n1-megamem-96 n1-ultramem-40 – n1-ultramem-160 Preise beginnen bei 0,083 $ bis 17,651 $ pro Stunde | r4.large – r4.16xlarge x1.16xlarge – x1.32xlarge x1e.xlarge – x1e.32xlarge Preise beginnen bei 0,133 $ bis 26.688 $ pro Stunde |
Hohe CPU/Speicher optimiert | n1-highcpu-2 – n1-highcpu-32 Preise beginnen bei 0,05 $ bis 2,383 $ pro Stunde | h1.2xlarge – h1.16xlarge i3.large – i3.metal I3en.large - i3en.metal d2.xlarge – d2.8xlarge Preise beginnen bei 0,156 $ bis 10,848 $ pro Stunde |
Preise (Compute-Instanz, Festplatte, vCPU, Arbeitsspeicher und Netzwerk)
Der Preis hängt auch von der Region ab, in der es sich befindet, der Art des Betriebssystems oder der Lizenzierung (RHEL vs. Suse Linux Enterprise) und auch der Art des verwendeten Festplattenspeichers.
GCP bietet auch Rabatte, mit denen Sie Ihren Ressourcenverbrauch einsparen können. Für Compute Engine bietet es verschiedene Rabatte, die in Anspruch genommen werden können.
Rabatte für kontinuierliche Nutzung gelten für die folgenden Ressourcen:
-
Die vCPUs und der Arbeitsspeicher für benutzerdefinierte und vordefinierte Maschinentypen für allgemeine Zwecke
-
Die vCPUs und Speicher für speicheroptimierte Maschinentypen
-
Die vCPUs und Arbeitsspeicher für rechenoptimierte Maschinentypen
-
Die vCPUs und der Arbeitsspeicher für Einzelmandantenknoten
-
Die 10 % Premiumkosten für Einzelmandantenknoten, selbst wenn die vCPUs und der Arbeitsspeicher in diesen Knoten durch Rabatte für zugesicherte Nutzung abgedeckt sind
-
GPU-Geräte1
Beachten Sie, dass Rabatte für kontinuierliche Nutzung nicht für VMs gelten, die mit der flexiblen App Engine-Umgebung und Cloud Dataflow erstellt wurden.
Sie können Committed Use Discounts auch beim Kauf eines vertragsgebundenen VMS nutzen. Diese Art der Auswahl ist ideal für vorhersagbare Workloads und Ressourcenanforderungen. Wenn Sie einen Vertrag über zugesicherte Nutzung erwerben, erwerben Sie eine bestimmte Menge an vCPUs, Arbeitsspeicher, GPUs und lokalen SSDs zu einem reduzierten Preis im Gegenzug für die Verpflichtung, diese Ressourcen für 1 Jahr oder 3 Jahre zu bezahlen. Der Rabatt beträgt bis zu 57 % für die meisten Ressourcen wie Maschinentypen oder GPUs. Der Rabatt beträgt bis zu 70 % für speicheroptimierte Maschinentypen. Nach dem Kauf werden Ihnen die erworbenen Ressourcen für die Dauer der von Ihnen gewählten Laufzeit monatlich in Rechnung gestellt (unabhängig davon, ob Sie die Dienste nutzen oder nicht).
Eine präemptive VM ist eine Instanz, die Sie zu einem viel niedrigeren Preis als normale Instanzen erstellen und ausführen können. Compute Engine kann diese Instanzen jedoch beenden (preemptiv), wenn es für andere Aufgaben Zugriff auf diese Ressourcen benötigt. Präemptive Instanzen verwenden überschüssige Compute Engine-Kapazität, sodass ihre Verfügbarkeit je nach Nutzung variiert.
Wenn Ihre Anwendungen fehlertolerant sind und möglichen Instanz-Präemptionen standhalten können, können präemptive Instanzen Ihre Compute Engine-Kosten erheblich senken. Batch-Verarbeitungsjobs können beispielsweise auf präemptiven Instanzen ausgeführt werden. Wenn einige dieser Instanzen während der Verarbeitung beendet werden, verlangsamt sich der Job, wird aber nicht vollständig angehalten. Präemptive Instanzen erledigen Ihre Stapelverarbeitungsaufgaben, ohne Ihre vorhandenen Instanzen zusätzlich zu belasten und ohne dass Sie den vollen Preis für zusätzliche normale Instanzen bezahlen müssen.
Für Compute Engine werden Festplattengröße, Arbeitsspeicher des Maschinentyps und Netzwerknutzung in Gigabyte (GB) berechnet, wobei 1 GB 230 Byte entspricht. Diese Maßeinheit wird auch als Gibibyte (GiB) bezeichnet. Das bedeutet, dass GCP Ihnen anbietet, nur basierend auf dem von Ihnen zugewiesenen Ressourcenverbrauch zu bezahlen.
Nun, wenn Sie eine hochwertige Produktionsdatenbankanwendung haben, ist es empfehlenswert (und ideal), eine separate persistente Festplatte anzuhängen oder hinzuzufügen. Sie würden diesen Datenträger dann als Ihr Datenbankvolume verwenden, da er Ihnen eine zuverlässige und konsistente Datenträgerleistung in GCE bietet. Je höher die Größe, die Sie einrichten, desto höher sind die IOPS, die es Ihnen bietet. Sehen Sie sich die Liste der Preise für persistente Festplatten an, um den Preis zu ermitteln, den Sie erhalten würden. Darüber hinaus verfügt GCE über eine regionale persistente Festplatte, die geeignet ist, falls Sie eine solidere und nachhaltigere Hochverfügbarkeit in Ihrem Datenbankcluster benötigen. Regionaler nichtflüchtiger Speicher fügt mehr Redundanz hinzu, falls Ihre Instanz beendet wird, abstürzt oder beschädigt wird. Es bietet eine synchrone Replikation von Daten zwischen zwei Zonen in einer Region, die transparent in der VM-Instanz erfolgt. Im unwahrscheinlichen Fall eines Zonenausfalls kann Ihre Arbeitslast auf eine andere VM-Instanz in derselben oder einer sekundären Zone umgeleitet werden. Sie können dann Ihren regionalen nichtflüchtigen Speicher zwangsweise an diese Instanz anfügen. Die Force-Attach-Zeit wird auf weniger als eine Minute geschätzt.
Wenn Sie Sicherungen als Teil Ihrer Notfallwiederherstellungslösung speichern und ein clusterweites Volume benötigen, bietet GCP Cloud Filestore, NetApp Cloud Volumes und einige andere alternative Dateifreigabelösungen. Hierbei handelt es sich um vollständig verwaltete Dienste, die Standard- und Premium-Dienste bieten. Sie können die Preisseite von NetApp hier und die Preise von Filestore hier einsehen.
Galera-Verschlüsselung auf GCP
GCP bietet keine spezifische Unterstützung für den für Galera verfügbaren Verschlüsselungstyp. Die GCP verschlüsselt jedoch standardmäßig gespeicherte Kundendaten, ohne dass Sie etwas unternehmen müssen. GCP bietet auch eine weitere Option zum Verschlüsseln Ihrer Daten mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) mit Cloud KMS sowie mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (CSEK). GCP verwendet auch SSL/TLS-Verschlüsselung für alle Kommunikationen, die abgefangen werden, wenn Daten zwischen Ihrer Website und dem Cloud-Anbieter oder zwischen zwei Diensten übertragen werden. Dieser Schutz wird erreicht, indem die Daten vor der Übertragung verschlüsselt werden; Authentifizieren der Endpunkte; und Entschlüsseln und Verifizieren der Daten bei der Ankunft.
Da Galera MySQL im Hintergrund verwendet (Percona, MariaDB oder Codership-Build), können Sie das File Key Management Encryption Plugin von MariaDB oder die MySQL Keyring-Plugins nutzen. Hier ist ein externer Blog von Percona, der eine gute Quelle dafür ist, wie Sie dies implementieren können.
Galera Cluster Multi-AZ/Multi-Region/Multi-Cloud-Bereitstellungen mit GCP
Ähnlich wie AWS bietet GCP keine direkte Unterstützung für die Bereitstellung eines Galera-Clusters in einer Multi-AZ/-Region/-Cloud.
Hochverfügbarkeit, Skalierbarkeit und Redundanz des Galera-Clusters auf der GCP
Einer der Hauptgründe für die Verwendung eines Galera-Knotenclusters ist die Hochverfügbarkeit, Redundanz und Skalierbarkeit. Wenn Sie Datenverkehr global bereitstellen, ist es am besten, Ihren Datenverkehr basierend auf Regionen mit Ihrem Architekturdesign bereitzustellen, einschließlich einer Geoverteilung Ihrer Datenbankknoten. Um dies zu erreichen, ist eine Multi-AZ- und Multi-Region- oder Multi-Cloud-/Multi-Rechenzentrum-Bereitstellung empfehlenswert und realisierbar. Dadurch wird ein Ausfall des Clusters oder eine Fehlfunktion des Clusters aufgrund eines fehlenden Quorums verhindert.
Um Sie bei Ihrem Skalierbarkeitsdesign besser zu unterstützen, bietet die GCP auch einen Autoscaler, den Sie mit einer Autoscaling-Gruppe einrichten können. Dies funktioniert, solange Sie Ihren Cluster als verwaltete Instanzgruppen erstellt haben. Sie können beispielsweise die CPU-Auslastung überwachen oder sich auf die Messwerte von Stackdriver verlassen, die in Ihrer Autoscaling-Richtlinie definiert sind. Auf diese Weise können Sie Instanzen bereitstellen und automatisieren, wenn ein bestimmter Schwellenwert erreicht ist, oder die Instanzen beenden, wenn sie in ihren normalen Zustand zurückkehren.
Für die Bereitstellung in mehreren Regionen oder in mehreren Clouds hat Galera einen eigenen Parameter namens gmcast.segment, für den Sie dies beim Serverstart festlegen können. Dieser Parameter wurde entwickelt, um die Kommunikation zwischen den Galera-Knoten zu optimieren und die Menge des zwischen den Netzwerksegmenten gesendeten Datenverkehrs zu minimieren. Dazu gehören Writeset-Relaying und IST- und SST-Spenderauswahl. Mit dieser Art der Einrichtung können Sie mehrere Knoten in verschiedenen Regionen bereitstellen. Abgesehen davon können Sie Ihre Galera-Knoten auch auf einem anderen Cloud-Anbieter-Routing von GCP, AWS, Microsoft Azure oder lokal bereitstellen.
Wir empfehlen Ihnen, unseren Blog Multiple Data Center Setups Using Galera Cluster for MySQL or MariaDB and Zero Downtime Network Migration With MySQL Galera Cluster Using Relay Node zu lesen, um weitere Informationen zur Implementierung dieser Arten von zu sammeln Bereitstellungen.
Galera-Cluster-Datenbankleistung auf GCP
Da es keine verfügbare Unterstützung für Galera in GCP gibt, hängen Ihre Entscheidungen von den Anforderungen und dem Design des Datenverkehrs und der Ressourcenanforderungen Ihrer Anwendung ab. Für Abfragen mit hohem Speicherverbrauch können Sie mit der n1-highmem-2-Instanz beginnen. Instanzen mit hoher CPU-Leistung (n1-highcpu*-Familie) können gut geeignet sein, wenn es sich um eine Datenbank mit vielen Transaktionen oder um Gaming-Anwendungen handelt.
Die Auswahl des richtigen Speichers und der erforderlichen IOPS für Ihr Datenbankvolumen ist ein Muss. Im Allgemeinen ist hier eine SSD-basierte persistente Festplatte Ihre Wahl. Dies hängt vom erforderlichen Datenverkehrsvolumen ab. Möglicherweise müssen Sie die GCP-Speicheroptionen prüfen, damit Sie die richtige Größe für Ihre Anwendung ermitteln können.
Wir empfehlen Ihnen auch, unseren Blog How to Improve Performance of Galera Cluster for MySQL or MariaDB zu lesen und zu lesen, um mehr über die Optimierung Ihres Galera-Clusters zu erfahren.
Galera-Datensicherungen auf GCP
Nicht nur Ihre MySQL Galera-Daten müssen gesichert werden, Sie sollten auch die gesamte Ebene sichern, die Ihre Datenbankanwendung umfasst. Dazu gehören Protokolldateien (logisch oder binär), externe Dateien, temporäre Dateien, Dump-Dateien usw. Google empfiehlt, dass Sie immer einen Snapshot Ihrer persistenten Festplattenvolumes erstellen, die von Ihren GCE-Instanzen verwendet werden. Sie können ganz einfach Snapshots erstellen und planen. GCP-Snapshots werden in Cloud Storage gespeichert und Sie können den gewünschten Standort oder die Region auswählen, in der sich die Sicherung befinden soll. Sie können auch einen Zeitplan für Ihre Snapshots einrichten sowie eine Snapshot-Aufbewahrungsrichtlinie festlegen.
Sie können auch externe Dienste wie ClusterControl verwenden, das Ihnen sowohl Überwachungs- als auch Sicherungslösungen bietet. Sehen Sie sich das an, wenn Sie mehr wissen möchten.
Überwachung der Galera-Clusterdatenbank auf der GCP
GCP bietet keine Datenbanküberwachung bei Verwendung von GCE. Die Überwachung des Zustands Ihrer Instanz kann über Stackdriver erfolgen. Für die Datenbank müssen Sie sich jedoch ein externes Überwachungstool besorgen, das über erweiterte, hochgranulare Datenbankmetriken verfügt. Es gibt viele Möglichkeiten, aus denen Sie wählen können, z. B. PMM von Percona, DataDog, Idera, VividCortex oder unser eigenes ClusterControl (Überwachung ist KOSTENLOS mit der ClusterControl Community.)
Galera-Cluster-Datenbanksicherheit auf GCP
Wie in unserem vorherigen Blog besprochen, können Sie den gleichen Ansatz zum Sichern Ihrer Datenbank in der Public Cloud wählen. In GCP können Sie ein privates Subnetz und Firewall-Regeln einrichten, um nur die Ports zuzulassen, die zum Ausführen von Galera erforderlich sind (insbesondere die Ports 3306, 4444, 4567, 4568). Sie können NAT Gateway verwenden oder einen Bastion-Host einrichten, um auf Ihre privaten Datenbankknoten zuzugreifen. Wenn diese Knoten gekapselt sind, kann von außerhalb der GCP-Räumlichkeiten nicht auf sie zugegriffen werden. Wie wir dies einrichten, können Sie in unserem vorherigen Blog Deploying Secure Multicloud MySQL Replication on AWS and GCP with VPN lesen.
Darüber hinaus können Sie Ihre Daten während der Übertragung sichern, indem Sie eine TLS/SSL-Verbindung verwenden oder Ihre Daten im Ruhezustand verschlüsseln. Wenn Sie ClusterControl verwenden, ist die Bereitstellung sicherer Daten während der Übertragung einfach und unkompliziert. Sie können unseren Blog SSL-Schlüsselverwaltung und Verschlüsselung von MySQL-Daten während der Übertragung lesen, wenn Sie es ausprobieren möchten. Für ruhende Daten können Sie der Diskussion folgen, die ich zuvor im Abschnitt Verschlüsselung dieses Blogs angegeben habe.
Galera-Cluster-Fehlerbehebung
GCP bietet Stackdriver Logging, das Sie nutzen können, um Sie bei Beobachtbarkeits-, Überwachungs- und Benachrichtigungsanforderungen zu unterstützen. Das Tolle an Stackdriver Logging ist, dass es eine Integration mit AWS bietet. Damit können Sie die Ereignisse selektiv abfangen und dann basierend auf diesem Ereignis einen Alarm auslösen. Dies kann Sie über bestimmte Probleme, die auftreten können, auf dem Laufenden halten und Ihnen bei der Fehlerbehebung helfen. Die GCP verfügt auch über Cloud-Audit-Logs, die Ihnen nachvollziehbarere Informationen aus der GCP-Umgebung, von Administratoraktivitäten, Datenzugriff und Systemereignissen liefern.
Wenn Sie ClusterControl verwenden, gehen Sie zu Protokolle -> Systemprotokolle, und Sie können die erfassten Fehlerprotokolle durchsuchen, die vom MySQL Galera-Knoten selbst stammen. Abgesehen davon bietet ClusterControl eine Echtzeit-Überwachung, die Ihr Alarm- und Benachrichtigungssystem im Notfall verstärkt oder wenn Ihre MySQL Galera-Knoten kaputt gehen.
Fazit
Die Google Cloud-Plattform bietet eine große Auswahl an effizienten und leistungsstarken Diensten, die Sie nutzen können. Es gibt in der Tat Vor- und Nachteile für jede der öffentlichen Cloud-Plattformen, aber GCP beweist, dass AWS keine Sperre auf die Cloud hat.
Es ist interessant, dass große Unternehmen wie Vimeo von On-Premise auf die GCP umsteigen und einige interessante Ergebnisse in ihrem Technologie-Stack erzielt haben. Auch Bloomberg ist mit GCP zufrieden und verwendet Percona XtraDB Cluster (eine Galera-Variante). Teilen Sie uns in den Kommentaren unten Ihre Meinung zur Verwendung von GCP für MySQL Galera-Setups mit.