View a markdown version of this page

Amazon DocumentDB-Migrationsrunbook - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon DocumentDB-Migrationsrunbook

Dieses Runbook bietet eine umfassende Anleitung für die Migration einer MongoDB-Datenbank zu Amazon DocumentDB mithilfe von (DMS). AWS Database Migration Service Es wurde entwickelt, um Datenbankadministratoren, Cloud-Ingenieure und Entwickler während des gesamten Migrationsprozesses zu unterstützen — von der ersten Erkennung bis zur Validierung nach der Migration.

Angesichts der Unterschiede in der Implementierung und den unterstützten Funktionen zwischen MongoDB und Amazon DocumentDB betont dieses Runbook einen strukturierten und systematischen Ansatz. Es beschreibt wichtige Bewertungen vor der Migration, hebt Kompatibilitätsaspekte hervor und beschreibt die wichtigsten Aufgaben, die für eine erfolgreiche Migration mit minimalen Unterbrechungen erforderlich sind.

Das Runbook ist in die folgenden Themen gegliedert:

  • Kompatibilität— Machen Sie sich mit den unterstützten MongoDB-Funktionen und Datentypen in Amazon DocumentDB vertraut und identifizieren Sie potenzielle Inkompatibilitäten.

  • Workload-Erkennung— Analysieren Sie bestehende MongoDB-Workloads, einschließlich read/write Muster, Datenmengen und Leistungsbasislinien.

  • Index-Migration— Analysieren Sie Strategien zum Extrahieren und Transformieren von MongoDB-Indizes für eine optimale Leistung in Amazon DocumentDB.

  • Benutzermigration— Erläutern Sie den Ansatz für die Migration von Datenbankbenutzern, Rollen und Zugriffskontrollen zu Amazon DocumentDB.

  • Datenmigrationen— Behandeln Sie verschiedene Methoden für die Datenmigration mithilfe von AWS DMS CDC (Full Load and Change Data Capture).

  • Überwachen— Erläutern Sie die verschiedenen Überwachungsansätze bei der Migration mithilfe von DMS oder nativen Tools.

  • Validierung— Stellen Sie Verfahren für Datenintegritätsprüfungen, Funktionsvalidierung und Leistungsvergleich nach der Migration bereit.

Indem die Teams die Anweisungen in diesem Runbook befolgen, können sie einen reibungslosen, sicheren und effizienten Übergang zu Amazon DocumentDB sicherstellen und gleichzeitig die Anwendungsfunktionalität beibehalten und Risiken minimieren.

Kompatibilität

Bei der Migration von MongoDB zu Amazon DocumentDB sind eine gründliche Erstbewertung und Überprüfung der Funktionskompatibilität für eine erfolgreiche Migration unerlässlich. Dieser Prozess beginnt mit einer umfassenden Bestandsaufnahme Ihrer MongoDB-Funktionen, einschließlich Aggregationspipeline-Operatoren, Abfragemustern, Indizes und Datenmodellen.

Da Amazon DocumentDB mit den MongoDB-APIs 3.6, 4.0, 5.0 und 8.0 kompatibel ist, müssen Anwendungen, die neuere MongoDB-specific Funktionen verwenden, möglicherweise überarbeitet werden. Zu den kritischen Bereichen, die bewertet werden müssen, gehören Sharding-Mechanismen (Amazon DocumentDB verwendet einen anderen Ansatz), Transaktionsimplementierungen, Change-Stream-Funktionen und Indextypen (insbesondere spärliche und partielle Indizes).

Die Leistungsmerkmale unterscheiden sich ebenfalls. Amazon DocumentDB ist für Unternehmens-Workloads mit vorhersehbarer Leistung optimiert. Bei den Tests sollten repräsentative Workloads auf beiden Systemen ausgeführt werden, um Abfragemuster zu identifizieren, die möglicherweise optimiert werden müssen.

Während der Bewertungsphase ist es wichtig, die Ausführungspläne zu überwachen, um potenzielle Leistungslücken zu erkennen. Dies hilft dabei, einen klaren Migrationsplan zu erstellen, notwendige Anwendungsänderungen zu identifizieren und realistische Zeitpläne für einen reibungslosen Übergang festzulegen.

Kompatibilität der wichtigsten Funktionen

Umfassende Unterstützung von Funktionen

  • CRUD-Operationen — Genießen Sie die volle Unterstützung für alle grundlegenden Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge, einschließlich Massen- und Abfrageoperatoren, und sorgen Sie so für eine nahtlose Anwendungskompatibilität.

  • Umfassende Indizierungsfunktionen — Nutzen Sie die umfassende Unterstützung für Einzelfeld-, Verbund-, TTL-, Teil-, Sparse- und 2dSphere-Indizes, um Ihre Abfrageleistung und Textindizes (Version 5) für textbasierte Suchvorgänge zu optimieren.

  • Enterprise-grade Replikation — Profitieren Sie von einem robusten automatischen Failover-Mechanismus mit Read Replicas für eine überragende Hochverfügbarkeit ohne Betriebsaufwand.

  • Fortschrittliche Backup-Lösungen — Mit dem automatisierten Backup-System mit Point-in-Time Recovery (PITR) und manuellen Snapshots auf Abruf zur Datensicherung können Sie sich keine Sorgen machen.

Verbessert AWS-integrierte Funktionen

  • Optimierte Aggregation — Nutzen Sie die am häufigsten verwendeten Aggregationsstufen ($match, $group $sort$project, usw.) mit optimierter Leistung für Unternehmens-Workloads.

  • Transaktionsunterstützung — Implementieren Sie Transaktionen mit mehreren Dokumenten und Sammlungen, perfekt für die meisten Geschäftsanwendungen.

  • Real-time Datenverfolgung — Aktivieren Sie Change-Streams mit einem einfachen Befehl und verlängern Sie die Aufbewahrungsdauer von Change-Streams mithilfe einer einfachen Parametergruppeneinstellung für die Überwachung von Datenänderungen in Echtzeit.

  • Location-based Dienste — Implementieren Sie Geodatenanwendungen mit Unterstützung für $geoNear Operator- und 2dSphere-Indizes.

  • Textsuchfunktionen — Nutzen Sie die integrierte Textsuchfunktion für die Suche nach Inhalten.

Vorteile einer modernen Architektur

  • Cloud-native Design — Genießen Sie eine AWS optimierte Architektur, die ältere Funktionen ersetzt, z. B. MapReduce durch effizientere Aggregations-Pipeline-Abläufe.

  • Verbesserte Sicherheit — Profitieren Sie von AWS Identity and Access Management (IAM),, SCRAM-SHA-1 SCRAM-SHA-256, X.509 Zertifikatsauthentifizierung und kennwortbasierter Authentifizierung.

  • Vorhersagbare Leistung — Erleben Sie eine konsistente Leistung, die speziell für Unternehmens-Workloads optimiert wurde.

Einen umfassenden Überblick über die Funktionen von Amazon DocumentDB finden Sie unter Unterstützte MongoDB-APIs, Operationen und Datentypen in Amazon DocumentDB und Funktionale Unterschiede: Amazon DocumentDB und MongoDB zur Maximierung des Potenzials Ihrer Datenbank.

Amazon DocumentDB unterstützt nicht alle von MongoDB angebotenen Indizes. Wir stellen ein kostenloses Index-Tool zur Verfügung, um die Kompatibilität zu überprüfen. Führen Sie das Index-Tool aus, um die Inkompatibilität zu beurteilen und entsprechende Problemumgehungen zu planen.

