Datenbank als Service: Der Weg zum passenden Cloud-native DBaaS

Benchmarks helfen bei der zielgerichteten Wahl des richtigen, kostengünstigen DBaaS. Der Artikel zeigt beispielhaft vier PostgreSQL-Angebote in zwei Szenarien.

In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen
Der passende Cloud-native Datenbankservice

(Bild: Erzeugt mit Midjourney durch heise medienwerk)

Lesezeit: 15 Min.
Von
  • Jörg Domaschka
  • Jan Ocker
  • Daniel Seybold
Inhaltsverzeichnis

Cloud-native Anwendungen sind so konzipiert, dass sie die ganze Flexibilität des Cloud Computings nutzen können: Skalierbarkeit, Elastizität, Resilienz. Traditionell liegt bei Cloud-nativen Anwendungen ein besonderes Augenmerk auf der Trennung von Datenhaltung (Storage) und Rechenleistung (Compute), sodass sich Letztere bei Bedarf elastisch skalieren lässt. Datenbank-Management-Systeme (DBMS) fanden im Cloud-native-Kontext lange Zeit wenig Beachtung. Allerdings wünschen sich immer mehr Anwender eine homogene Betriebsumgebung für Compute und Storage.

Die Verwendung von Stateful Sets in Kubernetes bietet eine Möglichkeit dazu. Ein anderer Ansatz ist es, das DBMS als externen Cloud-Dienst in eine Anwendung einzubinden. Der Cloud-Terminologie folgend, spricht man hier von Database as a Service (DBaaS). Die Kunden beziehen dabei eine vollständig verwaltete Instanz eines DBMS.

Seit dem Erscheinen von AWS DynamoDB im Jahr 2012 sind eine Vielzahl an DBaaS-Angeboten auf den Markt gekommen, ein Großteil davon in den letzten fünf Jahren. Betreiber von DBaaS sind Datenbankhersteller, Cloud-Provider und Drittanbieter – sogenannte Broker. Auf technischer Ebene deckt der Markt ein breites Spektrum unterschiedlicher Datenbanktechnologien ab. Populäre relationale Datenbanken sind insbesondere PostgreSQL, MariaDB und MySQL. Bei dokumentenbasierten Datenbanken gibt es eine Vielzahl an Angeboten für MongoDB und Derivate, vereinzelt aber auch Couchbase. Die meisten Dienste für spaltenorientierte DBMS basieren auf Apache Cassandra.

Fast jeder Datenbankhersteller stellt inzwischen eigene DBaaS-Angebote bereit. Beispiele hierfür sind MongoDB Atlas, Couchbase Capella, MariaDB SkySQL oder ScyllaDB Cloud. Den meisten dieser Produkte liegt das Infrastructure as a Service (IaaS) der drei Hyperscaler AWS, MS Azure oder Google Cloud Platform zugrunde. Auch so gut wie alle europäischen Cloud-Anbieter haben DBaaS im Portfolio – darunter Open Telekom Cloud, StackIT, OVHcloud und weitere. Der Übergang zwischen DBaaS und Managed Services ist an dieser Stelle fließend.

Die Grundlage von DBaaS bilden oft beliebte Open-Source-Projekte wie PostgreSQL, MySQL oder Apache Cassandra. In anderen Fällen lizenzieren die Anbieter Enterprise-Versionen von beispielsweise MongoDB. Insbesondere die Hyperscaler offerieren darüber hinaus eigene Systeme (Google Spanner oder Alibaba PolarDB) oder bieten Weiterentwicklungen von Open-Source-Projekten (AWS Aurora, Google AlloyDB for PostgreSQL). DBaaS-Broker wie zum Beispiel Aiven, Scalegrid und Instaclustr bieten wie die Cloud-Provider in der Regel eine Vielzahl unterschiedlicher DBMS. Im Gegensatz zu den Cloud-Providern unterhalten Broker jedoch keine eigene Infrastruktur und betreiben ihre DBMS-Instanzen bei unterschiedlichen Cloud-Providern als IaaS oder neuerdings Container as a Service (CaaS).

Die Minutenpreise von DBaaS-Angeboten erscheinen auf den ersten Blick im Vergleich zu IaaS sehr teuer. Dennoch gibt es vernünftige Gründe, DBaaS zu verwenden, anstatt ein DBMS selbst zu betreiben – sei es On Premises oder auf IaaS. Ein Beispiel des Hyperscalers AWS mit dem Relational Data Service (RDS): Hier kostet eine nicht-replizierte DBaaS-Instanz auf einer virtuellen Maschine von AWS (m6i.4xlarge) mit 16 Kernen, 64 GByte Arbeitsspeicher und 1 TByte persistentem GP3-Speicher etwa 1.375 Dollar pro Monat. Die zugrunde liegenden IaaS-Ressourcen schlagen dagegen nur mit etwa 640 Dollar zu buche.

