Eine relationale Datenbank war lange Zeit eine ziemliche Standardlösung für verschiedene (und fast alle) Software-Anwendungsfälle, die große oder kleine Unternehmen zu lösen hatten.

Heute ist die Variabilität mit der breiteren Verfügbarkeit von NoSQL-, In-Memory- oder Data Lake-Datenbanken viel größer. Trotzdem ist die relationale Datenbank als Ziel immer noch die einfachste Option für diesen Übergang, wenn die Entscheidung getroffen wird, aktuelle On-Premise-Datenbanken in die Cloud zu migrieren.

Wir werden uns die folgenden Datenbanken, die Teil einer solchen Initiative sein können, genauer ansehen:

  • Oracle
  • Aurora
  • Microsoft SQL Server
  • MySQL & PostgreSQL
  • MariaDB

Ich werde deutlich machen, wie sie sich von den anderen unterscheiden und was sie auszeichnet, einschließlich ihrer Nachteile. Dann bringe ich sie in einen Kontext, indem ich ein typisches Anwendungsbeispiel aus der Praxis zeige. Zum Schluss werde ich Ihnen meine Meinung dazu mitteilen, wie Sie sich in Ihrem Fall für eine der verschiedenen Datenbanken entscheiden sollten.

AWS Oracle DB

AWS-Oracle
Quelle: aws.amazon.com

Die Oracle DB war in den letzten Jahrzehnten zweifelsohne die am häufigsten verwendete kommerzielle Datenbank. Wann immer ein Unternehmen eine robuste und hochleistungsfähige Datenbanklösung benötigte, war die Oracle DB die erste Wahl. Und das aus vielen guten Gründen.

Wie sie sich unterscheidet

Oracle ist eine robuste und funktionsreiche Plattform, die eine enorme Anzahl von sogar völlig unterschiedlichen Setups und Anforderungen bedienen kann. Im Laufe der Zeit wurde diese DB zur ultimativen Lösung für den Fall, dass Sie eine hochmoderne Zuverlässigkeit, Skalierbarkeit und Wartungsfreundlichkeit benötigen, die auf einer Hardware-Infrastruktur vor Ort basiert.

Die wichtigsten Vorteile

Hier sind einige der wichtigsten Vorteile, die Sie erhalten, wenn Sie sich für ein so ausgereiftes Datenbanksystem wie Oracle entscheiden:

✅ Großartige Unterstützung und Optionen für effektive Sicherungs- und Wiederherstellungsaktivitäten.

✅ Breites Spektrum an Möglichkeiten, die Leistung der DB-Lösung innerhalb des Systems zu optimieren. Selbst wenn die Lösung schon lange in Produktion ist. Support- und Wartungsaktivitäten innerhalb dieser Plattform sind wirklich einfach einzurichten und sehr effektiv.

✅ Hohe Anpassungsfähigkeit der DB-Lösung. Da Oracle DB eine Vielzahl von Funktionalitäten unterstützt, haben Sie als Systemintegrator viele Möglichkeiten, ein robustes System aufzubauen, das genau die Funktionalitäten enthält, die Ihre Plattform benötigt (denken Sie an Trigger, Partitionen, Unterpartitionen, automatisierte Primärschlüsselsequenzen, Ansichten, Snapshots, Dateneinschränkungen, eindeutige Schlüssel, kombinierte Schlüssel, Fremdschlüssel, zusammengesetzte Indizes usw.). Es unterstützt alles.

✅ Einfache Verwaltung von Datenbankaktivitäten und -prozessen. Spezielle Verwaltungskonsolen und Dashboards sowie viele Tools, die von Oracle entwickelt wurden und ausschließlich für Administratoren bestimmt sind, können sofort verwendet werden.

✅ Unterstützung von Mehrbenutzerumgebungen. Wenn die Anforderung besteht, Tausende von verschiedenen aktiven Benutzern gleichzeitig zu unterstützen, ist Oracle die richtige Lösung.

Hauptnachteile

Oracle DB ist sehr flexibel, was die vertikale Skalierung der Leistung angeht. Weniger flexibel ist es jedoch, wenn Sie eine starke horizontale Skalierung benötigen. Das bedeutet, dass ein Upgrade auf eine stärkere CPU, mehr Arbeitsspeicher und mehr Speicherplatz bei einer Cluster-DB leicht möglich ist.

