Selbstverwaltetes MySQL im Vergleich zu Cloud SQL for MySQL

MySQL ist eine der beliebtesten relationalen Open-Source-Datenbanken. Ein Grund für ihre Beliebtheit ist die Fähigkeit, die Datenbank auf verschiedene Arten zu hosten und zu verwalten, die den Arbeitslastanforderungen eines Nutzers entsprechen. Nutzer können festlegen, ob die Datenbank lokal, in virtuellen Maschinen in der Cloud selbst verwaltet wird oder ob das vollständig verwaltete Angebot eines Cloud-Anbieters verwendet wird. In diesem Artikel geht es um die selbstverwaltete MySQL-Option und die vollständig verwaltete Lösung Cloud SQL for MySQL von Google Cloud. Die Vor- und Nachteile der einzelnen Optionen werden erläutert.

Selbstverwaltetes MySQL

Bei der selbstverwalteten MySQL-Option ist der Nutzer in den meisten Fällen für einen Großteil der Aktivitäten verantwortlich, die mit der Einrichtung, Installation, Konfiguration und Wartung der Datenbank verbunden sind. Auch Arbeiten am Betriebssystem, Netzwerken, Speicher, VM-Instanz und an der Hardware, auf der die Datenbankinstanz und der Server gehostet werden, gehören dazu. Einige dieser Aufgaben wie Hardware-, VM-Instanz-, Speicher-, Netzwerk- und Betriebssystemaufgaben können mithilfe eines Cloud-Dienstanbieters wie Google Cloud einfacher ausgeführt werden. Unabhängig davon, ob ein Nutzer eine Datenbank lokal oder in der Cloud selbst verwaltet, ist er für einige wichtige Datenbankverwaltungsaufgaben verantwortlich, die für einen reibungslosen Systembetrieb erforderlich sind. Diese Aufgaben sind unten aufgeführt.

  • Verfügbarkeit: Hardware- und Softwarekomponenten schlagen immer einmal fehl. Die Verantwortung dafür, das System so zu entwerfen, dass es gegenüber Hardware- und Softwarefehlern tolerant ist, und die Datenbank, der Server und die Anwendung kontinuierlich zur Verfügung stehen, liegt beim Nutzer.  
  • Datenbankwartung: Bei der selbstverwalteten MySQL-Option müssen Nutzer die verschiedenen Ebenen des Anwendungsstacks mit den neuesten Softwareversionen aktualisieren, Entscheidungen über den End-of-Life-Support treffen, über nicht unterstützte oder Legacy-Versionen der Hardware, des Betriebssystems und anderer Software. Darüber hinaus müssen Nutzer regelmäßig Software-, Betriebssystem- und MySQL-Patches installieren können, ohne dass es zu Unterbrechungen der Datenbank kommt.
  • Skalierbarkeit: Wenn die Anwendungsnutzung mit der Zeit zunimmt, steigt auch die Notwendigkeit einer verbesserten Datenbankleistung. Ebenso müssen Hardwareressourcen für die Unterstützung einer großen Arbeitslast oder eines zunehmenden Kundenstamms vertikal oder horizontal skaliert werden. Für das selbstverwaltete MySQL ist der jeweilige Nutzer verantwortlich. Die Skalierung von Hardwareressourcen in einer lokalen Umgebung ist eine sehr zeitaufwendige und komplexe Aktivität, die mitunter zu Systemausfällen führt.
  • Sicherheit: In jüngster Zeit ist Sicherheit der wichtigste Aspekt, der sich über mehrere Ebenen des Datenbanksystems erstreckt, angefangen bei der physischen Sicherung der Hardware. zum Konfigurieren von Netzwerk-Firewalls, Sichern von Datenbankverbindungen und mehr. Dies sind komplexe Aktivitäten, die viel Aufwand und Fachwissen im Fall der selbstverwalteten Einrichtung erfordern.
  • Monitoring: Abgesehen von der Einrichtung, Installation und Konfiguration von MySQL müssen sich Nutzer auch mit dem Monitoring verschiedener Komponenten in allen Schichten des Stacks, z. B. Monitoring auf Hardwareebene, Betriebssystem und MySQL beschäftigen sowie Korrekturmaßnahmen bei Fehlern ausführen.

