In diesem Dokument wird beschrieben, wie Sie die RIOT-Live-Migration zur Migration zu Redis Enterprise Cloud bereitstellen. Datenbankarchitekten, DevOps- und SRE-Teams oder Netzwerkadministratoren können diese Architektur verwenden, um ihren Teams Migrationen praktisch ohne Ausfallzeiten anzubieten. In diesem Dokument wird davon ausgegangen, dass Sie mit der Verwendung der Google Cloud CLI und Compute Engine vertraut sind.
Architektur
Das folgende Diagramm zeigt die Referenzarchitektur, die den RIOT Live-Migration Service zum Migrieren von Redis-kompatiblen Quellen zu Redis Enterprise Cloud verwendet.
Weitere Informationen zur Architektur finden Sie unter RIOT-Live-Migration zur Migration zu Redis Enterprise Cloud.
Die Beispielbereitstellung in diesem Dokument verwendet die folgende Architektur, in der die Quelle ein Redis-OSS auf einer Compute Engine-VM ist:
Im Diagramm werden eine Redis OSS-Instanz und ein RIOT der Einfachheit halber in einer einzigen Compute Engine-VM zusammengefasst. In einer Produktionsumgebung empfehlen wir, dass RIOT immer auf einer eigenen VM ausgeführt wird, um eine bessere Leistung zu gewährleisten.
Die Beispiel-Bereitstellungsarchitektur enthält die folgenden Komponenten:
- Quelle: Redis OSS-Instanz, die auf der Compute Engine-VM ausgeführt wird.
- Ziel: Redis Enterprise Cloud, das in der verwalteten Redis-VPC ausgeführt wird.
- Migrationsdienst: RIOT wird auf derselben Compute Engine-VM wie Redis OSS ausgeführt.
- Netzwerkeinrichtung: VPC-Peering zwischen einer verwalteten VPC und der von Redis verwalteten VPC.
Das RIOT-Migrationstool hat praktisch keine Ausfallzeiten. Während der Migration von Redis OSS (Quelle) zur Redis Enterprise Cloud (Ziel) können Ihre Anwendungen weiterhin ohne Beeinträchtigung oder Dienstunterbrechung auf Redis OSS zugreifen. Während des Migrationsprozesses migriert RIOT Live Migration nach dem anfänglichen Laden von Daten aus Redis OSS weiterhin Änderungen von Redis OSS, sobald sie auftreten.
Lernziele
- Ihre Redis OSS-Quelle durch Erstellen und Laden von Daten einrichten.
- Einen Migrationszielcluster in Redis Enterprise Cloud einrichten
- Verwenden Sie die RIOT Live-Migration, um Daten von Redis OSS zu Redis Enterprise Cloud zu migrieren.
- Informationen zu Test-, Umstellungs- und Fallback-Strategien
Kosten
Für die Bereitstellung dieser Architektur werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:
- Compute Engine-Kosten für die Ausführung von Redis OSS- und RIOT-Instanzen
- Redis Enterprise Cloud-Kosten, die über den Google Cloud Marketplace verursacht werden.
- Netzwerkgebühren für Traffic zur Datenmigration zwischen Zonen und Regionen
Hinweise
Führen Sie die folgenden Schritte aus, um eine Umgebung für die Migration einzurichten.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
BigQuery, Pub/Sub, Dataflow, and Compute Engine APIs aktivieren.
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Abrechnungsadministrator“ (
roles/billing.admin
) für Ihre Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie für diese Bereitstellung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Redis OSS-Instanz einrichten
Zum Starten der Bereitstellung installieren Sie die Redis OSS-Instanz auf einer Compute Engine-VM. Die Instanz dient als Quellinstanz.
Redis OSS-Instanz installieren
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Erstellen Sie in Cloud Shell eine Ubuntu-VM:
gcloud compute instances create redis-oss-riot-vm \ --image-family=ubuntu-2004-lts \ --image-project=ubuntu-os-cloud \ --zone=us-central1-a \ --machine-type=e2-medium \ --network=VPC_NETWORK_NAME \ --subnet=VPC_SUBNETWORK_NAME \ --metadata=startup-script='#! /bin/bash apt-get update -y apt-get install redis-tools -y snap install redis'
Ersetzen Sie Folgendes:
VPC_NETWORK_NAME
: Der Name des VPC-Netzwerks.VPC_SUBNETWORK_NAME
: Der Name Ihres VPC-Subnetzwerks.
Verwenden Sie eine SSH-Verbindung, um sich bei der Compute Engine-Instanz anzumelden, auf der die Redis OSS-Instanz ausgeführt wird:
PROJECT_ID=$(gcloud info --format='value(config.project)') gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
Aktivieren Sie die Keyspace-Benachrichtigung für die Live-Migration, die für RIOT erforderlich ist:
redis-cli config set notify-keyspace-events KEA
Prüfen, ob die Redis OSS-Instanz betriebsbereit ist
Starten Sie in Cloud Shell die Redis-Befehlszeile:
redis-cli
Legen Sie ein einfaches Schlüssel/Wert-Paar fest und rufen Sie es ab:
set my_key my_value get my_key unlink my_key
Die Ausgabe sieht so aus:
OK "my_value" (integer) 1
Sie haben jetzt Ihre Redis OSS-Instanz erstellt, darauf zugegriffen und bestätigt, dass sie betriebsbereit ist.
Beispieldaten einfügen
In diesem Abschnitt fügen Sie Beispieldaten in die Redis OSS-Instanz ein und prüfen, ob die Daten erfolgreich eingefügt wurden.
Starten Sie die Redis-Befehlszeile in Cloud Shell:
redis-cli
Fügen Sie die folgenden sechs Schlüssel/Wert-Paare als erstes Dataset hinzu. Geben Sie jeden Befehl einzeln ein und warten Sie auf die Ausgabe
OK
, bevor Sie das nächste Schlüssel/Wert-Paar eingeben.set tennis federer
set soccer ronaldo
set basketball curry
set football montana
set golf woods
set swimmer phelps
Prüfen Sie, ob Sie sechs Schlüssel/Wert-Paare erfolgreich hinzugefügt haben:
SCAN 0
Die Ausgabe sieht so aus:
"swimmer" "soccer" "football" "golf" "tennis" "basketball"
Nachdem Sie die RIOT-Migration eingerichtet und gestartet haben, werden die Daten zur Redis Enterprise Cloud-Zielinstanz migriert.
RIOT auf der Redis OSS-Instanz-VM installieren
Für die Ausführung von RIOT müssen Sie auf die richtige Größe Ihrer Compute Engine-VM achten. Im Allgemeinen empfehlen wir die Größe Ihrer VM auf 8 vCPUs oder mehr, je nach der zu übertragenden Datenmenge und der Aktualisierungshäufigkeit. Weitere Informationen finden Sie im Leitfaden zu Ressourcen und Vergleichen für Maschinenfamilien.
Verwenden Sie in Cloud Shell eine SSH-Verbindung, um sich bei der Compute Engine-Instanz anzumelden, auf der die Redis OSS-Instanz ausgeführt wird:
PROJECT_ID=$(gcloud info --format='value(config.project)') gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
JDK für RIOT installieren:
sudo apt install default-jre -y
Laden Sie RIOT herunter und installieren Sie es:
sudo apt-get install unzip wget https://github.com/redis-developer/riot/releases/download/v2.19.0/riot-redis-2.19.0.zip unzip riot-redis-2.19.0.zip
Prüfen Sie, ob RIOT korrekt installiert ist:
./riot-redis-2.19.0/bin/riot-redis -V
Die Ausgabe sieht ähnlich aus wie die folgende, die ein RIOT-Logo und eine Versionsnummer enthält:
Sie haben das RIOT-Migrationstool auf der Redis OSS-Instanz installiert und bestätigt, dass es betriebsbereit ist.
Redis Enterprise Cloud-Instanz erstellen
Redis Enterprise Cloud ist über Cloud Marketplace verfügbar. Wenn Sie keinen Redis Enterprise-Cluster als Redis Enterprise-Zielinstanz eingerichtet haben, folgen Sie den Schritten in diesem Abschnitt. Wenn Sie bereits einen Redis Enterprise-Cluster als Zieldatenbank eingerichtet haben, können Sie diesen Abschnitt überspringen und mit RIOT-Live-Migration starten fortfahren.
Wechseln Sie im Cloud Marketplace zu Redis Enterprise Cloud Flexible – Pay as you go.
Zu Redis Enterprise im Marketplace
Weitere Informationen finden Sie in der Anleitung im Redis-Dokument Flexible Abos mit Cloud Marketplace.
Melden Sie sich mit den Redis-Kontoinformationen, die Sie beim Abonnieren von Redis Enterprise Cloud Flexible angegeben haben, bei der Redis-Konsole an.
Erstellen Sie ein flexibles Abo. Folgen Sie dazu der Anleitung im Redis-Dokument Flexibles Abo erstellen. Wählen Sie Google Cloud als Cloud-Anbieter aus und erstellen Sie eine Datenbank mit allen Standardeinstellungen.
Erstellen Sie ein VPC-Peering zwischen Ihrer Google Virtual Private Cloud und der von Redis verwalteten VPC. Folgen Sie dazu der Anleitung im Redis-Dokument VPC-Peering aktivieren.
Wechseln Sie in der Redis-Konsole zu Abo und suchen Sie den Verbindungsstring für die Redis Enterprise-Datenbank:
Notieren Sie sich die IP-Adresse und den Port des privaten Endpunkts in folgendem Format:
ENDPOINT_IP:ENDPOINT_PORT
Die Werte stehen für Folgendes:
ENDPOINT_IP
: Die IP-Adresse des privaten Endpunkts für die Redis Enterprise-Datenbank.ENDPOINT_PORT
: Die Portnummer des privaten Endpunkts für die Redis Enterprise-Datenbank.
Notieren Sie sich das Datenbankpasswort.
RIOT-Live-Migration starten
So migrieren Sie die Daten von der Redis OSS-Instanz (Quelle) zur Redis Enterprise Cloud-Instanz (Ziel):
Verwenden Sie in Cloud Shell eine SSH-Verbindung, um sich bei der Compute Engine-Instanz anzumelden, auf der die Redis OSS-Instanz ausgeführt wird:
PROJECT_ID=$(gcloud info --format='value(config.project)') gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
Initiieren Sie eine Live-Migration zwischen Quelle und Ziel. Wenn sich Ihre Redis-OSS-Instanz auf Redis 7.2 befindet, müssen Sie die typbasierte Replikation verwenden. Informationen zur Verwendung der Option
--type
finden Sie in der Redis-Dokumentation unter Typbasierte Replikation../riot-redis-2.19.0/bin/riot-redis -u redis://localhost:6379 replicate \ -u redis://ENDPOINT_IP:ENDPOINT_PORT \ -a REDIS_ENTERPRISE_DB_PASSWORD \ --mode live
Ersetzen Sie Folgendes durch die Werte, die Sie im vorherigen Abschnitt notiert haben:
ENDPOINT_IP
: Die IP-Adresse des privaten Endpunkts für die Redis Enterprise-Clusterdatenbank.ENDPOINT_PORT
: Die Portnummer des privaten Endpunkts für die Redis Enterprise-Clusterdatenbank.REDIS_ENTERPRISE_DB_PASSWORD
: Das Passwort für die Redis Enterprise-Clusterdatenbank.
Die Ausgabe sieht in etwa so aus:
Listening ? % ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0/? (0:00:00 / ?) ?/s\ Scanning 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6/6 (0:00:00 / 0:00:00) ?/s
Datenbankmigration prüfen
Es ist wichtig, eine Strategie zur Prüfung der Datenbankmigration zu entwerfen und zu implementieren, um zu bestätigen, dass die Datenbankmigration erfolgreich ist. Die von Ihnen verwendete Bestätigungsstrategie hängt zwar von Ihrem konkreten Anwendungsfall ab, wir empfehlen jedoch, diese Prüfungen für alle Migrationen durchzuführen:
- Vollständigkeitsprüfung: Prüfen Sie, ob die ersten Schlüssel/Wert-Paare erfolgreich von Redis OSS zu Redis Enterprise migriert wurden (erster Ladevorgang).
- Dynamische Prüfung: Prüfen Sie, ob Änderungen in der Quelle an die Zielinstanz übertragen werden (laufende Migration).
Anfänglicher Ladevorgang
Verwenden Sie in Cloud Shell eine SSH-Verbindung, um sich bei der Compute Engine-Instanz anzumelden, auf der die Redis OSS-Instanz ausgeführt wird:
PROJECT_ID=$(gcloud info --format='value(config.project)') $ gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
Starten Sie die Redis-Befehlszeile:
redis-cli -u redis://ENDPOINT_IP:ENDPOINT_PORT \ -a REDIS_ENTERPRISE_DB_PASSWORD
Prüfen Sie, ob die sechs Schlüssel/Wert-Paare erfolgreich von der Redis OSS- zur Redis-Enterprise-Instanz migriert wurden:
SCAN 0
Die Ausgabe sieht so aus:
"swimmer" "soccer" "football" "golf" "tennis" "basketball"
Rufen Sie den Wert des Tennis-Schlüssels ab:
get tennis
Die Ausgabe sieht so aus:
[return federer]
Beenden Sie die Redis-Befehlszeile:
exit
Laufende Migration
Prüfen Sie, ob laufende Änderungen am Redis-Quell-OSS in der Ziel-Redis Enterprise-Instanz übernommen werden:
- Verwenden Sie in Cloud Shell eine SSH-Verbindung, um sich bei der Redis-OSS-VM anzumelden.
Starten Sie die Redis-Befehlszeile:
redis-cli
Fügen Sie neue Schlüssel/Wert-Paare hinzu:
Fügen Sie ein neues
runner bolt
-Paar hinzu:set runner bolt
Upserting eines neuen
tennis alcaraz
-Paars:set tennis alcaraz
Die Ausgabe für jeden dieser Befehle sieht so aus:
OK
Achten Sie in der Redis Enterprise-Instanz darauf, dass neue Schlüssel/Wert-Paare hinzugefügt werden:
get runner
Die Ausgabe sieht so aus:
[return bolt]
Prüfen Sie die Anzahl der Schlüssel, um sicherzustellen, dass alle Schlüssel/Wert-Paare vorhanden sind:
redis-cli info keyspace and redis-cli -u <REMOTE> info keyspace
Die Ausgabe sieht so aus:
# Keyspace db0:keys=7,expires=0,avg_ttl=0
Sie haben jetzt überprüft, ob RIOT Live-Migration alle Schlüssel/Wert-Paare aus der Redis OSS-Quellinstanz und alle laufenden Änderungen an der Quelle automatisch migriert hat.
Von der Quelle auf das Ziel umstellen
Nachdem Sie die Datenbankmigration überprüft haben, können Sie eine Umstellung von der Redis OSS-Quellinstanz zur Redis Enterprise-Zielinstanz durchführen:
- Sperren Sie den Schreibzugriff des Clients auf die Redis OSS-Quellinstanz mithilfe der Redis-Zugriffssteuerungsliste.
- Sofern Sie die Quelldatenbank für Ihre Fallback-Strategie nicht beibehalten müssen, deaktivieren Sie die Redis-Quell-OSS durch Entfernen der VM-Instanz.
- Migrieren Sie den Client in dieselbe Region wie die Redis Enterprise-Datenbankinstanz. Weitere Informationen finden Sie in der Dokumentation Ihres Clienthosts.
- Suchen Sie in der Redis-Konsole den privaten Endpunkt der Redis Enterprise-Datenbankinstanz und aktualisieren Sie die Redis-Verbindung Ihres Clients zum privaten Endpunkt. Weitere Informationen finden Sie in der Redis-Dokumentation unter Datenbanken aufrufen und bearbeiten.
- Beenden Sie in Cloud Shell den RIOT-Prozess mit der Tastenkombination Strg+C.
Fallback-Strategie vorbereiten
Nach Abschluss der Umstellung ist die Redis Enterprise-Zielinstanz das Erfassungssystem. Die Redis OSS-Quellinstanz ist veraltet und wird schließlich entfernt. Sie können jedoch bei schwerwiegenden Fehlern in der neuen Redis Enterprise-Zielinstanz auf die Redis OSS-Quellinstanz zurückgreifen.
Um die Auswirkungen solcher Fehler möglichst gering zu halten, sollten Sie die ursprüngliche Redis-OSS-Quellinstanz mit den Änderungen an der Zieldatenbank aktualisieren. Wenn Sie sicher sind, dass die neue Zielinstanz zuverlässig ist, können Sie die Quellinstanz herunterfahren.
Bereinigen
In den folgenden Abschnitten wird erläutert, wie Sie zukünftige Gebühren für Ihr Google Cloud-Projekt und die Redis-Ressourcen, die Sie in dieser Bereitstellung verwendet haben, vermeiden können.
Projekt löschen
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
Redis Enterprise-Datenbank löschen
Informationen zum Löschen der Redis Enterprise-Datenbank finden Sie in der Redis-Dokumentation unter Datenbank löschen.
Nächste Schritte
- Umfang der Migration zu Redis Enterprise Cloud definieren
- Inhalte zur Datenmigration in Google Cloud lesen
- Eine ausführlichere Dokumentation und Best Practices finden Sie in der RIOT-Dokumentation.
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.
Beitragende
Autoren:
- Saurabh Kumar | ISV Partner Engineer
- Gilbert Lau | Principal Cloud Architect, Redis
Weitere Beitragende:
- Chris Mague | Customer Engineer, Datenverwaltung
- Gabe Weiss Developer Advocacy Manager
- Marco Ferrari | Cloud Solutions Architect