Tool zur Kompatibilitätsbewertung von Amazon DocumentDB

Das Kompatibilitätstool von MongoDB zu Amazon DocumentDB ist ein Open-Source-Hilfsprogramm, das unter verfügbar ist und hilft GitHub , die Kompatibilität von MongoDB-Workloads mit Amazon DocumentDB zu bewerten, indem es MongoDB-Protokolle oder den Quellcode der Anwendung analysiert.

Schlüssel-Features

  • Identifiziert die Nutzungsmuster der MongoDB-API in Ihrer Arbeitslast

  • Weist vor der Migration auf potenzielle Kompatibilitätsprobleme hin

  • Generiert detaillierte Kompatibilitätsberichte mit Empfehlungen

  • Verfügbar als eigenständiges Hilfsprogramm, das lokal ausgeführt werden kann

Bewertungsmethoden

Log-based Bewertung

  • Vorteile:

    • Erfasst das tatsächliche Laufzeitverhalten und Abfragemuster

    • Identifiziert reale Nutzungshäufigkeiten und Leistungsmerkmale

    • Erkennt dynamische Abfragen, die im Quellcode möglicherweise nicht sichtbar sind

    • Kein Zugriff auf den Quellcode der Anwendung erforderlich

  • Nachteile:

    • Erfordert Zugriff auf MongoDB-Protokolle mit aktivierter Profilerstellung

    • Erfasst nur Vorgänge, die während des Protokollierungszeitraums stattgefunden haben

    • Eventuell fehlen selten genutzte Funktionen oder saisonale Arbeitslasten

Analyse des Quellcodes

  • Vorteile:

    • Umfassende Abdeckung aller potenziellen MongoDB-Operationen in der Codebasis

    • Kann Probleme in selten ausgeführten Codepfaden identifizieren

    • Erkennt clientseitige Logik, die von Amazon DocumentDB-Unterschieden betroffen sein könnte

    • Die Anwendung muss nicht ausgeführt werden, um die Bewertung durchzuführen

  • Nachteile:

    • Kann Code kennzeichnen, der zwar existiert, aber in der Produktion nie ausgeführt wird

    • Erfordert Zugriff auf den vollständigen Quellcode der Anwendung

    • Eingeschränkte Fähigkeit zur Analyse dynamisch erstellter Abfragen

Optimale Ergebnisse erzielen Sie, wenn möglich, mit beiden Bewertungsmethoden, um sich vor der Migration ein vollständiges Bild der Kompatibilitätsprobleme zu machen.

Workload-Erkennung

Die Migration von MongoDB zu Amazon DocumentDB erfordert ein gründliches Verständnis der bestehenden Datenbank-Arbeitslast. Bei der Workload-Erkennung werden Ihre Datenbanknutzungsmuster, Datenstrukturen, Abfrageleistung und betriebliche Abhängigkeiten analysiert, um einen nahtlosen Übergang mit minimalen Unterbrechungen zu gewährleisten. In diesem Abschnitt werden die wichtigsten Schritte zur Workload-Erkennung beschrieben, um eine effektive Migration von MongoDB zu Amazon DocumentDB zu ermöglichen.

Bewertung der bestehenden MongoDB-Bereitstellung

Vor der Migration ist es wichtig, die aktuelle MongoDB-Umgebung zu evaluieren, einschließlich:

  • Cluster-Architektur — Identifizieren Sie die Anzahl der Knoten, Replikatsätze und Shardingkonfigurationen. Bei der Migration von MongoDB zu Amazon DocumentDB ist es wichtig, Ihre MongoDB-Sharding-Konfiguration zu verstehen, da Amazon DocumentDB kein benutzergesteuertes Sharding unterstützt. Anwendungen, die für eine geteilte MongoDB-Umgebung entwickelt wurden, benötigen architektonische Änderungen, da Amazon DocumentDB mit seiner speicherbasierten Architektur einen anderen Skalierungsansatz verwendet. Bei der Umstellung auf Amazon DocumentDB müssen Sie Ihre Strategie zur Datenverteilung anpassen und möglicherweise gemeinsam genutzte Sammlungen konsolidieren.

  • Speicher- und Datenvolumen — Messen Sie die Gesamtdaten- und Indexgröße Ihres Clusters. Ergänzen Sie dies mit dem Oplog-Review-Tool, um Schreibmuster und die Geschwindigkeit des Datenwachstums zu verstehen. Weitere Informationen zur Dimensionierung Ihres Clusters finden Sie unterDimensionierung der Instanz.

  • Arbeitslastmuster — Analysieren Sie den Lese- und Schreibdurchsatz, die Häufigkeit der Abfrageausführung und die Indexierungseffizienz.

  • Betriebsabhängigkeiten — Dokumentieren Sie alle Anwendungen, Dienste und Integrationen, die auf MongoDB basieren.

Identifizierung von Unterschieden im Datenmodell

Amazon DocumentDB ist es zwar MongoDB-compatible, es gibt jedoch Unterschiede bei den unterstützten Funktionen, wie z. B.:

  • Transaktionen — Amazon DocumentDB unterstützt ACID-Transaktionen, allerdings mit einigen. Einschränkungen

  • Schemadesign — Stellen Sie sicher, dass die Dokumentstrukturen, eingebetteten Dokumente und Verweise den Best Practices von Amazon DocumentDB entsprechen.

Abfrage- und Leistungsanalyse

Das Verständnis des Abfrageverhaltens hilft bei der Optimierung der Migration und der Leistung nach der Migration. Zu den wichtigsten zu analysierenden Bereichen gehören:

  • Langsame Abfragen — Identifizieren Sie Abfragen mit hoher Ausführungszeit mithilfe der Profiling-Tools von MongoDB.

  • Abfragemuster — Kategorisieren Sie gängige Abfragetypen, einschließlich CRUD-Operationen und -Aggregationen.

  • Indexnutzung — Beurteilen Sie, ob Indizes in Amazon DocumentDB effektiv genutzt werden oder optimiert werden müssen. Um die Indexnutzung zu beurteilen und die Leistung in Amazon DocumentDB zu optimieren, verwenden Sie die $indexStats Aggregations-Pipeline-Phase in Kombination mit der explain() Methode für Ihre kritischen Abfragen. Beginnen Sie mit der Ausführungdb.collection.aggregate([{$indexStats{}}]), um zu ermitteln, welche Indizes verwendet werden. Sie können eine detailliertere Analyse durchführen, indem Sie Ihre häufigsten Abfragen mit explainPlan ausführen.

  • Parallelität und Verteilung der Arbeitslast — Evaluieren Sie das Lese- und Schreibverhältnis, das Verbindungspooling und Leistungsengpässe.

Überprüfung der Sicherheit und Zugriffskontrolle

