Seit einigen Tagen teste ich einen RDS Aurora Writer-Reader (wie ein klassischer MySQL Master-Slave). Insbesondere in seiner Wiederherstellungsfunktion gegen ein Failover im Writer sollte RDS neben anderen Aufgaben die Writer- und Reader-Rolle selbst austauschen (alles gut in diesem Schritt) und den Endpunkt-CNAME austauschen, damit die Anwendung normal fortgesetzt werden kann.
In meinem Fall wurde dieser letzte Schritt nicht ausgeführt und meine Anwendung verweist immer noch auf dieselbe Maschine (diese Maschine befindet sich im Failover und wird dann zum Leser degradiert).
Um dies zu testen, verwende ich die Schaltfläche „Failover testen“ im RDS-Bedienfeld.
Die Funktion zum Ändern des CNAME-Endpunkts wird in den offiziellen Dokumenten erwähnt: https://aws.amazon.com/rds/faqs/#45
Im folgenden Absatz:
Das Failover wird automatisch von Amazon RDS abgewickelt, sodass Sie den Datenbankbetrieb so schnell wie möglich und ohne administrative Eingriffe wieder aufnehmen können. Beim Failover ändert Amazon RDS einfach den kanonischen Namensdatensatz (CNAME) für Ihre DB-Instance, sodass er auf die Standby-Instance verweist, die wiederum zur neuen primären Instance hochgestuft wird. Wir empfehlen Ihnen, bewährte Methoden zu befolgen und die Wiederholung der Datenbankverbindung auf Anwendungsebene zu implementieren.
Antwort1
Basierend auf @Michael - sqlbot behebe ich das Problem. Wenn Sie Aurora in der HA-Konfiguration verwenden, müssen Sie in Ihrer Anwendungskonfiguration den Cluster-Endpunkt und nicht den Instanz-Endpunkt verwenden, da sich der Name innerhalb des Clusters ändert.
Antwort2
Ich habe noch eine andere Frage dazu. Welche Art von Datensatz müssen wir also in Route53 erstellen? CNAME ist ok? Und wenn ich 2 Clusterendpunkte habe, muss ich dann für jeden Cluster einen CNAME erstellen? Oder nur einen CNAME? Ich habe es versucht und festgestellt, dass es nicht möglich ist, 1 CNAME mit 2 Clusterendpunkten zu erstellen. Danke!