Herkömmliche Datenbanksysteme stoßen häufig an Grenzen hinsichtlich Leistung, Verfügbarkeit und Skalierbarkeit. Amazon Aurora bietet hier eine Lösung, um diese Einschränkungen zu überwinden.
Datenbanken sind das Fundament moderner Anwendungen und essenziell für den Geschäftsbetrieb. Um den wachsenden Anforderungen gerecht zu werden, müssen sie leistungsstärker, zuverlässiger und schneller sein. Amazon Web Services (AWS) unterstützt Unternehmen dabei, ihre Daten effektiv zu verwalten und gleichzeitig die Kundenzufriedenheit zu steigern.
Ein hervorragendes Beispiel dafür ist der Webservice AWS Aurora von Amazon. Er nutzt Cluster-Volumes zur Datenverwaltung und zur Bereitstellung von Notfall-Backups.
Was ist Amazon Aurora?
Amazon Aurora ist eine Cloud-native Datenbank, die vollständig kompatibel mit Open-Source MySQL und PostgreSQL ist. Aurora unterstützt sämtliche Funktionen von Open-Source MySQL und ermöglicht eine nahtlose Integration mit Anwendungen, die auf diesen Datenbanken basieren.
Aurora wurde speziell für Kunden entwickelt, die einen vollständig verwalteten Datenbankdienst benötigen, der die Kosteneffizienz und Einfachheit von Open-Source-Datenbanken mit der Leistung einer kommerziellen Datenbank vereint.
Aurora bietet eine bis zu fünfmal schnellere Performance als herkömmliches MySQL und ist dreimal schneller als PostgreSQL. Amazon RDS übernimmt Aufgaben wie Bereitstellung, Sicherung und Wiederherstellung. Es fallen keine Anfangskosten an, und die Abrechnung erfolgt über eine monatliche Gebühr.
Das Besondere an Aurora ist seine nachgewiesene operative Exzellenz und seine Unternehmensfunktionen, die zu einem Bruchteil der Kosten kommerzieller Datenbanken bereitgestellt werden.
Aurora bietet weltweit eine unübertroffene Performance, Verfügbarkeit, Sicherheit und Zuverlässigkeit. Seit seiner Einführung im Jahr 2014 hat sich Aurora zum am schnellsten wachsenden Service innerhalb des AWS-Portfolios entwickelt.
Wofür wird Amazon Aurora eingesetzt?
Das bemerkenswerte Wachstum von Aurora ist auf das große Interesse verschiedenster Branchen zurückzuführen. In den letzten zwölf Monaten war ein starkes Interesse in den Bereichen Finanzdienstleistungen, Software und Internet, Unterhaltung und Spiele sowie Einzelhandel zu beobachten.
Kunden migrieren ihre MySQL- und PostgreSQL-Datenbanken zu Aurora MySQL und Aurora PostgreSQL, um diese zu konsolidieren. Zudem beobachten wir, dass viele Kunden von älteren Datenbanken wie Oracle oder Microsoft SQL Server zu Aurora PostgreSQL wechseln.
Diese Kunden wollen sich von hohen Lizenzgebühren und veralteten Datenbankstrukturen befreien. Kunden mit starkem Wachstum suchen nach Lösungen, die eine schnelle und nahtlose Skalierung in allen Regionen ermöglichen und gleichzeitig eine Integration mit anderen AWS-Services bieten.
Vorteile von Amazon Aurora
Die folgenden Punkte verdeutlichen die wichtigsten Vorteile von Amazon Aurora:
Skalierbarkeit
Die automatische Skalierung kann aktiviert werden, um die Speicherkapazität bei steigendem Bedarf zu erweitern und die Datenbankgröße bei sinkendem Speicherbedarf zu verringern.
Kosteneffizienz
Es werden nur die tatsächlich genutzten Rechenleistung und der Speicherplatz berechnet. Es gibt keine Vorauszahlungen oder versteckten Gebühren. Die monatliche Abrechnung ist transparent und einfach.
Sicherheit
Mithilfe von Amazon VPC kann das Netzwerk, in dem die Datenbank ausgeführt wird, isoliert werden.
Der AWS Key Management Service erlaubt die Erstellung von Verschlüsselungsschlüsseln zum Schutz der Daten.
Hohe Verfügbarkeit und Langlebigkeit
Aurora-Replikate können in verschiedenen Availability Zones erstellt werden.
Als globale Datenbank kann Aurora problemlos über verschiedene AWS-Regionen verteilt werden, wodurch die lokale Lese-/Schreibgeschwindigkeit erhöht werden kann.
Migrationsunterstützung
Für die Migration einer lokalen Datenbank zu Aurora können die Befehle pg_dump oder MySQL dump verwendet werden.
Vollständig verwaltet
Aurora ist sehr benutzerfreundlich und ermöglicht die einfache Einrichtung einer Instanz über die AWS RDS-Konsole. Die Überwachung mit Amazon CloudWatch ist ohne Zusatzkosten integriert.
Kunden müssen sich nicht um die Bereitstellung, Aktualisierung oder Upgrades kümmern. Amazon übernimmt die volle Kontrolle über alle Aspekte der Software und führt alle notwendigen Patches durch.
Beste Funktionen von Amazon Aurora
Im Folgenden werden die herausragendsten Funktionen von Amazon Aurora vorgestellt:
Skalierbarkeit: Die automatische Anpassung des Datenbankspeichers an die aktuellen Bedürfnisse ist eine der stärksten Eigenschaften von Aurora. Der Speicher kann in Schritten von bis zu 10 GB erweitert werden, bis zu einem Maximum von 128 TB, was eine flexible Datenspeicherung gewährleistet.
Hoher Durchsatz: SysBench-Benchmarks haben eine Steigerung des Durchsatzes um das Fünffache gezeigt. Amazon Aurora verwendet innovative Software- und Hardwaretechniken, um die verfügbare Speicherkapazität, Rechenleistung und das Netzwerk optimal zu nutzen. Um eine konsistente Leistung zu gewährleisten, nutzen Ein- und Ausgabeoperationen verteilte Systemtechniken wie Quoren.
Überwachung und Reparatur von Instanzen: Amazon RDS überwacht kontinuierlich den Zustand und die Leistung der Amazon Aurora-Datenbank und der zugrunde liegenden EC2-Instanzen. Bei einem Datenbankausfall wird die Datenbank sowie alle zugehörigen Prozesse automatisch neu gestartet.
Verschlüsselung: Amazon Aurora bietet ein hohes Maß an Sicherheit, indem es die Verschlüsselung der Datenbank mit benutzerdefinierten Schlüsseln, die über den AWS Key Management Service verwaltet werden, ermöglicht. Zudem werden Daten während der Übertragung durch SSL-Verschlüsselung geschützt.
Benutzerfreundlichkeit: Amazon Aurora ist einfach zu bedienen. Die Erstellung einer neuen Amazon Aurora-DB-Instanz kann über die Amazon RDS-Managementkonsole oder einen einfachen API-Aufruf erfolgen. Amazon Aurora-DB-Instanzen sind mit optimalen Parametern und Einstellungen für jeden DB-Instanztyp vorkonfiguriert.
Kostengünstig: Es werden nur die tatsächlich genutzten Ressourcen abgerechnet. Es fallen keine Vorabkosten oder andere Gebühren an. Die monatliche Abrechnung ist transparent und einfach.
Migrationsunterstützung: Für die Migration einer lokalen Datenbank zu Aurora können die Befehle pg_dump oder MySQL dump verwendet werden.
Vollständig verwaltet: Aurora ist sofort einsatzbereit. Die Erstellung einer Instanz erfolgt über die AWS RDS-Konsole oder einen API-Aufruf aus dem Code. Kunden müssen sich nicht um die Bereitstellung, Aktualisierung oder Upgrades kümmern.
Amazon Aurora-Architektur
Die grundlegende Architektur der Aurora-Datenbank basiert auf einem traditionellen DBMS. Sie verwendet einen Großteil der üblichen DBMS-Komponenten wie Transaktionsmanager, Abfrageausführungsmodul und Wiederherstellungsmanager.
Amazon Aurora geht jedoch über herkömmliche DBMS hinaus. Durch zahlreiche Verbesserungen der bestehenden Systeme werden die Verfügbarkeit, Zuverlässigkeit und Skalierbarkeit erheblich gesteigert.
Zu diesen Verbesserungen zählen:
- Ein primäres Replikat-Setup
- Replizierbare Remote-Datenspeicherung
- Speicherung von Änderungsprotokollen auf der Remote-Festplatte
Die Architektur von Amazon Aurora ermöglicht die flexible Skalierung der Speicherebenen traditioneller relationaler Datenbanken.
Die primäre Datenbankinstanz von Amazon Aurora leitet das Redo-Protokoll zur weiteren Verarbeitung an die Speicherebene weiter. Die Protokolle werden von der Speicherschicht verarbeitet, die neue Seitenversionen erstellt, speichert und alle Daten in S3 sichert.
Amazon Aurora muss bei einer horizontalen Skalierung lediglich zusätzliche Datenbank-Engine-Instanzen erstellen und mit der vorhandenen Speicherebene verbinden. Dadurch wird der Engpass bei der Datenreplikation behoben, indem diese Aufgaben zur parallelen Verarbeitung an die Speicherschicht delegiert werden.
Diese Architektur ermöglicht die Implementierung zahlreicher neuer Funktionen, wie z.B.:
- Sofortige Wiederherstellung nach einem Absturz: Es ist nicht erforderlich, Protokolle vom letzten Checkpoint erneut abzuspielen.
- Schnelles Failover: Die Speicherschicht sorgt dafür, dass immer die aktuellsten Redo-Log-Einträge verwendet werden.
- Backtracking: Durch die gestreamten Redo-Protokolle kann die Speicherschicht Daten zu bestimmten Zeitpunkten in der Vergangenheit „zurückspulen“, ohne ein Checkpoint aus dem S3-Backup wiederherstellen zu müssen.
Amazon Aurora einrichten
Die folgenden Schritte zeigen, wie Amazon Aurora erfolgreich eingerichtet wird.
#1. Melden Sie sich in der AWS-Verwaltungskonsole an und öffnen Sie RDS.
#2. Klicken Sie auf „Datenbank erstellen“.
#3. Wählen Sie als Engine-Option „Amazon Aurora“.
#4. Wählen Sie die gewünschte Aurora MySQL-Version aus.
#5. Erstellen Sie eine DB-Cluster-ID und legen Sie Benutzername und Kennwort für die Anmeldung fest.
#6. Wählen Sie die Instanzkonfiguration aus der Dropdown-Option und bestimmen Sie, ob Replikate erstellt werden sollen.
#7. Wählen Sie die Konnektivitätsoptionen wie unten gezeigt aus.
#8. Wählen Sie eine vorhandene VPC-Sicherheitsgruppe aus oder erstellen Sie eine neue.
#9. Aktivieren Sie die erweiterte Überwachung, wählen Sie die Granularität und eine Überwachungsrolle aus.
#10. Klicken Sie abschließend auf „Datenbank erstellen“.
#11. Die Amazon Aurora-Datenbank wurde erfolgreich erstellt.
Preismodell: Amazon Aurora
Aurora Serverless ACUs v2 kosten 0,12 $ pro Stunde, was doppelt so viel ist wie bereitgestellte Aurora ACUs. Das bedeutet:
- Aktuelle Mindestbetriebskosten: 4 ACUs, 0,48 USD pro Stunde oder 350 USD pro Monat.
- Für Workloads, die pathologisch die automatische Skalierungsfunktion auslösen, gibt es eine minimale Skalierbarkeitserhöhung von 30 Sekunden oder 0,0005 $ für eine halbe ACU.
Die monatlichen Kosten für Aurora Serverless V2 betragen 350 $. Für jedes automatisch skalierte Ereignis werden mindestens 0,0005 $ berechnet. Obwohl die entsprechende Aurora-Kapazität 175 USD pro Monat beträgt, bietet sie keine reaktionsschnelle serverlose automatische Skalierung.
Anwendungsfälle: Amazon Aurora
#1. Software as a Service (SaaS)
Aurora verwendet Mandantenfähige Architekturen, die bei der Speicher- und Instanzskalierung flexibel sind. Dadurch können sich Unternehmen auf die Entwicklung hochwertiger Anwendungen konzentrieren, ohne sich um die Datenbank sorgen zu müssen.
#2. Spiele
AWS Aurora arbeitet wie eine herkömmliche relationale Datenbank. Es bietet einen hohen Durchsatz, große Speicherkapazität, hohe Verfügbarkeit und Ausfallsicherheit.
#3. Unternehmensanwendungen
Amazon Aurora ist kompatibel mit jedem Unternehmen, das bereits eine relationale Datenbank verwendet. Aurora ist kostengünstig, da es die Kosten im Vergleich zu anderen Optionen um bis zu 90 % senken kann.
Auroras Kompatibilität mit MySQL und PostgreSQL
Amazon Aurora wurde für hohe Leistung, globale Verfügbarkeit und vollständige MySQL/PostgreSQL-Kompatibilität entwickelt. Standard-Tools ermöglichen die einfache Migration von MySQL- und PostgreSQL-Datenbanken zu Aurora. Ältere SQL-Server-Anwendungen können mit Babelfish für Aurora PostgreSQL ausgeführt werden, was nur minimale Codeänderungen erfordert.
Amazon Aurora arbeitet mit Standard-PostgreSQL-Import/Export-Tools wie pg_dump oder pg_restore zusammen. Zudem können neue Amazon Aurora-Tabellen mit einem Amazon RDS- oder MySQL-DB-Snapshot erstellt werden.
DB-Snapshots sind in der Regel schnell abgeschlossen, dies hängt aber von der Menge und dem Format der migrierten Daten ab.
Amazon Aurora vs. Amazon RDS
Architektur-Design
Die RDS-Architektur ähnelt insofern, dass eine Datenbank-Engine manuell auf Amazon EC2 installiert werden kann, die Bereitstellung und Wartung jedoch AWS überlässt. RDS bietet viele Funktionen wie automatisches Failover und Sicherungen. RDS nutzt Amazon EBS-Volumes zur Speicherung von Protokoll- und Datenbankdaten.
Das Aurora-Datenbankspeichersystem ist zuverlässig und fehlertolerant. Der Datenbankspeicher für Aurora ist unabhängig von den Instanzen. Aurora speichert Daten in sechs Kopien mit jeweils 10-GB-Blöcken, die auf drei Availability Zones verteilt sind. Selbst wenn nur eine Aurora-Instanz existiert, sind immer sechs Kopien der Daten vorhanden.
Leistung
RDS verwendet SSD-Speicher für eine verbesserte E/A-Durchsatzleistung. Es stehen zwei SSD-gestützte Speicheroptionen zur Verfügung: Eine für leistungsstarke OLTP-Anwendungen und eine für den universellen, kostengünstigen Einsatz.
Aurora bietet die doppelte Leistung von PostgreSQL und die fünffache Leistung von Standard-MySQL auf vergleichbarer Hardware. Die Leistung von Aurora war durchgehend höher und konsistenter.
Datenbank-Engine-Unterstützung
RDS ist kompatibel mit MySQL, PostgreSQL und MariaDB sowie mit Microsoft SQL Server und Oracle.
Aurora ist sowohl mit PostgreSQL als auch mit MySQL kompatibel. Dadurch können bestehende Datenbank-Tools und -Anwendungen sowohl auf PostgreSQL als auch auf MySQL ohne Modifikationen genutzt werden.
Haltbarkeit und Verfügbarkeit
Aurora verfügt über ein einzigartiges Speichermodell, das kontinuierliche Backups und Wiederherstellungen mit einem sehr niedrigen RPO (Recovery Points Objective) ermöglicht. Dadurch ist es zuverlässiger und langlebiger als RDS.
Daten sind in Aurora per Design dauerhaft. Es gibt immer mehrere Kopien der Daten. Jeder Aurora-Cluster verfügt über sechs Speicherknoten, die auf drei AZs verteilt sind. Selbst wenn nur ein Rechenknoten verwendet wird, sind immer mehrere Kopien der Daten verfügbar.
Widerstandsfähigkeit
Aufgrund seiner Architektur ist Aurora widerstandsfähiger als RDS. Es erholt sich schnell von Ausfällen. Wenn ein Rechenknoten abstürzt, kann Aurora schnell wiederhergestellt werden.
Speicher
Die automatische RDS-Speicherskalierung erhöht die Speicherkapazität auf 64 TiB (mit Ausnahme der 16 TiB von SQL Server), um wachsenden Datenbank-Workloads gerecht zu werden. Es gibt keine Ausfallzeiten.
Aurora erweitert den Speicher automatisch von mindestens 10 GB auf maximal 128 TiB. Der Speicherplatz wird in 10-GB-Schritten erhöht, ohne die Datenbankleistung zu beeinträchtigen.
Skalierbarkeit
Vertikale Skalierung: RDS und Aurora ermöglichen die Skalierung des Arbeitsspeichers und der Rechenressourcen auf maximal 244 GiB RAM und 32 virtuelle CPUs. Die Skalierung des Betriebs erfolgt in Sekundenschnelle.
Aurora Auto Scaling Dynamic: Aurora Auto Scaling passt dynamisch die Anzahl der verfügbaren Aurora-Replikate für einen Aurora-DB-Cluster mithilfe einer Single-Master-Replikation an. RDS unterstützt dieses Auto Scaling NICHT.
Replikation
RDS kann verwendet werden, um bis zu fünf Replikate bereitzustellen. Die Replikation erfolgt langsamer als bei Aurora.
Aurora kann bis zu 15 Replikate bereitstellen, und die Replikation dauert nur wenige Sekunden. Aurora skaliert schneller, da es schnell neue Lesereplikate hinzufügen kann.
Failover
In RDS erfolgt das Failover zum Lesen des Replikats manuell, was zu Datenverlust führen kann. Multi-AZ (Standby-Instanz) kann verwendet werden, um das Failover zu automatisieren und Datenverlust zu verhindern.
Um Datenverlust zu vermeiden, verwendet Aurora Failover, um Replikate automatisch zu lesen. Aurora bietet zudem eine schnellere Failover-Zeit.
Cluster-Endpunkte
RDS verfügt über einen Clusterendpunkt, der zum Ausführen von Schreibabfragen verwendet werden kann. Es ist der DNS-Zeiger auf die aktuelle Master-Datenbankinstanz. RDS leitet den Endpunkt während eines Failovers über eine einfache DNS-Änderung an den neuen Master weiter.
Der Clusterendpunkt ist in Aurora auch zum Schreiben von Abfragen verfügbar. Dieser Endpunkt dient gleichzeitig als Load Balancer für Lesereplikationen und kann verwendet werden, um Leseabfragen zu beantworten.
Sicherung
RDS erstellt und speichert automatisch Backups der DB-Instanzen während des Backup-Fensters der DB-Instanz. RDS erstellt einen Snapshot der DB-Instanz als Speichervolume und sichert alle Datenbanken und nicht nur die ausgewählten.
Aurora sichert Cluster-Volumes automatisch und stellt Daten für die Dauer der Aufbewahrungsfrist der Sicherung wieder her. Aurora-Backups sind kontinuierlich und inkrementell, wodurch eine schnelle Wiederherstellung zu jedem Zeitpunkt innerhalb der Backup-Aufbewahrungsfrist möglich ist.
Die folgende Tabelle fasst Amazon Aurora und Amazon RDS zusammen:
Amazon Aurora | Amazon RDS |
Speicher kann von 10 GB auf 128 GB erweitert werden | Ermöglicht 64 GB für alle Engines, aber nur 16 GB für SQL-Server |
Unterstützt fünfzehn Replikate | Unterstützt fünf Replikate |
Preise hängen von E/A-Vorgängen ab | SQL Server, MariaDB, Oracle Database, MySQL, PostgreSQL und Amazon Aurora |
Kostenlose Testversion ohne Mindestnutzungsgebühr möglich |
Amazon Aurora vs. DynamoDB
Haltbarkeit und Verfügbarkeit
Jede einzelne DynamoDB-Dateneinheit wird auf mehrere physische Knoten repliziert. Amazon hat diese physischen Knoten in mehreren Zonen (auch als Verfügbarkeitszonen bezeichnet) platziert, um eine hohe Haltbarkeit und Verfügbarkeit bei Katastrophen wie Bränden oder größeren Stromausfällen sicherzustellen. Der Betrieb wird auch dann fortgesetzt, wenn eine Kopie ausfällt. SSDs sind zudem sehr zuverlässig und langlebig.
Sicherungen und Wiederherstellung
DynamoDB bietet On-Demand-Backups sowie PITR (Point-in-Time-Backups), mit denen der Datenbankstatus zu jedem Zeitpunkt wiederhergestellt werden kann. DynamoDB kann beliebige Datenmengen sichern, ohne die Leistung oder Verfügbarkeit zu beeinträchtigen. Die Sicherung nimmt nur sehr wenig Zeit in Anspruch, und Benutzer müssen sich nicht um Sicherungspläne oder Hintergrundprozesse kümmern. AWS ermöglicht die Wiederherstellung von Backups mit einem einfachen API-Aufruf.
Der Sicherungsprozess von Amazon Aurora ähnelt dem von DynamoDB. Er wurde ohne Beeinträchtigung der Leistung oder der Verfügbarkeit der Datenbank entwickelt. Amazon-Backups werden in einem S3-Bucket gespeichert. Aurora erstellt automatisch alle 30 Minuten ein Backup, wenn kein Backup-Fenster angegeben wird.
Zugriffskontrolle
DynamoDB unterstützt IAM-Benutzer und -Rollen mit differenzierten Richtlinien, die die Datenbankerstellung und Abfrageberechtigungen einschränken. Amazon Aurora hat ein ähnliches Berechtigungssystem.
Aurora bietet jedoch auch MySQL- und PostgreSQL-kompatible Verbindungsschnittstellen, um sich mit der Datenbank zu verbinden.
DynamoDB als regionaler Dienst unterliegt nicht der VPC-Grenze. Aurora-DB-Cluster müssen jedoch in einer VPC eingerichtet werden, die ihre Netzwerkgrenze klar definiert. Zudem können VPC-Sicherheitsgruppen verwendet werden, um zu steuern, welche Geräte oder Amazon EC2-Instanzen sich mit der Datenbank-Instanz verbinden dürfen.
Die folgende Tabelle fasst Amazon Aurora und DynamoDB zusammen:
Amazon Aurora | DynamoDB |
Relationale Datenbank mit Unterstützung für MySQL und PostgreSQL | NoSQL Datenbank |
Multi-Region, Single-Master | Multi-Region, Multi-Master |
Replikate können innerhalb einer Minute zum Primärsystem hochgestuft werden | Hohe Verfügbarkeit |
Replikationslatenz beträgt weniger als 1 Sekunde | Replikationslatenz beträgt weniger als eine Millisekunde |
Fazit
Das war es. Wir stehen am Anfang einer neuen Ära für relationale Datenbanken, und Aurora ist erst der Anfang. Die Kunden haben mit überwältigender Zustimmung reagiert. Führende Unternehmen aus allen Branchen, wie Capital One, Dow Jones, Netflix und Verizon, migrieren ihre relationalen Datenbank-Workloads zu Aurora, einschließlich MySQL- und PostgreSQL-kompatibler Editionen.