Das folgende Diagramm zeigt die Verantwortung des Nutzers im Falle der Option der selbstverwalteten Einrichtung. Obwohl die Selbstverwaltung in Google Cloud einige Aufgaben im Zusammenhang mit Hardware, Computing, Netzwerken und Speicher verringert, sind die Aufgaben für die Verwaltung der verbleibenden Ebenen des Stacks weiterhin vom Nutzer zu erfüllen. Der Datenbankadministrator und der Anwendungsentwickler müssen genügend Zeit, Energie und Ressourcen in die Verwaltung von MySQL investieren.

Grafik zu allen Verantwortlichkeiten eines Datenbankadministrators bei einem selbstverwalteten Datenbankhosting

Was ist Cloud SQL for MySQL?

Cloud SQL ist ein vollständig verwalteter Datenbankdienst, der eine einfache Konfiguration, Wartung, Verwaltung und Administration von MySQL-, PostgreSQL- und SQL Server-Datenbanken in Google Cloud bietet. Cloud SQL verwaltet alle Aspekte von Hardware, Netzwerken, Betriebssystem, Sicherheit, Monitoring, Wartung, Verfügbarkeit und Skalierung der MySQL-Datenbank. All diese Verantwortlichkeiten sind für die Nutzer nicht erkennbar, sodass sie sich auf die Anwendungsentwicklung und die Bereitstellung von Mehrwert für ihre Kunden konzentrieren können.

Das Diagramm unten ähnelt dem Diagramm oben, in dem die Aufgaben für die Verwaltung der verschiedenen Ebenen der MySQL-Datenbank dargestellt sind. Der einzige Unterschied besteht darin, dass alle Aufgaben, die Cloud SQL im Namen des Nutzers verwaltet, blau dargestellt sind.

Grafik zu vollständig verwaltetem Datenbankhosting

Abgesehen von der Verwaltung der vielen oben beschriebenen Aufgaben bietet Cloud SQL weitere Features und Lösungen, die in einer selbstverwalteten Umgebung nicht nativ verfügbar sind. Einige der wichtigsten Features von Cloud SQL sind unten aufgeführt.

Zuverlässigkeit: Die Sicherung und Wiederherstellung sind die wichtigsten Aktivitäten innerhalb der Datenbankverwaltung. Cloud SQL bietet automatische Sicherungen und On-Demand-Sicherungen, mit denen die Datenbank bei Beschädigungen, Katastrophen oder unbeabsichtigten Datenänderungen zu einem bestimmten Zeitpunkt in der Vergangenheit wiederhergestellt werden kann. 

Verfügbarkeit: Cloud SQL bietet Hochverfügbarkeit, da mehrere Server mit automatisierter Failover-Funktion instanziiert werden und die Datenbank über mehrere Zonen hosten. So wird Hochverfügbarkeit beim Ausfall einer VM oder eines Rechenzentrums hergestellt. Cloud SQL gewährleistet eine Verfügbarkeit von über 99,95 % und zwar weltweit.

Neben dem Hochverfügbarkeitsfeature bietet Cloud SQL ein rund um die Uhr verfügbares SRE-Team (Site Reliability Engineering), das für die Zuverlässigkeit der Cloud SQL for MySQL-Datenbankinstanzen in Google Cloud verantwortlich ist.

Regionenübergreifende Lesereplikate sind ein weiteres Feature, das im Falle eines Fehlers als Mechanismus zur Notfallwiederherstellung verwendet werden kann. Nutzer können die betroffene Datenbank schnell und mit minimaler Auswirkung auf das Unternehmen in einem anderen Standort (Region) aufrufen. 

Skalierbarkeit: Cloud SQL bietet die Erstellung von MySQL-Lesereplikaten, z. B. schreibgeschützte MySQL-Instanzen in derselben Region oder in Remote-Regionen, die die Verarbeitung von Anfragen von den Replikaten sowie von der primären Instanz ermöglichen und somit eine bessere Leseleistung bieten. Lesereplikate können auch für die Berichterstellung verwendet und nach Erfüllung der geschäftlichen Anforderungen gelöscht werden.