Wenn Ihre Daten jedoch in kurzer Zeit erheblich wachsen – was bei Daten in der Cloud der Regel der Fall ist – werden die Leistungsengpässe sichtbarer und schwieriger zu lösen. Die Verteilung der Daten auf mehrere Cluster und die Erwartung, dass diese dynamisch wachsen, wird in Zukunft eine Hauptanforderung sein. In diesem Fall könnten Sie feststellen, dass Oracle DB Ihre zukünftigen Anforderungen eher einschränkt als erfüllt.

Ein weiterer möglicher Nachteil könnten die Kosten sein. Oracle DB unterstützt viele Funktionen, aber viele davon sind auch mit Kosten verbunden. Dies gilt umso mehr, wenn mehrere Cluster vorhanden sind und physische Leistungsverbesserungen erforderlich sind. Das bedeutet, dass ein Software-Tuning des Datenmodells nicht mehr ausreicht. Um mehr Verwaltungstools und Funktionen zur Verfügung zu haben, müssen Sie eine Unternehmenslizenz erwerben. Dies wird die ohnehin schon hohen Kosten weiter in die Höhe treiben.

Und schließlich ist Oracle DB kein nativer AWS DB-Service, was bedeutet, dass Sie keinen vollständigen Support von AWS erwarten dürfen. Orientieren Sie sich lieber am Oracle-Support. Aber dann müssen Sie sich mit den Problemen von Oracle und AWS parallel und mit zwei verschiedenen Supportteams auseinandersetzen.

Wann Sie wählen sollten

Die Wahl des Cloud-Pendants der Oracle DB ist die naheliegendste Entscheidung, wenn Ihre aktuelle On-Premise-Lösung bereits Oracle DB verwendet. Außerdem wird dadurch die Migration und der Wechsel zur Cloud-basierten Lösung so einfach wie nur möglich.

Wählen Sie daher in diesem Fall die AWS Oracle DB:

  • Sie erwarten, dass die Cloud-DB auf absehbare Zeit die gleichen Prozesse und Funktionalitäten unterstützt wie die On-Premise-Variante.
  • Sie haben nicht vor, die DB sehr schnell mit zu vielen AWS-eigenen Services zu integrieren.
  • Sie gehen nicht davon aus, dass das aktuelle Datenvolumen in kurzer Zeit erheblich ansteigen wird.
  • Sie benötigen die Unterstützung einer großen Anzahl von Funktionalitäten vor Ort. Das heißt, dass es schwierig wäre, einige der derzeit vorhandenen Funktionen zu verlieren, wenn Sie in die Cloud wechseln.
  • Ihr System muss Hunderte von aktiven Benutzern gleichzeitig unterstützen (oder mehr).

Beispiel für die Nutzung

  • Große Telekommunikationssysteme für Abrechnungs-, CRM- und Middleware-Daten.
  • Kundenspezifische DB-Implementierungen für Datenbanksysteme in der Automobilbranche, die mit verschiedenen kundenspezifischen Tools oder Tools von Drittanbietern integriert sind.
  • Paketsystemlösungen für den Bankensektor, bei denen Oracle bereits fester Bestandteil der Paketlösung des Anbieters ist und schließlich zusätzliche benutzerdefinierte DB-Komponenten in eine komplexe Implementierung integriert.

AWS Aurora DB

AWS-Aurora
Quelle: aws.amazon.com

In vielerlei Hinsicht ist Aurora das direkte Gegenteil von Oracle, auch wenn es sich immer noch um eine relationale Datenbank handelt.

Wie sie sich unterscheidet

Autora DB ist ein nativer Datenbankservice in AWS. AWS bietet vollen Support und kontinuierliche Weiterentwicklung und integriert es tief in das übrige Ökosystem der AWS-Services.

Aurora DB erreicht nicht den Grad an Funktionsvielfalt, den Oracle bereits hat. Aber es wurde in der Cloud geboren (im Gegensatz zu Oracle). Da AWS Aurora weiterentwickelt, könnte die Funktionslücke in der Zukunft kleiner sein als heute.

In vielerlei Hinsicht ist Aurora Oracle bereits voraus, insbesondere was die Integration mit anderen AWS-Cloud-Services betrifft. Und da Amazon Aurora mit Blick auf ein Cloud-Ökosystem entwickelt hat, ist Aurora für ein massives Datenaufkommen und einen Anstieg im Laufe der Zeit gerüstet, so dass die horizontale Skalierung eine starke Eigenschaft ist.

Wichtigste Vorteile

Ich würde sagen, die Hauptvorteile von Aurora DB sind:

