Vor Cloud-Anbietern und verwalteten Diensten mussten Datenbanken lokal installiert werden, und eine groß angelegte Installation konnte die Installation einer großen Infrastruktur und das Halten mehrerer DBAs erfordern. Mit dem Aufkommen von Cloud-Anbietern wurden lokale Datenbanken in die Cloud migriert und die Anforderungen an die lokale Infrastruktur wurden reduziert, wenn nicht gar eliminiert. Cloud-Anbieter wie Amazon Web Services (AWS) und Oracle Cloud Platform bieten Managed Services für die häufig verwendeten relationalen Datenbanksysteme Oracle Database und MySQL Database an, die von DBEngines.com auf Platz 1 bzw. 2 eingestuft werden. AWS unterstützt auch andere Datenbanken, einschließlich PostgreSQL-Datenbank und SQL Server-Datenbank. AWS bietet Unterstützung für eine proprietäre NoSQL-Datenbank namens DynamoDB.
In diesem Artikel werden wir die Datenbanken diskutieren, die bei den Cloud-Anbietern AWS und Oracle Cloud Platform verfügbar sind. Unabhängig davon, welcher Cloud-Anbieter verwendet wird, sind einige Funktionen allen Cloud-Anbieter-Datenbanken gemeinsam:Managed Service, skalierbar, zuverlässig, sicher und Funktionen für die Zusammenarbeit. Dieser Artikel hat die folgenden Abschnitte und Unterabschnitte:
- Datenbanken auf Amazon Web Services (AWS)
- RDS
- DynamoDB
- Rotverschiebung
- ElasticCache
- Datenbanken auf Oracle Cloud Platform
- Oracle-Datenbank
- MySQL-Datenbank
- Oracle NoSQL-Datenbank
- Schlussfolgerung
Datenbanken auf Amazon Web Services (AWS)
Amazon Web Services (AWS) bietet Managed Services in verschiedenen Kategorien an:
- Relational Database Service (RDS) für relationale Datenbanken
- DynamoDB für NoSQL-Datenbanken
- Redshift für analytische abfragebasierte Datenbanken (Data Warehouse)
- ElasticCache für In-Memory-Cache
RDS
Der Dienst für relationale Datenbanken ist ein in der Cloud gehosteter verwalteter Dienst für die häufig verwendeten relationalen Datenbanken – Oracle-Datenbank, MySQL-Datenbank, SQL Server, PostgreSQL, MariaDB und das proprietäre Aurora – wie in Abbildung 1 gezeigt.
Abbildung 1: Auf dem RDS gehostete Datenbanken
Was RDS zu einer besseren Alternative zu lokalen Datenbanken macht, ist, dass RDS variable Kapazität, Automatisierung der DBA-Aufgaben, in der Cloud bereitgestellte Hardware und automatische Datenbanksicherungen und -patches bietet. RDS-Datenbanken bieten sowohl Produktions- als auch Entwicklungs-/Testumgebungen. RDS-Datenbanken sind vollständig in die anderen AWS-Services wie S3, IAM, CloudWatch, Database Migration Service und CloudTrail integriert. S3 wird zum Speichern von Backups und Snapshots verwendet, die zum Sichern und Wiederherstellen einer Datenbank verwendet werden. IAM dient der Zugriffsverwaltung. CloudWatch dient der Überwachung und Protokollierung. CloudTrail dient zum Auditieren von API-Aufrufen. Database Migration Service dient zum Migrieren von Datenbanken:Migrieren einer lokalen Datenbank in die Cloud oder Migrieren zwischen verschiedenen Datenbanken in der Cloud. RDS bietet die Option, eine Datenbank in mehreren Availability Zones bereitzustellen.
Auf RDS sind die verschiedenen Editionen der kommerziellen Datenbanken Oracle und SQL Server verfügbar. Aurora ist eine Hochleistungsdatenbank, die vollständig mit MySQL- und PostgreSQL-Datenbanken kompatibel ist und die folgenden Vorteile bietet:
- Hoher Durchsatz (5x MySQL und 3x PostgreSQL)
- SSD-Speicher mit automatischer Skalierung (bis zu 64 TB), der fehlertolerant ist
- Mehrere Read Replicas für geringe Latenz und automatisches Failover
- Fehlertolerant. Festplattenfehler werden ohne Serviceverlust repariert.
- Hohe Verfügbarkeit
- Inkrementelle Sicherungen und Point-in-Time-Wiederherstellung
- Netzwerkisolation (VPC), Berechtigungen auf Ressourcenebene mit IAM und Verschlüsselung, um die Datenbanken sicher zu machen
RDS-Datenbanken bieten einen Endpunkt, wie z. B. für die in Abbildung 2 gezeigte PostgreSQL-Datenbank auf RDS, für den Zugriff mit häufig verwendeten SQL-Clients.
Abbildung 2: PostgreSQL-Datenbank auf RDS
DynamoDB
DynamoDB ist eine NoSQL-Datenbank mit flexiblem Datenmodell, die eine niedrige Latenzzeit (einstellige Millisekunden), eine automatische Skalierung der Lese- und Schreibkapazität mit der Möglichkeit bietet, reservierte Kapazität zu erhalten, globale Sekundärindizes für eine effiziente Abfrage über jedes Feld (Attribut) in einer Tabelle, und Integration mit CloudWatch für Überwachung und Protokollierung. Wenn die Antwortzeit relativ höher ist, was in Mikrosekunden bedeutet, steht der DynamoDB Accelerator (DAX)-Dienst zur Verfügung, um die Antwortzeit für schließlich konsistente Daten zu verkürzen. Abbildung 3 zeigt eine DynamoDB-Tabelle.
Abbildung 3: DynamoDB-Tabelle
Rotverschiebung
Redshift ist eine Datenbank (Data Warehouse) für OLAP (Online Analytical Processing) von strukturierten Daten im Petabyte-Maßstab, die auf lokalen Festplatten unter Verwendung von SQL-Standards gespeichert sind, mit der Möglichkeit, die Abfrage auf unstrukturierte Daten im Exabyte-Maßstab zu erweitern, die in S3 mit Redshift Spectrum gespeichert sind. Offene Datenformate wie CSV, TSV, Parquet, Sequence und RCFile können mit Redshift Spectrum verwendet werden. Redshift bietet die gleichen Managed-Service-Funktionen wie die meisten AWS-Services wie Skalierbarkeit, Fehlertoleranz, automatisierte Backups, Verschlüsselung, Integration für Überwachung und Protokollierung mit CloudWatch und Netzwerkisolation mit VPC. Redshift bietet benutzerdefinierte ODBC- und JDBC-Treiber zusätzlich zu standardmäßigen PostgreSQL-ODBC- und -JDBC-Treibern für den Zugriff über häufig verwendete SQL-Clients. Auf einen Redshift-Cluster kann an einem bereitgestellten Endpunkt zugegriffen werden, wie für einen Redshift-Cluster in Abbildung 4 gezeigt.
Abbildung 4: Redshift-Cluster
ElasticCache
Amazon ElasticCache ist ein verteilter In-Memory-Cache in der Cloud. Für einen ElasticCache-Cluster sind zwei Cluster-Engine-Optionen verfügbar, ElasticCache for Redis und Memcached. ElasticCache for Redis ist ein speicherinterner Datenstrukturspeicher, der als Datenbank, Cache und Nachrichtenbroker verwendet werden kann. Memcache ist ein hochleistungsfähiger Cache für verteilte Speicherobjekte, der entwickelt wurde, um dynamische Webanwendungen schneller zu machen. Wie in Abbildung 5 gezeigt, sind mehrere Knotentypoptionen verfügbar, die für einen Cache ausgelegt sind.
Abbildung 5: Cache-Knotentypen
Reservierte Knoten sind für einen ElasticCache verfügbar. Automatisierte Backups und SNS-Benachrichtigungen sind mit ElasticCache verfügbar. Memcache-Cluster-Clients von ElasticCache sind für verschiedene Sprachen verfügbar:.NET, Java und PHP. Der PHP-Client ist für mehrere PHP-Versionen von PHP 5.3 bis PHP 7.0 verfügbar. Eine ElasticCache-Datenbank ist in Abbildung 6 dargestellt.
Abbildung 6: Redis ElasticCache
Datenbanken auf Oracle Cloud Platform
Oracle Cloud Services Platform umfasst den Oracle Database Cloud Service für Oracle Database und den Oracle MySQL Cloud Service für die MySQL-Datenbank. Die Oracle Cloud Services sind ebenso wie die AWS-Services in verschiedene Kategorien eingeteilt. Der Oracle Database Cloud Service ist jedoch für die Datenbanken vorgesehen, die Oracle IaaS Cloud Services für die Infrastruktur, die zum Ausführen der Datenbanken in der Cloud erforderlich ist.
Oracle-Datenbank
Oracle Database on the Cloud ist in mehr Editionen als eine eigenständige Datenbank verfügbar, wie in Abbildung 7 gezeigt.
Abbildung 7: Oracle Database on Cloud-Editionen
Um Oracle Database on the Cloud zu erstellen, klicken Sie im Oracle Database Cloud Service-Dashboard auf Create Service, wie in Abbildung 8 gezeigt.
Abbildung 8: Erstellen eines Oracle Database Cloud Service
Unterstützte Datenbankeditionen sind 11g R2, 12c R1 und 12c R2, wie in Abbildung 9 gezeigt.
Abbildung 9: Oracle Database-Editionen
Wenn 12c verwendet wird, wird standardmäßig eine Pluggable Database erstellt, für die ein PDB-Name konfiguriert werden muss (siehe Abbildung 10). Für Sicherung und Wiederherstellung sind folgende Optionen verfügbar:Datenträger, Cloud, Datenträger &Cloud und Keine.
Abbildung 10: Konfigurieren eines Oracle Database 12c-Dienstes einschließlich einer PDB
Ein Oracle Database Cloud-Dienst wird im Dashboard in Abbildung 11 gezeigt.
Abbildung 11: Oracle Database Cloud Service
Für Oracle Database wird eine öffentliche IP erstellt, wie in Abbildung 12 gezeigt.
Abbildung 12: Öffentliche IP für Oracle Database Cloud Service
Die Datenbankressourcen umfassen die OCPUs, den Arbeitsspeicher und den Speicher, die ebenfalls in Abbildung 12 aufgelistet sind. Die OCPUs, der Arbeitsspeicher und der Speicher sind nicht einzeln konfigurierbar, aber es muss eine Berechnungsform mit vorausgewählten Einstellungen für die Ressourcen ausgewählt werden. Eine Datenbank kann nach oben oder unten skaliert werden, wie durch die Scale Up/Down-Option in Abbildung 13 gezeigt.
Abbildung 13: Hoch/Runter skalieren
Eine Berechnungsform kann im Dialogfeld Scale Up/Down ausgewählt werden, wie in Abbildung 14 gezeigt.
Abbildung 14: Auswählen einer Berechnungsform
Für einen Datenbankdienst sind Überwachungsmetriken verfügbar, wie in Abbildung 15 gezeigt.
Abbildung 15: Metriken überwachen
MySQL-Datenbank
Das Erstellen eines MySQL-Datenbankdienstes in Oracle Cloud ähnelt dem Erstellen eines Oracle-Datenbankdienstes. Zu den MySQL-Datenbankkonfigurationseinstellungen, die bereitgestellt werden müssen, gehören ein Dienstname (wie in Abbildung 16 gezeigt), ein Compute-Shape, nutzbarer Datenbankspeicher (GB), Administratorbenutzer (standardmäßig root), Administratorkennwort, Name des Datenbankschemas und Sicherung und Wiederherstellungskonfiguration.
Abbildung 16: Erstellen eines MySQL-Datenbankdienstes
Ein Verbindungsdeskriptor und eine öffentliche IP für einen MySQL-Datenbankdienst werden erstellt, wie in Abbildung 17 gezeigt.
Abbildung 17: MySQL-Datenbankdienst in Oracle Cloud
Oracle NoSQL-Datenbank
Oracle Cloud Service stellt auch einen Managed Service für die Oracle NoSQL-Datenbank bereit, deren Hauptfunktionen Hochverfügbarkeit, Transaktionen, parallele Abfragen, Datenspeicherung und -abfrage mit geringer Latenz sowie API-Unterstützung für mehrere Clientsprachen einschließlich C, Java und Node umfassen. Oracle NoSQL on the Cloud bietet ein flexibles Datenmodell mit Unterstützung für Key-Value, Tabellen und JSON für die Speicherung. Der Oracle NoSQL Cloud-Dienst bietet ein dynamisches Anwendungsschema und ist hochleistungsfähig, indem er eine wertbasierte Indizierung verwendet, die einfache und komplexe Typen (Maps und Arrays) für effiziente Abfrageergebnisse und konsistente Indizes indiziert, die gemeinsam genutzte lokale Indizes sind. Die Verwaltung von Oracle NoSQL on the Cloud wird durch automatisierten Lastenausgleich für einen effizienten Datenzugriff über einen Cluster vereinfacht. Das Cluster-Management umfasst Skalierung und parallele Upgrades. Oracle NoSQL Database Cloud Service ist „demnächst verfügbar.“
Schlussfolgerung
In diesem Artikel haben wir die von AWS und Oracle Cloud Platform bereitgestellten Datenbankdienste untersucht. Die Datenbanken auf AWS und Oracle Cloud sind verwaltete Dienste mit Funktionen, die in einem relativ kleinen lokalen Datenbankdienst nicht realisierbar sind.