Authentifizierung und Autorisierung

  • MongoDB RBAC zu Amazon DocumentDB IAM und RBAC — Ordnen Sie die rollenbasierten Benutzer und Rollen für die Zugriffskontrolle von MongoDB den AWS Identity and Access Management (IAM-) Richtlinien und den Benutzern der Amazon DocumentDB SCRAM-Authentifizierung zu.

  • Strategie zur Benutzermigration — Planen Sie die Migration von Datenbankbenutzern, benutzerdefinierten Rollen und Rechten zu den von Amazon DocumentDB unterstützten Authentifizierungsmechanismen.

  • Rechteunterschiede — Identifizieren Sie MongoDB-Rechte ohne direkte Amazon DocumentDB-Entsprechungen (z. B. Cluster-Administrationsrollen).

  • Anwendungsauthentifizierung — Aktualisieren Sie die Verbindungszeichenfolgen und die Verwaltung der Anmeldeinformationen für die Passwortrichtlinien von Amazon DocumentDB. Sie können den Secrets Manager verwenden, um Ihre Anmeldeinformationen zu speichern und Passwörter zu rotieren.

  • Verwaltung von Dienstkonten — Richten Sie Prozesse für die Verwaltung der Anmeldeinformationen für Dienstkonten in ein AWS Secrets Manager.

  • Implementierung der geringsten Zugriffsrechte — Überprüfen und verfeinern Sie die Zugriffskontrollen, um die Prinzipien der geringsten Zugriffsrechte in der neuen Umgebung zu implementieren.

Verschlüsselung

Stellen Sie sicher, dass die Verschlüsselung im Ruhezustand und bei der Übertragung den Compliance-Anforderungen entspricht.

Netzwerkkonfiguration

Planen Sie die Einrichtung der Virtual Private Cloud (VPC) und die Regeln für Sicherheitsgruppen ein.

Überlegungen zum Betrieb und zur Überwachung

Um die Systemzuverlässigkeit aufrechtzuerhalten, sollte die Workload-Erkennung auch Folgendes beinhalten:

  • Sicherungs- und Wiederherstellungsstrategie — Evaluieren Sie die vorhandenen Sicherungsmethoden und die Sicherungsfunktionen von Amazon DocumentDB.

  • AWS Backup Integration — Nutzen Sie AWS Backup das zentrale Backup-Management für AWS Dienste wie Amazon DocumentDB.

  • CloudWatch Metriken — Ordnen Sie die MongoDB-Überwachungsmetriken den Amazon CloudWatch DocumentDB-Metriken für CPU, Arbeitsspeicher, Verbindungen und Speicher zu.

  • Performance Insights — Implementieren Sie Amazon DocumentDB Performance Insights, um die Datenbanklast zu visualisieren und Leistungsprobleme mithilfe detaillierter Abfrageanalysen zu analysieren.

  • Profiler — Konfigurieren Sie den Amazon DocumentDB-Profiler zur Erfassung langsam laufender Vorgänge (ähnlich dem Profiler von MongoDB, jedoch mit Amazon-Einstellungen). DocumentDB-specific

    • Über Parametergruppen mit entsprechenden Schwellenwerten aktivieren.

    • Analysieren Sie Profiler-Daten, um Optimierungsmöglichkeiten zu identifizieren

  • CloudWatch Ereignisse — Richten Sie eine ereignisgesteuerte Überwachung für Amazon DocumentDB-Cluster-Ereignisse ein.

    • Konfigurieren Sie Benachrichtigungen für Backup-Ereignisse, Wartungsfenster und Failovers.

    • Integrieren Sie Amazon SNS für Warnmeldungen und automatische Reaktionen AWS Lambda .

  • Auditprotokollierung — Planen Sie die Konfiguration der Auditprotokollierung ein, um Benutzeraktivitäten und sicherheitsrelevante Ereignisse nachzuverfolgen.

  • Verbesserte Überwachung — Ermöglichen Sie die erweiterte Überwachung granularer OS-level Kennzahlen in Intervallen von 1 Sekunde.

Index-Migration

Bei der Migration von MongoDB zu Amazon DocumentDB werden nicht nur Daten, sondern auch Indizes übertragen, um die Abfrageleistung aufrechtzuerhalten und den Datenbankbetrieb zu optimieren. In diesem Abschnitt wird der detaillierte, schrittweise Prozess zur Migration von Indizes von MongoDB zu Amazon DocumentDB beschrieben und gleichzeitig Kompatibilität und Effizienz gewährleistet.

Verwenden des Amazon DocumentDB-Indextools

Klonen Sie das Index-Tool

git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/index-tool
pip install -r requirements.txt

Exportieren Sie Indizes aus MongoDB (wenn Sie von MongoDB migrieren)

python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir mongodb_index_export --uri 'mongodb://localhost:27017'

Exportieren Sie Indizes aus Amazon DocumentDB (wenn Sie von Amazon DocumentDB migrieren)

python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir docdb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'

Indizes importieren

python3 migrationtools/documentdb_index_tool.py --restore-indexes --skip-incompatible --dir mongodb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'

Indizes verifizieren

python3 migrationtools/documentdb_index_tool.py --show-issues --dir mongodb_index_export

Benutzermigration

Die Migration von Benutzern von MongoDB zu Amazon DocumentDB ist für die Aufrechterhaltung der Zugriffskontrolle, Authentifizierung und Datenbanksicherheit unerlässlich. In diesem Abschnitt werden detaillierte Schritte zur erfolgreichen Migration von MongoDB-Benutzern unter Beibehaltung ihrer Rollen und Berechtigungen mithilfe des Amazon DocumentDB-Export-Benutzertools beschrieben.

Verwenden des Amazon DocumentDB-Tools zum Exportieren von Benutzern

Das Export Users tool exportiert Benutzer und Rollen aus MongoDB oder Amazon DocumentDB in JavaScript Dateien, die dann verwendet werden können, um sie in einem anderen Cluster neu zu erstellen.

Voraussetzungen

# Clone the repository git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/export-users
# Install required dependencies pip install pymongo

Schritt 1: Benutzer und Rollen exportieren

# Export users and roles to JavaScript files python3 docdbExportUsers.py \ --users-file mongodb-users.js \ --roles-file mongodb-roles.js \ --uri "mongodb://admin:password@source-host:27017/"

Schritt 2: Bearbeiten Sie die Benutzerdatei

// Example of how to update the users.js file // Find each user creation statement and add the password db.getSiblingDB("admin").createUser({ user: "appuser", // Add password here pwd: "newpassword", roles: [ { role: "readWrite", db: "mydb" } ] })

Schritt 3: Stellen Sie benutzerdefinierte Rollen in Amazon DocumentDB wieder her

# Import roles first mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-roles.js

Schritt 4: Benutzer in Amazon DocumentDB wiederherstellen

# Import users after roles are created mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-users.js

Wichtige Hinweise

  • Passwörter werden aus Sicherheitsgründen nicht exportiert und müssen manuell zur Datei users.js hinzugefügt werden.

  • Rollen müssen vor Benutzern importiert werden, um eine korrekte Rollenzuweisung zu gewährleisten.

  • Das Tool generiert JavaScript Dateien, die direkt mit der Mongo-Shell ausgeführt werden können.

  • Benutzerdefinierte Rollen und ihre Rechte bleiben während der Migration erhalten.

  • Dieser Ansatz ermöglicht die Überprüfung und Änderung der Benutzerberechtigungen vor dem Import.

Diese Methode bietet einen sicheren und flexiblen Ansatz für die Migration von Benutzern und Rollen von MongoDB zu Amazon DocumentDB und ermöglicht gleichzeitig das Zurücksetzen von Passwörtern während des Migrationsprozesses.

Datenmigrationen

Online-Migration