✅ Sehr flexible Erweiterbarkeit von Nur-Lese-DB-Kopie-Instanzen. Diese können Sie in Sekundenschnelle erstellen. Schreibgeschützte Instanzen nutzen die gleichen DB-Protokolle der Hauptdatenbank, aus der sie stammen. Das bedeutet, dass bei der Erstellung einer neuen Nur-Lese-Datenbank nicht alle Daten synchronisiert werden müssen, sondern dass dies automatisch durch die gemeinsame Nutzung der bestehenden Datenbanken erfolgt.

bereit für großes Datenwachstum – horizontale Skalierung ist ein wichtiges Merkmal von Aurora DB. Das Hinzufügen neuer Cluster und die Erweiterung der Skalierbarkeit über verschiedene Verfügbarkeitszonen hinweg ist denkbar einfach. Aurora ist dann sehr effektiv bei der schnellen Auswahl großer Datenmengen.

sie können wählen, ob Sie den Server- oder den serverlosen Modus von Aurora DB verwenden möchten. Im serverlosen Modus werden Ihnen einige Funktionen fehlen. Aber Sie erhalten eine Menge Flexibilität und Kostenoptimierungen, wenn Sie den serverlosen Modus wählen.

✅ Automatisierte Backups und einfaches Point-in-Time Revert. Ein weiteres Highlight ist, dass Aurora DB einfache tägliche Backups durchführen kann und die Wiederherstellung der gesamten Datenbank zu einem beliebigen Zeitpunkt viel einfacher ist. Sie können hier alle Vorteile der Cloud-Umgebung kombinieren, wie z.B. immer verfügbaren freien Speicherplatz, schnelle interne AWS-Vorgänge und eine spezielle Aurora DB-Funktion, die auf schnelle Wiederherstellungszeiten und kurze Ausfallzeiten abzielt.

✅ Unterstützung für die DB-Engine MySQL oder PostgreSQL, so dass Sie wählen können, was Ihnen am besten gefällt.

Hauptnachteile

  • Auch wenn Aurora wohl die funktionsreichste native relationale Datenbank ist, die Sie in AWS wählen können, liegt sie in dieser Hinsicht noch hinter Oracle zurück. Das ist verständlich; Oracle hatte in der Vergangenheit viel mehr Zeit, diese Funktionen zu entwickeln. Tatsache ist, dass Aurora DB mit jeder Version stärker und näher an Oracle heranrückt.
  • Es gibt kein Äquivalent zu Aurora DB im On-Premise-Bereich. Sie können argumentieren, dass alte Datenbanken, die innerhalb von MySQL- oder PostgreSQL-Datenbanken aufgebaut sind, eine enge Entsprechung haben – und aus Sicht der Kompatibilität sind sie das sicherlich auch. Aber sie sind nicht das strikte Äquivalent. Das bedeutet, dass die Migration nicht so einfach sein wird. Sie müssen die Migrationsprozesse anpassen und implementieren, um sicherzustellen, dass die Daten aus der lokalen Datenbank übertragen und in Aurora DB gespeichert werden, und zwar im richtigen Datenmodellformat.
  • Verschiedene AWS-Limits, insbesondere die harten, sind ein Faktor, der in manchen Fällen davon ablenken könnte, diese DB als Ziel für die Zukunft zu wählen. Es ist sehr wahrscheinlich, dass Sie sie alle umgehen können, aber in einigen Fällen werden Sie ernsthaftere Investitionen in das Refactoring benötigen, was letztendlich die Gesamtkosten der Migration im Vergleich zu einem anderen Datenbankziel erhöhen kann.

Wann Sie sich entscheiden sollten

Kurz gesagt, Aurora DB als erste relationale Datenbank auf der AWS-Plattform zu wählen, ist nie eine schlechte Entscheidung, aber tun Sie es vor allem, wenn:

  • Sie ein Cloud-System von Grund auf um eine relationale Datenbank herum aufbauen wollen.
  • Sie erwarten ein Höchstmaß an Kompatibilität und Integrität mit möglichst vielen verschiedenen nativen AWS-Diensten.
  • Sie erwarten, dass Ihr Datenvolumen in kurzer Zeit erheblich wachsen wird.
  • Sie planen mehrere POC-Projekte (Proofs of Concept), bei denen Sie alle Vorteile der serverlosen Version einer relationalen Datenbank nutzen können.