Mit Cloud SQL können Sie Ressourcen (CPU, Arbeitsspeicher und Speicher) hochskalieren und die Ressourcen auf der MySQL-Instanz mit minimaler Ausfallzeit herunterskalieren. Bei einer selbstverwalteten Einrichtung sind diese komplizierten Aktivitäten mit erheblichem Aufwand, Fachwissen und Planung verbunden. 

Sicherheit: Cloud SQL for MySQL-Datenbankserver befinden sich in gesicherten Google Cloud-Rechenzentren. So wird höchste Sicherheit geboten. Darüber hinaus bietet Google Cloud private Verbindungen mit Virtual Private Cloud und nutzergesteuerten Netzwerkzugriff mit Firewallschutz, sodass Nutzerdatenbankserver außerhalb der Reichweite böswilliger Akteure bleiben.

Ein weiterer Aspekt der Sicherheit ist die Einhaltung von Sicherheitsvorschriften. Cloud SQL erfüllt viele anerkannte Vorschriften wie SSAE 16, ISO 27001, PCI DSS und HIPAA. 

Cloud SQL bietet die Möglichkeit, Nutzer und deren Zugriff auf die Datenbank über die IAM-Integration zu verwalten. Diese Integration verwaltet die Autorisierung und Authentifizierung für Nutzer von Google Cloud und bietet einen detaillierten Zugriff auf bestimmte Google Cloud-Ressourcen, wodurch nicht autorisierter Zugriff auf die Datenbank verhindert wird. Außerdem erleichtert Cloud SQL die Identitäts- und Zugriffssteuerung durch vordefinierte Rollen zur Steuerung des Zugriffs auf Ihre Cloud SQL-Ressourcen.  

Ein weiteres Sicherheitsfeature von Cloud SQL ist die Verschlüsselung von ruhenden Daten und Daten während der Übertragung, damit kein unbefugter Nutzer auf Nutzerdaten zugreifen kann.

Cloud SQL bietet eine Funktion zur Passwortüberprüfung für Datenbanknutzer, mit der Kunden eine Passwortrichtlinie für die Komplexität von Passwörtern definieren können, sowie Mindestlänge und Passwortänderungsintervall und Verwendung des Benutzernamens im Passwort auf Instanzebene. Kunden können auch Richtlinien für die Ablaufzeit von Passwörtern, die Anzahl fehlgeschlagener Versuche und die Anforderungen an alte Passwörter ändern. Diese Features in Cloud SQL bieten Best Practices für die Sicherheit und reduzieren das Risiko nicht autorisierter Zugriffe auf kritische Daten.

Cloud SQL bietet außerdem die Möglichkeit, mit einem Audit-Log-Plug-in Aktionen und Vorgänge in der MySQL-Datenbank zu prüfen. Audit-Logs geben Aufschluss darüber, wer welche Aktion an welchem Objekt vorgenommen hat. Mit der Datenbankprüfung können Sie bestimmte Nutzeraktionen in der Datenbank verfolgen, z. B. Tabellenaktualisierungen, Leseabfragen, Berechtigungen für Nutzerberechtigungen usw.

Beobachtbarkeit: Cloud SQL bietet verschiedene Monitoring-Lösungen und eine zunehmende Liste vordefinierter Messwerte, die Informationen zum Status der Datenbank bereitstellen. Nutzer können mithilfe der Messwerte Benachrichtigungen erstellen, um Administratoren über den Zustand der Datenbank zu informieren.

Cloud SQL bietet auch Features wie Abfragestatistiken und Empfehlungen, mit denen Nutzer Fehler beheben und Leistungsengpässe einer Abfrage oder Arbeitslast erkennen können. In einer selbstverwalteten MySQL-Umgebung ist es schwierig, diese Features zu replizieren.

Einbindung: Cloud SQL bietet eine einfache Netzwerkverbindung und Einbindung in andere Dienste in Google Cloud, z. B. Google Kubernetes Engine, Compute Engine und Cloud Run, die die Entwicklung tief integrierter Lösungen erleichtern. Cloud SQL bietet außerdem native Einbindung in BigQuery und Looker, die für die analytische Verarbeitung der Daten verwendet werden können, die in Cloud SQL vorhanden sind.