Dieser Abschnitt enthält detaillierte Schritte zur Durchführung einer Online-Migration von MongoDB zu Amazon DocumentDB, um minimale Ausfallzeiten und kontinuierliche Replikation AWS DMS zu ermöglichen. Zunächst richten Sie einen Amazon DocumentDB-Cluster als Ziel ein und stellen sicher, dass Ihre MongoDB-Instance ordnungsgemäß als Quelle konfiguriert ist. In der Regel ist für die Erfassung von Änderungsdaten der Replikat-Set-Modus erforderlich. Als Nächstes erstellen Sie eine DMS-Replikationsinstanz und definieren Quell- und Zielendpunkte mit den erforderlichen Verbindungsdetails. Nach der Validierung der Endpunkte konfigurieren und starten Sie eine Migrationsaufgabe, die das vollständige Laden der Daten, die fortlaufende Replikation oder beides umfassen kann.

Ziel konfigurieren (Amazon DocumentDB)

Anmerkung

Wenn Sie bereits einen Amazon DocumentDB-Cluster für die Migration bereitgestellt haben, können Sie diesen Schritt überspringen.

Erstellen Sie eine benutzerdefinierte Parametergruppe

Weitere Informationen finden Sie AWS CLI unter AWS-Managementkonsole oderErstellen von Amazon DocumentDB-Cluster-Parametergruppen.

Erstellen Sie einen Amazon DocumentDB-Cluster

Anmerkung

In diesem Handbuch finden Sie weitere Verfahren zum Erstellen eines Amazon DocumentDB-Clusters. Die Schritte in diesem Abschnitt beziehen sich jedoch speziell auf die Aufgabe, große Datenmengen auf einen neuen Cluster zu migrieren.

  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon DocumentDB-Konsole unter. https://console.aws.amazon.com/docdb

  2. Klicken Sie im Navigationsbereich auf Cluster.

    Tipp

    Wenn der Navigationsbereich auf der linken Seite des Bildschirms nicht angezeigt wird, wählen Sie links oben auf der Seite das Menüsymbol (Menu button.) aus.

  3. Wählen Sie in der Amazon DocumentDB-Managementkonsole unter Clusters die Option Create aus.

  4. Wählen Sie auf der Seite „Amazon DocumentDB-Cluster erstellen“ im Abschnitt Cluster-Typ die Option Instance-based Cluster aus (dies ist die Standardoption).

  5. Im Abschnitt Cluster-Konfiguration:

    • Geben Sie als Cluster-ID einen eindeutigen Namen ein, z. mydocdbcluster B. Beachten Sie, dass die Konsole alle Clusternamen in Kleinbuchstaben ändert, unabhängig davon, wie sie eingegeben werden.

    • Wählen Sie für Engine-Version 5.0.0 aus.

  6. Belassen Sie im Abschnitt Cluster-Speicherkonfiguration die Amazon DocumentDB-Standardeinstellung unverändert (dies ist die Standardoption).

  7. Im Abschnitt Instanzkonfiguration:

    • Wählen Sie für die DB-Instance-Klasse die Option Speicheroptimierte Klassen (einschließlich R-Klassen) aus (dies ist die Standardeinstellung).

    • Wählen Sie für Instance-Klasse eine Instance-Klasse aus, die auf der Arbeitslast basiert. Beispiel:

      • db.r6g.large: für kleinere Workloads

      • db.r6g.4xlarge: für größere Workloads

      Es hat sich bewährt, eine Instanz so groß wie möglich zu wählen, um den besten Durchsatz bei voller Auslastung zu erzielen, und die Skalierung nach Abschluss der Migration herunterskalieren.

    • Wählen Sie für Anzahl der Instanzen 1 Instance aus. Die Auswahl einer Instanz hilft, die Kosten zu minimieren. Skalieren Sie nach Abschluss der Volllast-Migration auf drei Instanzen, um eine hohe Verfügbarkeit zu gewährleisten.

  8. Geben Sie im Abschnitt Authentifizierung einen Benutzernamen für den Hauptbenutzer ein und wählen Sie dann Selbstverwaltet aus. Geben Sie ein Passwort ein und bestätigen Sie es.

  9. Wählen Sie im Abschnitt Netzwerkeinstellungen eine VPC- und Subnetzgruppe aus und konfigurieren Sie dann die VPC-Sicherheitsgruppe. Stellen Sie sicher, dass Ihre Amazon DocumentDB-Sicherheitsgruppe eingehende Verbindungen aus der Sicherheitsgruppe der DMS-Instance zulässt, indem Sie die Regeln für eingehenden Datenverkehr aktualisieren.

  10. Aktivieren Sie in Encryption-at-rest diesem Abschnitt die Verschlüsselung (empfohlen) und wählen Sie einen KMS-Schlüssel aus oder geben Sie ihn ein.

  11. Legen Sie im Abschnitt Backup die Aufbewahrungsdauer für Backups fest (1-35 Tage).

  12. Überprüfen Sie Ihre Konfiguration und wählen Sie Cluster erstellen.

    Die Bereitstellungszeit beträgt in der Regel zwischen 10 und 15 Minuten.

Quelle konfigurieren

MongoDB und Amazon DocumentDB können je nach Szenario beide als Migrationsquellen dienen:

  • MongoDB als Quelle — Häufig bei der Migration von einer lokalen oder einer selbstverwalteten MongoDB zu einer Amazon DocumentDB oder anderen Datenbankdiensten. AWS Erfordert die Ausführung im Replikatsatzmodus mit einem ausreichend großen Oplog (stellen Sie sicher, dass es so dimensioniert ist, dass alle Operationen während der Volllast ausgeführt werden können), um die Erfassung von Änderungsdaten während der Migration zu unterstützen.

  • Amazon DocumentDB als Quelle — Wird in der Regel für regionsübergreifende Replikation, Versions-Upgrades oder die Migration zu anderen Datenbankdiensten wie MongoDB Atlas verwendet. Erfordert die Erfassung laufender Änderungen change_stream_log_retention_duration während der Migration, Change Streams aktivieren indem der Parameter in der Cluster-Parametergruppe gesetzt wird. Stellen Sie sicher, dass Ihre change_stream_log_retention_duration Einstellung groß genug ist, um die Zeit abzudecken, die für den vollständigen Ladevorgang benötigt wird.

Bevor Sie mit der Migration beginnen, konfigurieren Sie Ihre Quelle so, dass der AWS DMS Zugriff möglich ist.

Erstellen Sie einen MongoDB-Benutzer mit den richtigen Berechtigungen:

db.createUser({ user: "dmsUser", pwd: "yourSecurePassword", roles: [{ role: "readAnyDatabase", db: "admin" }] })

Konfigurieren Sie das Netzwerk und die Authentifizierung.

Bei der Konfiguration der Netzwerkkonnektivität für die Migration von MongoDB zu DMS:

EC2-hosted MongoDB-Quelle

  • Ändern Sie die EC2-Sicherheitsgruppe, um eingehenden Datenverkehr von der Sicherheitsgruppe der DMS-Replikationsinstanz zuzulassen.

  • Fügen Sie eine Regel für den TCP-Port 27017 (oder Ihren benutzerdefinierten MongoDB-Port) hinzu.

  • Verwenden Sie die Sicherheitsgruppen-ID der DMS-Replikationsinstanz als Quelle für eine präzise Zugriffskontrolle.

  • Stellen Sie sicher, dass das Subnetz der EC2-Instance eine Route zum Subnetz der DMS-Replikationsinstanz hat.