Die Grafik stellt den DBMS-Betrieb On Premises und DBaaS gegenüber (Abb. 1).

(Bild: benchANT)

Der DBaaS-Dienst kostet doppelt so viel wie die reinen Cloud-Ressourcen. Hierfür bekommen Kunden allerdings eine Reihe von Leistungen, die sie bei reinem IaaS-Betrieb durch Arbeitszeit und Tooling selbst beisteuern müssten. Insbesondere beinhaltet das Angebot

  • automatische Installation und Konfiguration der DBMS-Instanz,
  • Monitoring mit Fehlerbehebung,
  • Wartung und Aktualisierung der Datenbank,
  • Service-Versprechen und Support-Leistungen,
  • automatisierte Empfehlungen zum Datenbank-Tuning.

Ein Datenbank-Administrator lässt sich somit einsparen. Bei geschätzten Personalkosten von monatlich 10.000 Dollar für einen erfahrenen DB-Admin sollte sich DBaaS daher für kleinere und mittlere Datenbank-Cluster wirtschaftlich lohnen. Ein gemanagtes Cloud-Projekt für einen 100-Knoten-Cassandra-Cluster dürfte hingegen deutlich teurer sein als eine Lösung in Eigenregie.

DBaaS-Dienste können sich also finanziell lohnen und ihr Einsatz kann darüber hinaus auch strategisch sinnvoll sein: So setzt der Wechsel gegebenenfalls Personalressourcen frei und ermöglicht eine stärkere Fokussierung auf die Produktentwicklung. DBaaS eröffnet zudem einfachen Zugang zu Datenbank-Technologien, für die noch kein eigenes Know-how vorliegt. Letztlich erhöht DBaaS, wie vom Cloud Computing gewohnt, die Flexibilität. Allerdings ergibt sich andererseits auch eine Abhängigkeit vom Anbieter durch Lock-in-Effekte. Entsprechend wichtig ist es, von Anfang an den geeignetsten Dienst auszuwählen.

Im Markt existieren drei große Gruppen von Betriebs- und Kostenmodellen: ressourcenbasierte, operationsbasierte und serverless. Das ressourcenbasierte Modell ist das intuitivste und darum mit 90 Prozent der Angebote auch das aktuell verbreitetste. Ähnlich wie bei der Buchung von IaaS-Ressourcen mietet der Nutzer einen festgelegten Typ virtueller Maschinen. Beim operationsbasierten Modell bucht er hingegen eine definierte Anzahl an Datenbankoperationen abhängig vom erwarteten Workload. Für schwankende Workloads kann das Serverless-Modell eine sinnvolle Lösung bieten. Es ist eng verwandt mit dem operationsbasierten Modell, erfordert aber nicht mehr das Buchen einer festen Zahl an Operationen. Stattdessen kostet jede Operation einen fixen Betrag. Der DBaaS-Dienst skaliert die benötigten Ressourcen automatisch und optimal mit der anliegenden Last.

Interessenten können alle Ausstattungskriterien für einen Marktvergleich weitestgehend selbst recherchieren. Dies gilt auch für die Preisgestaltung, die auf den Seiten der Anbieter in vielen Fällen allerdings eher unübersichtlich dargestellt ist. In Hinblick auf die Leistungsfähigkeit eines DBaaS-Systems und dessen Preis-Leistungs-Verhältnis stellt sich die Sache jedoch weitaus komplexer dar:

  • Die meisten DBMS besitzen eine Vielzahl von Konfigurationsoptionen, die auf die verwendete (virtuelle) Hardware und den zu erwartenden Workload angepasst werden müssen. Viele DBaaS-Anbieter schränken die für Nutzerinnen und Nutzer konfigurierbaren Optionen zwar ein, passen die restlichen aber nicht automatisch auf das Laufzeitverhalten der Instanz an. Unterschiedliche Anbieter stellen darüber hinaus unterschiedliche Standardkonfigurationen bereit.
  • Virtuelle Hardware ist zwischen IaaS-Anbietern nicht vergleichbar, so werden virtuelle Maschinen mit acht Kernen, 64 GByte RAM und SSD-Speicher auf AWS und MS Azure unterschiedliche Leistungscharakteristika haben und entsprechend zu unterschiedlichem Durchsatz führen.
  • Leistung ist nicht gleich Leistung. In der Regel muss der Betreiber einer DBMS-Instanz entscheiden, für welche Art von Workload das System konfiguriert sein soll und ob eine Optimierung hinsichtlich des Durchsatzes oder der Latenz erfolgen soll. Im letzteren Falle muss er auch noch zwischen Lese- und Schreiblatenz unterscheiden.

Entsprechend wichtig ist es, insbesondere für den Produktivbetrieb eines ressourcenbasierten DBaaS die erforderliche Leistungsfähigkeit durch geeignete Werkzeuge anhand des erwarteten Workloads zu ermitteln.