Patching: Als verwalteter Dienst aktualisiert Cloud SQL die Instanzen automatisch, damit die zugrunde liegende Hardware und das Betriebssystem funktionieren und zuverlässig, leistungsfähig, sicher und aktuell sind. Die meisten dieser Aktualisierungen werden durchgeführt, während Ihre Cloud SQL-Instanz ausgeführt wird. Bestimmte Systemupdates erfordern jedoch möglicherweise eine kurze Dienstunterbrechung, für die Nutzer Wartungsfenster für die Upgradeaktivität definieren können. 

Versionsupgrades: Cloud SQL bietet auch einen automatisierten Prozess des Upgrades. (MySQL-Version). Nutzer können auch ein Upgrade für die Hauptversion durchführen, indem sie die Daten auf eine Instanz einer höheren Version migrieren.  

MySQL-Datenbankinstanz in Cloud SQL for MySQL erstellen

Vor- und Nachteile von selbstverwaltetem MySQL

Vorteile

  1. Möglichkeit, eine beliebige MySQL-Fork aus der MySQL-Umgebung wie MariaDB oder Percona zum Einrichten von MySQL zu verwenden.
  2. Flexibilität bei der Konfiguration und Einrichtung von MySQL, da Nutzer die vollständige Kontrolle über Instanz, Ressourcen und Betriebssystem haben. Darüber hinaus können Nutzer das Betriebssystem ihrer Wahl verwenden, das Betriebssystem nach Belieben konfigurieren und MySQL nach Bedarf an ihre Anforderungen konfigurieren.
  3. Für Nutzer gelten keine Einschränkungen von Cloud SQL, wie beispielsweise die maximale Speichergröße von 64 TB. Nutzer können das Speicherlimit von 64 TB überschreiten und eine viel höhere Recheninfrastruktur zum Hosten von MySQL verwenden.
  4. Nutzer haben vollständigen Zugriff auf die MySQL-Instanz, einschließlich SUPER-Berechtigungen, sowie vollständigen Zugriff auf das Betriebssystem, einschließlich sudo-Berechtigungen.
  5. Nutzer können Hochverfügbarkeits- und Replikationstopologien entsprechend ihren Anforderungen einrichten, auch wenn sie in Cloud SQL nicht unterstützt werden.

Nachteile

  1. Nutzer sind für die Verwaltung komplexer Hardwareinfrastruktur-, Netzwerk- und Rechenzentrumsvorgänge in einer lokalen Umgebung verantwortlich. Auch bei der Selbstverwaltung von MySQL in der Cloud müssen Nutzer sich mit der Komplexität der Einrichtung, der Konfiguration von nichtflüchtigen Speichern und Instanzen sowie dem Design und der Verwaltung von Hochverfügbarkeitsclustern befassen. Auch die Sicherheit, Notfallwiederherstellung und Skalierbarkeit gehören zu ihrem Aufgabengebiet.
  2. Wenn Sie Datenbankversionen, Betriebssystemversionen und Hardwaresysteme mit den neuesten Patches auf dem neuesten Stand halten, vermeiden Sie Programmfehler und Sicherheitslücken, was zu erheblichen Kosten, Ressourcen, Komplexität und Ausfallzeiten führen kann.
  3. Neben der Einrichtung der Datenbank müssen Nutzer die Sicherheit auf allen Ebenen konfigurieren und verwalten, nicht nur in der Datenbank selbst. So müssen z. B. dafür sorgen, dass Verbindungen bei der Übertragung mit SSL verschlüsselt werden, Zertifikate aktuell sind, ruhende Daten verschlüsselt sind und der Anmeldezugriff für Nutzer und Dienstkonten auf Datenbanken verwaltet wird.
  4. Verschiedene Ebenen des Datenbanksystems müssen auf Fehler überwacht werden, um die Verfügbarkeit der Instanz sicherzustellen. Nutzer müssen zusätzliche Ressourcen für die Einrichtung und Konfiguration der Monitoringtools ausgeben. Benachrichtigungen müssen so definiert werden, dass sie bei Fehlern erfolgen, und Korrekturmaßnahmen müssen unternommen werden, um Fehler zu beheben.
  5. Nutzer müssen viel Zeit, Ressourcen und Aufwand in die Einrichtung und Verwaltung von Datenbanken investieren, anstatt sich auf die Anwendungsentwicklung zu konzentrieren.

