AWS-RDS-Replikation nach Google Cloud SQL
In der folgenden Anleitung möchte ich euch die AWS-RDS-Replikation nach Google Cloud SQL präsentieren. Um die Replikation auf Google Cloud SQL einzurichten, benötigen wir eine statische IP-Adresse.
https://www.youtube.com/watch?v=52PhJtllaNQ&ab_channel=EddiAlim
Leider können für RDS-Instanzen keine statischen IP-Adressen vergeben werden. Aus diesem Grund benötigen wir einen Proxy, der den Datenverkehr zwischen Master und Slave managed bzw. weiterleitet.
Instanzen:
– AWS RDS (Master)
– EC2-Instanz (Proxy)
– Google Cloud SQL (Slave)
Bevor wir mit der Replikation beginnen können, müssen wir auf der RDS-Master-Instanz die folgenden Änderungen vornehmen:
Enable backup
-> Das Backup muss aktiviert sein, damit der “bin-log” verwendet werden kann.
Richte eine neue Parametergruppe für den RDS-Master ein.
-> Wir müssen “gtid” aktivieren und “gtid_mode = ON” setzen.
-> Hierfür ist ein Neustart erforderlich.
Im nächsten Schritt erstellen wir eine virtuelle Maschine, welche den Netzwerkverkehr über eine statische IP-Adresse an den RDS-Hostname weiterleitet.
-> Verwende dafür eine „static Elastic IP“, um sicherzustellen, dass die IP Adresse sich nicht dynamisch verändern kann.
-> Schalte Port 3306 in der Sicherheitsgruppe frei. (Wir werden dies anpassen, sobald wir die feste Replikations-IP von Google Cloud SQL haben).
Für eine schnelle und einfache Einrichtung werde ich SOCAT verwenden. -> socat: z. B. socat TCP-LISTEN,[port],fork,reuseaddr TCP:[hostname]:[port].
$ socat -v TCP-LISTEN:3306,fork TCP:rds-master.c3u5ki2hnnys.eu-central-1.rds.amazonaws.com:3306
Im Blogeintrag von Bill Schneider werden weitere Lösungsansätze beschrieben:
https://dev.to/wrschneider/ec2-proxy-to-rds-for-a-static-ip-address-11i8
An dieser Stelle gibt es nichts mehr zu tun.
Schauen wir uns nun die Google Cloud Replikation an.
Anstatt eine neue Instanz zu erstellen, müssen wir den Migrationsassistenten von Google verwenden, um die Replikation zum Laufen zu bringen.
Für diesen Vorgang sind nur 3 Schritte notwendig:
-> Installiere die Google Cli auf deiner VM.
-> Mach einen mysqldump der Datenbank.
-> Erstelle einen Google Storage Bucket, um den Dump hochzuladen.
Installiere das Google Cloud SDK von hier:
https://cloud.google.com/sdk/install
Anschließend erstellen wir einen mysqldump vom Master und laden die Sicherung in den „Google Storage Bucket“ hoch:
mysqldump \
-h3.122.54.17 -P -urdsmaster -prootroot \
--databases stug \
--hex-blob --skip-triggers --master-data=1 \
--order-by-primary --compact --no-autocommit \
--default-character-set=utf8mb4 --ignore-table \
--single-transaction --set-gtid-purged=on | gzip | gsutil cp - gs://rdsmaster/hq-master1.sql.gz
Ist der Dump hochgeladen, müssen wir im letzten Schritt nur noch den Google Cloud SQL-Migrationsprozess durchlaufen lassen.
Voilà! 🙂
Viel Spaß!