On-premises MongoDB-Quelle

  • Konfigurieren Sie Ihre Firewall so, dass eingehende Verbindungen von den öffentlichen IP-Adressen der DMS-Replikationsinstanz zugelassen werden.

  • Wenn Sie ein Direct Connect oder ein VPN verwenden, stellen Sie sicher, dass das Routing zwischen Ihrem Netzwerk und der VPC, die die DMS-Instanz enthält, korrekt ist.

  • Testen Sie die Konnektivität mit Telnet- oder NC-Befehlen vom DMS-Subnetz zu Ihrem MongoDB-Server.

MongoDB Atlas-Quelle

  • Fügen Sie der MongoDB Atlas-IP-Zulassungsliste die IP-Adressen einer DMS-Replikationsinstanz hinzu.

  • Konfigurieren Sie das VPC-Peering zwischen AWS VPC und MongoDB Atlas VPC, wenn Atlas ausgeführt wird. AWS

  • AWS PrivateLink Richten Sie private Konnektivität (Enterprise-Stufe) ein, wenn Sie auf einem anderen Cloud-Anbieter ausgeführt werden.

  • Erstellen Sie einen dedizierten Benutzer mit den entsprechenden read/write Berechtigungen.

  • Verwenden Sie eine MongoDB Atlas-Verbindungszeichenfolge, bei der der SSL-Modus auf „verify-full“ gesetzt ist.

  • Stellen Sie sicher, dass die Log-Größe für die Dauer der Migration ausreicht.

Amazon DocumentDB-Quelle

Konfigurieren Sie Ihre Amazon DocumentDB-Sicherheitsgruppe als Quelle so, dass eingehender Datenverkehr von der Sicherheitsgruppe der DMS-Replikationsinstanz zugelassen wird.

Erstellen Sie eine DMS-Replikationsinstanz

Verwenden Sie DMS Buddy, um Ihre DMS-Infrastruktur bereitzustellen. Es schafft eine optimale Migrationsinfrastruktur mit optimalen DMS-Einstellungen und Instanzgrößen.

Wenn Sie es vorziehen, manuell zu konfigurieren, gehen Sie wie folgt vor:

  1. Öffnen Sie die AWS DMS-Konsole und wählen Sie Replikationsinstanz erstellen.

  2. Geben Sie Details zur Replikationsinstanz ein:

    • Instanzname: Wählen Sie einen eindeutigen Namen.

    • Instanzklasse: Wählen Sie basierend auf der Arbeitslast aus. Beispiel: dms.r5.large (kleine Workloads), dms.r5.4xlarge (große Workloads).

    • Version der Engine: 3.5.4

    • Zugewiesener Speicher: Die Standardeinstellung ist 100 GB (bei Bedarf erhöhen). Dies wird durch die Dokumentgröße updates/second und die Dauer des vollständigen Ladevorgangs bestimmt.

    • Multi-AZ Bereitstellung: Aktivieren Sie diese Option, falls erforderlich, für hohe Verfügbarkeit.

    • Wählen Sie dieselbe VPC wie Amazon DocumentDB.

    • Stellen Sie sicher, dass Sicherheitsgruppen eingehenden Datenverkehr von der Quelle und von Amazon DocumentDB zulassen.

  3. Wählen Sie Create replication instance und warten Sie, bis der Status verfügbar ist.

DMS-Endpunkte erstellen

Erstellen Sie einen Quellendpunkt

Für eine MongoDB-Quelle

  1. Wählen Sie in der DMS-Konsole im Navigationsbereich Migrieren oder Replizieren und dann Endpoints aus.

  2. Wählen Sie Endpunkt erstellen aus.

  3. Wählen Sie auf der Seite Endpunkt erstellen die Option Quellendpunkt aus.

  4. Gehen Sie im Abschnitt Endpunktkonfiguration wie folgt vor:

    • Geben Sie eine eindeutige und aussagekräftige Endpunkt-ID ein (z. B. „mongodb-source“).

    • Wählen Sie MongoDB als Quell-Engine.

    • Wählen Sie für Zugriff auf Endpunktdatenbank die Option Zugriffsinformationen manuell bereitstellen aus.

    • Geben Sie als Servernamen Ihren MongoDB server DNS name/IP address ein.

    • Geben Sie für Port 27017 ein (Standard-MongoDB-Port).

    • Wählen Sie für den Authentifizierungsmodus den entsprechenden Modus für Ihre Anwendung (password/SSL) (Standard ist Secrets Manager).

    • Wenn der Authentifizierungsmodus Passwort ist, geben Sie Folgendes an:

      • Benutzername und Passwort: Geben Sie die MongoDB-Anmeldeinformationen ein.

      • Datenbankname: Ihr Quelldatenbankname.

      • Authentifizierungsmechanismus: SCRAM-SHA-1 (Standard) oder geeigneter Mechanismus

  5. Belassen Sie für den Metadatenmodus die Standardeinstellung Dokument.

  6. Zusätzliche Verbindungsattribute:

    • authSource=admin (wenn die Authentifizierungsdatenbank unterschiedlich ist)

    • <your-replica-set-name>ReplicaSet= (erforderlich für CDC)

Für eine Amazon DocumentDB-Quelle

  1. Wählen Sie in der DMS-Konsole im Navigationsbereich Migrieren oder Replizieren und dann Endpoints aus.

  2. Wählen Sie Endpunkt erstellen aus.

  3. Wählen Sie auf der Seite Endpunkt erstellen die Option Quellendpunkt aus.

  4. Gehen Sie im Abschnitt Endpunktkonfiguration wie folgt vor:

    • Geben Sie eine eindeutige und aussagekräftige Endpunkt-ID ein (z. B. „docdb-source“).

    • Wählen Sie Amazon DocumentDB als Quell-Engine.

    • Wählen Sie für Zugriff auf Endpunktdatenbank die Option Zugriffsinformationen manuell bereitstellen aus.

    • Geben Sie als Servernamen Ihren source Amazon DocumentDB cluster endpoint ein.

    • Geben Sie 27017 als Port ein (Standardport für Amazon DocumentDB).

    • Wählen Sie für den SSL-Modus verify-full (empfohlen für Amazon DocumentDB).

    • Wählen Sie für das CA-Zertifikat das Amazon RDS-Root-CA-Zertifikat aus.

    • Wählen Sie für den Authentifizierungsmodus den für Ihre Anwendung geeigneten Modus (password/SSL) (die Standardeinstellung ist Secrets Manager).

    • Wenn der Authentifizierungsmodus Passwort ist, geben Sie Folgendes an:

      • Benutzername und Passwort: Geben Sie die Amazon DocumentDB-Anmeldeinformationen ein.

      • Datenbankname: Ihr Quelldatenbankname.

      • Authentifizierungsmechanismus: SCRAM-SHA-1 (Standard) oder geeigneter Mechanismus

  5. Belassen Sie für den Metadatenmodus die Standardeinstellung Dokument.