Vor- und Nachteile von Cloud SQL for MySQL

Vorteile

  1. Cloud SQL for MySQL ist eine nutzerfreundliche Oberfläche zum Erstellen, Verwalten, Aufrufen und Überwachen der MySQL-Datenbank für Entwickler und Data Engineers, auch für solche, die sich nicht mit Datenbanken auskennen. Für einen schnellen Einstieg bietet Cloud SQL auch eine einfache Möglichkeit, bestehende MySQL-Datenbanken von lokalen oder anderen Clouds zu Google Cloud SQL for MySQL zu migrieren.
  2. Cloud SQL for MySQL bietet eine umfangreiche Reihe von Features, die zum Hosten von MySQL-Datenbanken für verschiedenste Anwendungen erforderlich sind – von Datenbanken für Microsites bis hin zu hochkritischen und großen Unternehmensanwendungen, Gaming-Anwendungen und Daten für Analyseanwendungsfälle. Mit diesen reichhaltigen Features können Nutzer äußerst zuverlässige und skalierbare Anwendungen erstellen.
  3. Cloud SQL ist gemeinsam mit den Nutzern für die Sicherheit verantwortlich. Cloud SQL bietet Sicherheit auf niedrigeren Infrastruktur- und Netzwerkebenen, damit sich Nutzer auf die Konfiguration und Entwicklung von Anwendungen auf der höheren Ebene konzentrieren können. 
  4. Cloud SQL bietet verschiedene Sicherheitsfeatures wie Plug-ins zur Passwortüberprüfung und Audit-Logging, die in den Community-Versionen nicht ohne Weiteres verfügbar sind und in selbstverwalteten Umgebungen komplex zu implementieren sind. Cloud SQL vereinfacht diese Features und stellt sie den Nutzern zur Verfügung.
  5. Cloud SQL bietet verschiedene Möglichkeiten zur Interaktion mit der Datenbank. Mit GUI, CLI und API können Nutzer Vorgänge mit minimalem Aufwand an ihre Anforderungen anpassen.
  6. Cloud SQL lässt sich einfach in andere Lösungen und Produkte wie BigQuery einbinden, sodass Sie mit minimalem Aufwand analytische Lösungen entwickeln können.
  7. Cloud SQL übernimmt die Verantwortung für die Zuverlässigkeit der Datenbankinstanz mit seiner hochverfügbaren Infrastruktur, den sich selbst reparierenden Lösungen und vor allem den rund um die Uhr verfügbaren SRE-Teams.
  8. Nutzer verbringen weniger Zeit und Mühe mit operativen Aufgaben der Datenbank und können sich stattdessen auf die Anwendungsentwicklung konzentrieren und so effizienter bessere Lösungen für ihre geschäftlichen Anforderungen bereitstellen.
  9. Neben der Verwaltung der Datenbank bietet Cloud SQL auch Tipps und Empfehlungen zur Verbesserung der Leistung von Datenbanken mithilfe von Features wie Abfragestatistiken und Empfehlungen. Mit diesen Features können Sie die Datenbank in der Cloud einfach, sicher und kostengünstig hosten und verwalten.
  10. Cloud SQL bietet Kundenservice-Dienste, um den Support bei Problemen oder Anfragen im Zusammenhang mit Datenbanken zu vereinfachen und zu optimieren.

Nachteile

  1. MySQL-Forks von der MySQL-Umgebung wie MariaDB und Percona werden in Cloud SQL nicht unterstützt. 
  2. Einige MySQL-Funktionen werden nicht unterstützt. Weitere Informationen über nicht unterstützte Funktionen.
  3. Maschinentypen mit bis zu 624 GB RAM und 96 CPUs werden in Cloud SQL unterstützt. Es werden bis zu 64 TB Speicherplatz unterstützt. Wenn die Datenbank mehr Kapazität benötigt, wäre heute eine selbstverwaltete Option die einzige Möglichkeit.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Console
Google Cloud