Beispiel für die Verwendung

  • Eine serverlose Plattform für die Analyse großer Mengen von Infrastrukturbilddaten.
  • Nutzung von Modellen des maschinellen Lernens zur Verarbeitung Ihrer Data Lake-Informationen und zur Erstellung von Geschäftsprognosen für Ihr Unternehmen.
  • Netflix verwendet Aurora DB für schnelle parallele Abfrageausführungen über seine Katalogdaten.

AWS Microsoft SQL DB

AWS-SQL-Server
Quelle: aws.amazon.com

Diese Datenbank ist in gewisser Weise mit Oracle vergleichbar. Sie wurde auch schon lange vor der Einführung der Cloud entwickelt und es gibt viele aktuelle On-Premise-Benutzer, die eine Migration in die Cloud planen und dabei die MS SQL DB als Quelle verwenden.

Wie sie sich unterscheidet

Trotz dieser Ähnlichkeiten ist MS SQL DB immer noch diejenige, die in der Vergangenheit im Vergleich zu Oracle DB viel weniger genutzt wurde.

Zumindest nach meiner persönlichen Erfahrung zu urteilen. Ich war in den letzten zwei Jahrzehnten an mehreren Oracle-Projekten beteiligt, aber nur in einer Handvoll Fälle, in denen MS SQL DB involviert war. Und offen gesagt, hatte ich damit nicht annähernd so viel Freude wie mit Oracle DB.

Wie dem auch sei, ich erkenne immer noch ein großes Segment von Unternehmen, die MS SQL DB als Hauptdatenbank verwenden, die der einzige Bezugspunkt für alle Daten ist.

Wichtigste Vorteile

Die wichtigsten Vorteile von MS SQL DB:

✅ Gute Integration mit anderen Microsoft-Diensten und -Software, falls Sie diese Funktion als wertvoll für Ihren Fall erachten.

✅ Einfache Anpassung mit benutzerdefinierten Code-Erweiterungen, meist in Form von Javascript-Code-Modulen. Dies kann nützlich sein, wenn es um komplexere Geschäftsprozesse und Aufträge geht, die über die Datenbank geplant werden sollen.

✅ Aus Sicht der Verwaltung recht einfach (zumindest im Vergleich zu Oracle DB).

✅ Es macht wahrscheinlich viel mehr Sinn im Azure Cloud-Ökosystem, da es dort als natives relationales Datenbanksystem gilt, das viel besser mit anderen Cloud-Diensten kompatibel ist.

Hauptnachteile

  • Ähnlich wie im Fall von Oracle DB muss der gesamte Support und die Problembehebung als nicht native Datenbank in der AWS-Cloud über separate MS SQL-Supportteams abgewickelt werden.
  • Geringere Diversifizierung des Funktionssupports im Allgemeinen im Vergleich zu Oracle DB oder Aurora DB.
  • Nicht geeignet für eine große Anzahl aktiver Benutzer.
  • Die horizontale Skalierbarkeit ist ein noch größeres Problem als im Fall von Oracle DB.

Wann Sie sich entscheiden sollten

MS SQL DB eignet sich am besten, wenn Sie die vorhandene MS SQL DB vor Ort möglichst ungestört in die Cloud migrieren möchten. Außerdem erwarten Sie nicht, dass die Integration mit anderen AWS-Cloud-Services zu sehr ins Gewicht fällt.

Dann wird die MS SQL DB in der AWS-Cloud als vollständig verwaltete Datenbank mit unbegrenztem Speicherplatz und erweiterten Optionen für horizontale Skalierbarkeit und hohe Verfügbarkeit im Vergleich zur On-Premise-Alternative leben.

Beispiel für die Nutzung

  • Als mittlere Plattform für die benutzerdefinierte Integration verschiedener Datenbanksysteme (kann auch ein anderer Typ sein, z.B. Oracle DB).
  • Verschiedene kleinere Projekte, bei denen die Kosten der Datenbanklösung eine Rolle spielen und das Budget eher begrenzt ist (und es nicht erlaubt, eine vollwertige Oracle DB-Lösung zu kaufen).

AWS MySQL und PostgreSQL DB

AWS-MySQL
Quelle: aws.amazon.com

Diese Datenbanken sind beide ursprünglich Open Source (auch wenn sie inzwischen von größeren Unternehmen aufgekauft wurden), was letztlich sowohl Vor- als auch Nachteile mit sich bringt.