Erstellen Sie einen Zielendpunkt (Amazon DocumentDB)
  1. Wählen Sie in der DMS-Konsole im Navigationsbereich Migrieren oder Replizieren und dann Endpoints aus.

  2. Wählen Sie Endpunkt erstellen aus.

  3. Wählen Sie auf der Seite Endpunkt erstellen die Option Zielendpunkt aus.

  4. Gehen Sie im Abschnitt Endpunktkonfiguration wie folgt vor:

    • Geben Sie eine eindeutige und aussagekräftige Endpunkt-ID ein (z. B. „docdb-target“).

    • Wählen Sie Amazon DocumentDB als Ziel-Engine.

    • Wählen Sie für Zugriff auf die Endpunktdatenbank die Methode aus, mit der Sie den Zugriff auf die Datenbank authentifizieren möchten:

      • Wenn Sie AWS Secrets Manager wählen, wählen Sie im Feld Secret das Geheimnis aus, in dem Sie Ihre Amazon DocumentDB-Anmeldeinformationen speichern.

      • Wenn Sie „Zugangsinformationen manuell bereitstellen“ wählen:

        • Geben Sie als Servername Ihren eintarget Amazon DocumentDB cluster endpoint.

        • Geben Sie 27017 als Port ein (Standardport für Amazon DocumentDB).

        • Wählen Sie für den SSL-Modus verify-full (empfohlen für Amazon DocumentDB).

        • Laden Sie für das CA-Zertifikat das CA-Zertifikatspaket für die SSL-Überprüfung herunter und geben Sie es an.

        • Wählen Sie für den Authentifizierungsmodus den für Ihre Anwendung geeigneten Modus (password/SSL) (die Standardeinstellung ist Secrets Manager).

        • Wenn der Authentifizierungsmodus Passwort ist, geben Sie Folgendes an:

          • Benutzername und Passwort: Geben Sie die Amazon DocumentDB-Anmeldeinformationen ein.

          • Datenbankname: Ihr Quelldatenbankname.

          • Authentifizierungsmechanismus: SCRAM-SHA-1 (Standard) oder geeigneter Mechanismus

  5. Belassen Sie für den Metadatenmodus die Standardeinstellung Dokument.

Replikationsaufgabe erstellen

  1. Wählen Sie in der DMS-Konsole im Navigationsbereich Migrieren oder replizieren und dann Aufgaben aus.

  2. Wählen Sie Create task aus.

  3. Gehen Sie auf der Seite „Aufgabe erstellen“ im Abschnitt Aufgabenkonfiguration wie folgt vor:

    • Geben Sie eine eindeutige und aussagekräftige Task-ID ein (z. B. „mongodb-docdb-replication“).

    • Wählen Sie im Dropdownmenü Quelldatenbank-Endpunkt den Quellendpunkt aus, den Sie zuvor erstellt haben.

    • Wählen Sie den Zielendpunkt, den Sie zuvor erstellt haben, im Dropdownmenü Zieldatenbankendpunkt aus.

    • Wählen Sie als Aufgabentyp die Option Migrieren und replizieren aus.

  4. Im Abschnitt Einstellungen:

    • Belassen Sie für den Target-Tabellen-Vorbereitungsmodus die Standardeinstellung.

    • Belassen Sie die Standardeinstellung für Aufgabe nach Abschluss des vollständigen Ladevorgangs beenden.

    • Belassen Sie für LOB-Spalteneinstellungen die Einstellung für den begrenzten LOB-Modus unverändert.

    • Belassen Sie für die Datenvalidierung die Standardeinstellung Ausschalten.

    • Markieren Sie für Aufgabenprotokolle das Kontrollkästchen CloudWatch Protokolle einschalten.

    • Lassen Batch-optimized Sie für Anwenden die Standardeinstellung deaktiviert (aus).

  5. Zurück oben im Abschnitt Aufgabeneinstellungen wählen Sie im Bearbeitungsmodus den JSON-Editor und legen Sie die folgenden Attribute fest:

    { "TargetMetadata": { "ParallelApplyThreads": 5 }, "FullLoadSettings": { "MaxFullLoadSubTasks": 16 } }
  6. Fügen Sie im Abschnitt Tabellenzuordnungen eine neue Auswahlregel hinzu:

    • Fügen Sie für den Schemanamen die zu migrierende Quelldatenbank hinzu. Verwenden Sie%, um mehrere Datenbanken anzugeben.

    • Fügen Sie für den Namen der Schematabelle die Quellsammlung hinzu, die migriert werden soll. Verwenden Sie%, um mehrere Sammlungen anzugeben.

    • Belassen Sie für Aktion die Standardeinstellung Include

  7. Fügen Sie für große Sammlungen (über 100 GB) die Regel für Tabelleneinstellungen hinzu:

    • Fügen Sie für den Schemanamen die zu migrierende Quelldatenbank hinzu. Verwenden Sie%, um mehrere Datenbanken anzugeben.

    • Fügen Sie für den Namen der Schematabelle die Quellsammlung hinzu, die migriert werden soll. Verwenden Sie%, um mehrere Sammlungen anzugeben.

    • Geben Sie für Anzahl der Partitionen den Wert 16 ein (sollte kleiner als seinMaxFullLoadSubTask).

  8. Vergewissern Sie sich, dass im Abschnitt zur Bewertung vor der Migration die Option deaktiviert ist.

Offline-Migration

In diesem Abschnitt wird der Prozess zur Durchführung einer Offline-Migration von einer selbstverwalteten MongoDB-Instance zu Amazon DocumentDB mithilfe nativer MongoDB-Tools beschrieben: und. mongodump mongorestore

Voraussetzungen

Quelle: MongoDB-Anforderungen

  • Zugriff auf die MongoDB-Quellinstanz mit entsprechenden Berechtigungen.

  • Installierenmongodump. falls erforderlich (es wird während einer MongoDB-Installation installiert).

  • Stellen Sie sicher, dass genügend Speicherplatz für die Dump-Dateien vorhanden ist.

Target, Amazon DocumentDB-Anforderungen

  • Stellen Sie sicher, dass Sie einen Amazon DocumentDB-Cluster bereitgestellt haben.

  • Stellen Sie sicher, dass sich in derselben VPC wie Amazon DocumentDB eine EC2-Instance befindet, um die Migration zu erleichtern.

  • Die Netzwerkkonnektivität zwischen Ihrer Quellumgebung und Amazon DocumentDB muss verfügbar sein.

  • mongorestore muss auf der EC2-Migrationsinstanz installiert sein.

  • Für den Zugriff auf Amazon DocumentDB müssen entsprechende IAM-Berechtigungen konfiguriert werden.

Allgemeine Anforderungen

  • AWS CLI muss konfiguriert werden (wenn AWS Dienste für den Zwischenspeicher verwendet werden)

  • Für die Datenübertragung muss ausreichend Bandbreite verfügbar sein.

  • Das Ausfallzeitfenster sollte genehmigt werden (bei einer Live-Migration sollten Sie andere Ansätze in Betracht ziehen)

Bereiten Sie einen Amazon DocumentDB-Cluster vor

Erstellen Sie einen Amazon DocumentDB-Cluster in: AWS

  • Passen Sie eine Instanzgröße an, die auf Ihrer Arbeitslast basiert.

  • Konfigurieren Sie eine VPC, Subnetze und Sicherheitsgruppen.

  • Aktivieren Sie die erforderlichen Parameter über Parametergruppen.

Führen Sie den Datendump durch (mongodump)

Wählen Sie eine der folgenden Optionen, um eine Dump-Datei zu erstellen:

  • Option 1: Einfach

    mongodump -- uri="mongodb://<source_user>:<source_password>@<source_host>:<source_port>/<database>" -- out=/path/to/dump
  • Option 2: Bessere Steuerung und Leistung

    mongodump \ --uri="mongodb://<source_user>:<source_password>@<sourcehost>:<source_port>" \ --out=/path/to/dump \ --gzip \# Compress output --numParallelCollections=4 \# Parallel collections dump --ssl \# If using SSL --authenticationDatabase=admin \ # If auth is required --readPreference=secondaryPreferred # If replica set
  • Option 3: Große Datenbanken

    mongodump \ --host=<source_host> \ --port=<source_port> \ --username=<source_user> \ --password=<source_password> \ --db=<specific_db> \# Only dump specific DB --collection=<specific_collection> \ # Only dump specific collection --query='{ "date": { "$gt": "2020-01-01" } }' \ # Filter documents --archive=/path/to/archive.gz \# Single archive output --gzip \ --ssl

