Replizieren von AWS RDS Replication nach Google Cloud SQL
In der folgenden Anleitung möchte ich ihnen die AWS RDS Replikation zu Google Cloud SQL präsentieren. Um die Replikation auf Google Cloud SQL einzurichten, benötigen wir eine statische IP-Adresse.
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 das “bin-log” verwendet werden kann.
Richten Sie eine neue Parametergruppe für den RDS-Master ein.
-> Wir müssen “gtid” aktivieren & “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.
-> Verwenden Sie dafür eine “static Elastic IP” um sicherzustellen, dass die IP Adresse sich nicht dynamisch verändern kann.
-> Schalten Sie Port 3306 in der Sicherheitsgruppe frei. (Wir werden dies anpassen, sobald wir die feste Replikations-IP von Google Cloud SQL haben).
Für meine 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 Replication 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:
-> Installieren Sie die Google Cli auf Ihrer VM
-> Machen Sie einen mysqldump der Datenbank.
-> Erstellen Sie einen Google Storage Bucket, um den Dump hochzuladen
Installieren Sie 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à! 🙂