Außerdem sind sie nicht so funktionsreich wie andere Alternativen, insbesondere in ihrer ursprünglichen Form. Und obwohl Sie beide in dieser Form in der AWS-Infrastruktur verwenden können, bezweifle ich, dass dies in der Praxis noch allzu viel Sinn macht.

Wie es sich unterscheidet

Bei der Migration der On-Premise-DB (sei es MySQL oder PostgreSQL) in die AWS-Cloud können Sie Aurora einfach direkt mit der MySQL- oder PostgreSQL-Engine als Ziel verwenden und so alle zusätzlichen Vorteile nutzen, die Aurora DB zu bieten hat.

Natürlich bedeutet dies einen gewissen Mehraufwand für die Migrationsphase im Vergleich zu dem Fall, dass eine native Alternative gewählt wird. Aber dieser zusätzliche Aufwand wird nur marginal sein.

Ihr Hauptvorteil liegt in den Kosten und darin, dass sie am besten für kleine Projektinitiativen geeignet sind, bei denen Robustheit nicht wirklich ein Thema ist.

Hauptnachteile

  • Beide sind in der unterstützten Funktionalität recht begrenzt und Sie müssen sich auf eingeschränkte Möglichkeiten bei der Wartung und Verwaltung einstellen.
  • Nicht geeignet für große Projekte mit vielen aktiven Benutzern.
  • Nicht geeignet für hochleistungsfähige Lösungen, bei denen ein ständiges Leistungstuning eine wichtige Voraussetzung ist.

Wann Sie sich entscheiden sollten

  • Wenn die Kosten das Hauptthema sind und das Budget sehr begrenzt ist.
  • Wenn die Projektinitiative eher klein ist.
  • Wenn das Datenvolumen eher klein ist und kein signifikantes Wachstum geplant ist.

Beispiel für die Verwendung

  • Persönliche Projektinitiativen, bei denen die Kosten für die Infrastruktur so gering wie möglich sein sollen.
  • Kleine POCs, die beweisen sollen, dass das vorgeschlagene Konzept umgesetzt werden kann.
  • Projekte von kleinen Unternehmen mit geringen Datenmengen.
  • Für kleine SaaS-Projekte, bei denen keine umfangreichen Datenbanklasten erforderlich sind, ist die Speicherung von Daten in einem relationalen Datenmodell alles, was wirklich benötigt wird.

AWS MariaDB

AWS-MariaDB
Quelle: aws.amazon.com

MariaDB ist immer noch eine vollständig quelloffene Datenbank, die von ehemaligen MySQL-Entwicklern entwickelt wurde (nach der Übernahme von MySQL durch Oracle).

Was die Kompatibilität betrifft, so läuft jede MySQL-DB problemlos in MariaDB.

Wie sie sich unterscheidet

Funktionell sind nicht viele Unterschiede zu MySQL zu erwarten, aber die Open-Source-Eigenschaft ist das Highlight.

Technisch gesehen gibt es eine ganze Reihe nützlicher Funktionen, die in MariaDB verfügbar sind, in MySQL jedoch nicht.

Hauptnachteile

Ziemlich ähnlich wie bei MySQL.

Wann Sie sich entscheiden sollten

  • Wenn Sie Ihre derzeitige MariaDB On-Premise-Implementierung absolut lieben und nicht zu Aurora DB migrieren möchten, aus welchen Gründen auch immer.
  • Wenn Sie mit Ihrer Datenbanklösung innerhalb des AWS-Cloud-Ökosystems wirklich Open-Source bleiben möchten.

Beispiel für die Verwendung

Ganz ähnlich wie im Fall von MySQL.

Abschließende Worte

Ähnlich wie Oracle DB die Lösung in der On-Premise-Welt war, scheint es, dass Aurora DB diesen Platz in der AWS-Cloud-Welt einnehmen wird. Zumindest was den Funktionsumfang betrifft, ist dies die Lösung, die Ihnen am nächsten kommt.

Und selbst wenn Sie nicht wirklich hinter den Hauptakteuren her sind, ist es gut zu wissen, dass es immer noch recht unkomplizierte Optionen gibt, wie Sie Ihre bestehende Datenbank in die AWS-Cloud migrieren können.

Besser noch – mit dieser Umstellung erhalten Sie automatisch Funktionen, die Ihnen bis dahin höchstwahrscheinlich gefehlt haben. Vor allem die bessere Erweiterbarkeit des Speichers, die hohe Verfügbarkeit und die horizontale Skalierbarkeit sind native Funktionen der Cloud-Umgebung.