Übertragen Sie die Dump-Dateien in die Wiederherstellungsumgebung

Wählen Sie basierend auf Ihrer Dumpgröße eine geeignete Methode aus:

  • Klein — Kopieren Sie direkt auf Ihren Migrationscomputer (EC2-Instance, die Sie zuvor erstellt haben):

    scp -r /path/to/dump user@migration-machine:/path/to/restore
  • Mittel — Verwenden Sie Amazon S3 als Zwischenspeicher:

    aws s3 cp --recursive /path/to/dump s3://your-bucket/mongodb-dump/
  • Groß — Ziehen Sie bei sehr großen Datenbanken eine physische Übertragung in Betracht AWS DataSync .

Daten in Amazon DocumentDB wiederherstellen (mongorestore)

Bevor Sie den Wiederherstellungsvorgang starten, erstellen Sie die Indizes in Amazon DocumentDB. Sie können das Amazon DocumentDB Index-Tool verwenden, um Indizes zu exportieren und zu importieren.

Wählen Sie eine der folgenden Optionen, um Daten wiederherzustellen:

  • Option 1: Grundlegende Wiederherstellung

    mongorestore --uri="mongodb://<docdb_user>:<docdb_password>@<docdb_endpoint>:27017" /path/to/dump
  • Option 2: Bessere Steuerung und Leistung

    mongorestore \ --uri="mongodb://<docdb_user>:<docdb_password>@<docdb_endpoint>:27017" \ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ # DocumentDB CA cert --gzip \# If dumped with gzip --numParallelCollections=4 \# Parallel restoration --numInsertionWorkersPerCollection=4 \# Parallel documents insertion --noIndexRestore \# skip indexes as they are pre-created /path/to/dump
  • Option 3: Große Datenbanken oder spezifische Steuerelemente

    mongorestore \ --host=<docdb_endpoint> \ --port=27017 \ --username=<docdb_user> \ --password=<docdb_password> \ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ --archive=/path/to/archive.gz \# If using archive format --gzip \ --nsInclude="db1.*" \# Only restore specific namespaces --nsExclude="db1.sensitive_data" \ # Exclude specific collections if needed --noIndexRestore \# skip indexes as they are pre-created --writeConcern="{w: 'majority'}" # Ensure write durability

Überwachen

In diesem Abschnitt wird ein detailliertes Überwachungsverfahren zur Überwachung des Fortschritts, der Leistung und des Zustands einer laufenden Migration aus folgenden Quellen beschrieben:

MongoDB nach Amazon DocumentDB

oder

Amazon DocumentDB nach Amazon DocumentDB

Die Überwachungsschritte gelten unabhängig von der Migrationsmethode (AWS DMS, mongodump/mongorestore, oder anderen Tools).

AWS DMS Überwachung der Migration (falls zutreffend)

Überwachen Sie die folgenden wichtigen CloudWatch Kennzahlen:

Metriken für die Volllastphase

  • FullLoadThroughputBandwidthTarget— Netzwerkbandbreite (KB/second) bei Volllast

  • FullLoadThroughputRowsTarget— Anzahl der pro Sekunde rows/documents geladenen

  • FullLoadThroughputTablesTarget— Anzahl der tables/collections abgeschlossenen Dateien pro Minute

  • FullLoadProgressPercent— Prozentsatz der abgeschlossenen Volllast

  • TablesLoaded— Anzahl der tables/collections erfolgreich geladenen

  • TablesLoading— Anzahl der tables/collections aktuell geladenen

  • TablesQueued— Anzahl der Personen, die tables/collections darauf warten, geladen zu werden

  • TablesErrored— Anzahl der Dateien tables/collections , die nicht geladen werden konnten

Metriken für die CDC-Phase

  • CDCLatencyTarget— Zeitverzögerung (Sekunden) zwischen Quellwechsel und Zielanwendung

  • CDCLatencySource— Zeitverzögerung (Sekunden) zwischen der Änderung der Quelle und dem Lesen durch das DMS

  • CDCThroughputRowsTarget— Während der laufenden Replikation werden Zeilen pro Sekunde angewendet

  • CDCThroughputBandwidthTarget— Netzwerkbandbreite (KB/second) während CDC

  • CDCIncomingChanges— Anzahl der von der Quelle empfangenen Änderungsereignisse

  • CDCChangesMemoryTarget— Verwendeter Speicher (MB) zum Speichern von Änderungen auf der Zielseite

Metriken für Ressourcen

  • CPUUtilization — CPU-Auslastung der Replikationsinstanz

  • FreeableMemory— Verfügbarer Speicher auf der Replikationsinstanz

  • FreeStorageSpace— Verfügbarer Speicher auf der Replikationsinstanz

  • NetworkTransmitThroughput— Netzwerkdurchsatz für die Replikationsinstanz

  • NetworkReceiveThroughput— Netzwerkdurchsatz für die Replikationsinstanz

Fehler-Metriken

  • ErrorsCount— Gesamtzahl der Fehler während der Migration

  • TableErrorsCount— Anzahl der tabellenspezifischen Fehler

  • RecordsErrorsCount— Anzahl der datensatzspezifischen Fehler

Erstellen Sie CloudWatch Alarme für kritische Kennzahlen, z. B. CDCLatencyTarget um Benachrichtigungen CPUUtilization zu erhalten, wenn sich die Migrationsleistung verschlechtert.

DMS-Protokolle (Protokolle) CloudWatch

  1. Gehen Sie zur Amazon CloudWatch Logs-Konsole.

  2. Suchen Sie nach Ihrer Log-Gruppe und wählen Sie sie aus. Es wird ähnlich aussehen wie „dms-tasks —“.

  3. Suchen Sie nach Log-Streams, die möglicherweise Fehlerinformationen enthalten:

    • Streams mit „Fehler“ im Namen

    • Streams mit Aufgaben-IDs oder Endpunktnamen

    • Die neuesten Log-Streams zum Zeitpunkt Ihrer Migration

  4. Suchen Sie in diesen Streams nach Schlüsselwörtern wie:

    • „Fehler“

    • „Ausnahme“

    • „gescheitert“

    • „Warnung“

DMS-Aufgabenstatus (verwenden AWS CLI)

aws dms describe-replication-tasks --filters Name=replication-task id,Values=<task_id> --query "ReplicationTasks[0].Status"

Erwarteter Statusablauf:

erstellen → bereit → läuft → stoppen → gestoppt (oder fehlgeschlagen)

Monitor mit Docdb-Dashboarder

Das docdb-dashboarder Tool bietet eine umfassende Überwachung für Amazon DocumentDB-Cluster, indem es automatisch Dashboards mit wichtigen Leistungskennzahlen generiert CloudWatch . Diese Dashboards zeigen wichtige Metriken auf Cluster-Ebene (Replikatverzögerung, Betriebszähler), Metriken auf Instance-Ebene (CPU, Arbeitsspeicher, Verbindungen) und Speichermetriken (Volumennutzung, Backup-Speicher) an. Für Migrationsszenarien bietet das Tool spezielle Dashboards, die den Migrationsfortschritt anhand von Metriken wie CDC-Replikationsverzögerung und Betriebsraten verfolgen. Die Dashboards können mehrere Cluster gleichzeitig überwachen und bieten Unterstützung für Instances. NVMe-backed Durch die Visualisierung dieser Kennzahlen können Teams proaktiv Leistungsengpässe erkennen, die Ressourcenzuweisung optimieren und den reibungslosen Betrieb ihrer Amazon DocumentDB-Bereitstellungen sicherstellen. Das Tool macht die manuelle Erstellung von Dashboards überflüssig und bietet gleichzeitig eine konsistente Überwachung in allen Umgebungen. Anweisungen zur Einrichtung und erweiterte Konfigurationsoptionen finden Sie im Amazon DocumentDB Dashboarder Tool-Repository. GitHub

Validierung

Dieser Abschnitt enthält einen detaillierten Validierungsprozess zur Sicherstellung der Datenkonsistenz, Integrität und Anwendungskompatibilität nach der Migration von:

MongoDB zu Amazon DocumentDB

oder

Amazon DocumentDB nach Amazon DocumentDB

Die Validierungsschritte gelten unabhängig von der Migrationsmethode (AWS DMS mongodump/mongorestore, oder anderen Tools).

Checkliste für die Validierung

Stellen Sie sicher, dass die Anzahl der Dokumente in jeder Sammlung zwischen Quelle und Ziel übereinstimmt:

MongoDB-Quelle

mongo --host <source_host> --port <port> --username <user> -- password <password> --eval "db.<collection>.count()"

Amazon DocumentDB-Ziel

mongo --host <target_host> --port <port> --username <user> -- password <password> --eval "db.<collection>.count()"

Schema- und Indexvalidierung

Stellen Sie Folgendes sicher:

  • Alle Sammlungen sind im Ziel vorhanden.

  • Indizes werden korrekt repliziert.

  • Schemadefinitionen (falls erzwungen) sind identisch.

Überprüfen Sie die Sammlungen (Quelle oder Ziel)

mongo --host <source_host> --eval "show collections" mongo --host <target_host> --ssl --eval "show collections"

Indizes überprüfen (Quelle oder Ziel)

mongo --host <source_host> --eval" db.<collection>.getIndexes()" mongo --host <target_host> --ssl –eval" db.<collection>.getIndexes()"

Vergleichen Sie die Liste der Sammlungen, um sicherzustellen, dass keine Sammlungen fehlen oder zusätzliche Sammlungen vorhanden sind.

Überprüfen Sie Indizes, indem Sie Indexnamen, Schlüsseldefinitionen, eindeutige Einschränkungen und TTL-Indizes (falls vorhanden) überprüfen.

Überprüfen Sie die Schemavalidierungsregeln (wenn Sie die Schemavalidierung in MongoDB verwenden)

mongo --host <source_host> --eval" db.getCollectionInfos({name: '<collection>'}) [0].options.validator" mongo --host <target_host> --ssl –eval" db.getCollectionInfos({name: '<collection>'})[0].options.validator"

Datenstichprobenentnahme und Validierung auf Feldebene

Sie können Dokumente nach dem Zufallsprinzip auswählen und Felder zwischen Quelle und Ziel vergleichen.

Manuelle Probenentnahme

Rufe fünf zufällige Dokumente ab (Quelle):

mongo --host <source_host> --eval "db.<collection>.aggregate([{ \$sample: { size: 5 } }])"

Ruft dieselben Dokument-IDs ab (Ziel):

mongo --host <target_host> --ssl –eval "db.<collection>.find({ _id: { \$in: [<list_of_ids>] } })"

Automatische Probenentnahme

import pymongo # Connect to source and target source_client = pymongo.MongoClient("<source_uri>") target_client = pymongo.MongoClient("<target_uri>", ssl=True) source_db = source_client["<db_name>"] target_db = target_client["<db_name>"] # Compare 100 random documents for doc in source_db.<collection>.aggregate([{ "$sample": { "size": 100 } }]): target_doc = target_db.<collection>.find_one({ "_id": doc["_id"] }) if target_doc != doc: print(f"❌ Mismatch in _id: {doc['_id']}") else: print(f"✅ Match: {doc['_id']}")

Validierung mit einem DataDiffer Tool

Das DataDiffer Tool bietet eine zuverlässige Möglichkeit, Daten zwischen Quell- und Zieldatenbanken zu vergleichen.

Voraussetzungen

Die folgenden Voraussetzungen müssen vor der Installation des DataDiffer Tools erfüllt sein:

  • Python 3.7+

  • PyMongo Bibliothek

  • Netzwerkkonnektivität sowohl zu MongoDB-Quellclustern als auch zu Amazon DocumentDB-Zielclustern

Einrichtung und Installation

Klonen Sie das Repository und navigieren Sie zum Verzeichnis DataDiffer

git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/data-differ

Installieren Sie die erforderlichen Abhängigkeiten

pip install -r requirements.txt

Datenvalidierung ausführen

Erstellen Sie eine Konfigurationsdatei (z. B. config.json) mit Verbindungsdetails

{ "source": { "uri": "mongodb://username:password@source-mongodb- host:27017/?replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "target": { "uri": "mongodb://username:password@target-docdb- cluster.region.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global- bundle.pem&replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "options": { "batch_size": 1000, "threads": 4, "sample_size": 0, "verbose": true } }

Führen Sie das Tool aus DataDiffer

python differ.py --config config.json

Verwenden Sie bei großen Sammlungen Stichproben, um eine Teilmenge von Daten zu validieren

python differ.py --config config.json --sample-size 10000

Um mehrere Sammlungen zu validieren, erstellen Sie separate Konfigurationsdateien oder verwenden Sie den Batch-Modus

python differ.py --batch-config batch_config.json

Ergebnisse interpretieren

Das Tool gibt Folgendes aus:

  • Gesamtzahl der Dokumente in Quelle und Ziel

  • Anzahl übereinstimmender Dokumente

  • Anzahl der fehlenden Dokumente

  • Anzahl der Dokumente mit Unterschieden

  • Detaillierter Bericht über Unterschiede (falls vorhanden)

Bewährte Methoden

Im Folgenden finden Sie bewährte Methoden bei der Verwendung des DataDiffer Tools:

  • Schrittweise ausführen — Überprüfen Sie zunächst die Anzahl der Dokumente, nehmen Sie dann Stichproben wichtiger Dokumente vor und führen Sie schließlich bei Bedarf einen vollständigen Vergleich durch.

  • Suchen Sie nach Schemaunterschieden — Amazon DocumentDB hat im Vergleich zu MongoDB einige Einschränkungen. Das Tool hebt inkompatible Datentypen oder Strukturen hervor.

  • In Ruhephasen validieren — Führen Sie die Validierung aus, wenn nur wenige Schreibvorgänge erforderlich sind, um die Konsistenz zu gewährleisten.

  • Überwachen Sie die Ressourcennutzung — Der Vergleichsprozess kann ressourcenintensiv sein. Passen Sie die Chargengröße und die Threadanzahl entsprechend an.

  • Indizes validieren — Stellen Sie nach der Datenvalidierung sicher, dass alle erforderlichen Indizes auf dem Amazon DocumentDB-Zielcluster erstellt wurden.

  • Ergebnisse der Dokumentenvalidierung — Führen Sie als Teil Ihrer Migrationsdokumentation Aufzeichnungen über die Validierungsergebnisse für jede Sammlung.