Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So migrieren Sie MySQL ohne Ausfallzeiten von Amazon EC2 in Ihr lokales Rechenzentrum

Seit seiner Einführung gab es eine zunehmende Anzahl von Migrationen zu einer Cloud-basierten Umgebung. Schließlich kann Cloud Computing viele Vorteile für Unternehmen bieten, insbesondere für diejenigen, die mit Big Data arbeiten.

Wenn jedoch die Nachfrage wächst, steigen auch die Kosten, und Sie befinden sich möglicherweise in einer Situation, in der die monatlichen Cloud-Kosten zu hoch werden und die Nachteile bald die Vorteile des Betriebs in der Cloud überwiegen. Oder vielleicht haben Sie Sicherheits- oder Compliance-Anforderungen, die eine direktere Kontrolle über Ihre Systeme erfordern. Dies kann letztendlich ein Argument für Sie sein, zurück zu einer lokalen Umgebung zu migrieren.

AWS stellt Überwachungs- und Verwaltungstools bereit, um unser System in der Cloud auszuführen und gleichzeitig Transparenz und Kontrolle für die Optimierung zu haben. Wenn wir jedoch bereit für eine lokale Lösung sind, kann es schwierig sein, unsere Daten zu migrieren und alle Tools neu zu erstellen, um unsere Systeme ordnungsgemäß zu verwalten.

In diesem Blog besprechen wir, wie Sie Ihre Systeme von AWS zu einem lokalen Rechenzentrum migrieren können und wie ClusterControl dabei helfen kann, den Prozess zu optimieren.

Konzepte

Bevor wir loslegen, lassen Sie uns einige grundlegende Konzepte zu Amazon Cloud und ClusterControl behandeln.

AWS

Amazon Web Services (AWS) ist eine Infrastructure-as-a-Service-Plattform, die aus einer großen Anzahl unabhängiger und halbunabhängiger Dienste besteht. Der Zweck der Infrastructure-as-a-Service-Plattform besteht darin, Dienste auf Commodity-Basis anzubieten, die zuvor den Kauf kapitalintensiver Infrastrukturkomponenten wie High-End-Server, Netzwerkrouter und Switches erforderten, und für größere Unternehmen sogar deren eigene Rechenzentren.

RDS

Amazon Relational Database Service (RDS) macht es einfach, eine relationale Datenbank in der Cloud einzurichten, zu betreiben und zu skalieren. Es bietet kosteneffiziente und anpassbare Kapazität und automatisiert gleichzeitig zeitaufwändige Verwaltungsaufgaben wie Hardwarebereitstellung, Datenbankeinrichtung, Patching und Backups.

Amazon RDS ist für mehrere Datenbankinstanztypen verfügbar und bietet Ihnen sechs vertraute Datenbankverwaltungssysteme zur Auswahl, darunter Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database und SQL Server.

EC2

Amazon Elastic Compute Cloud (EC2) ist ein Dienst, der sichere und anpassbare Rechenkapazität in der Cloud bereitstellt. Es wurde entwickelt, um Entwicklern das webbasierte Cloud-Computing zu erleichtern.

Mit der einfachen Webschnittstelle von Amazon EC2 können Sie Kapazität mit minimaler Reibung abrufen und konfigurieren. Es bietet Ihnen die vollständige Kontrolle über Ihre Computerressourcen und ermöglicht die Ausführung in der bewährten Computerumgebung von Amazon.

ClusterControl

ClusterControl ist ein umfassendes Verwaltungssystem für Open-Source-Datenbanken, das die Bereitstellung, Verwaltungsfunktionen sowie Zustands- und Leistungsüberwachung von einem einzigen Fenster aus automatisiert.

ClusterControl unterstützt die Bereitstellung, Verwaltung, Überwachung und Skalierung für verschiedene Datenbanktechnologien in jeder Umgebung.

Warum zu On-Prem migrieren?

Wie wir bereits erwähnt haben, sind die häufigsten Gründe für die Migration von AWS zu einer On-Premise-Umgebung Kosten, Sicherheit, Compliance oder das Ausführen lokaler Anwendungen. Bei AWS wissen Sie nicht, was unter der Haube der Infrastruktur passiert. Sie wissen nur, ob alles funktioniert. Wenn Sie eine schlechte Leistung oder Anomalien feststellen, besteht die einzige Lösung darin, sich mit dem Amazon-Support in Verbindung zu setzen.

Beispielmigrationsszenario

In AWS haben Sie zwei verschiedene Produkte, die mit diesem Blog in Verbindung stehen:EC2 und RDS.

Der Hauptunterschied zwischen ihnen besteht darin, dass Sie in EC2 SSH-Zugriff auf den Server haben und die Datenbank selbst verwalten müssen. RDS ist ein gehosteter Datenbankdienst, und Sie haben nur Zugriff auf die Datenbankinstanz.

Da Sie in RDS keinen SSH-Zugriff haben, müssen Sie einen Dump erstellen und ihn in den neuen Server importieren oder die Replikation konfigurieren und das Replikat auf den neuen primären Server hochstufen. Bei beiden Optionen ist der Prozess manuell. Sie könnten auch einen Load Balancer hinzufügen, um diesen Prozess zu verbessern. Wir haben diese Aufgabe in diesen Blogs behandelt:Teil 1 und Teil 2.

Konzentrieren wir uns also auf die Migration von EC2.

In unserem Beispiel sehen wir uns an, wie MySQL von AWS EC2 in ein lokales Rechenzentrum migriert wird. Wir werden eine MySQL-Replikationsumgebung verwenden, aber diese Schritte sollten auch für andere Technologien wie PostgreSQL funktionieren.

Wir gehen davon aus, dass Ihre Haupt-MySQL-Datenbank auf einer EC2-Instanz ausgeführt wird. Im Rechenzentrum vor Ort gehen wir außerdem davon aus, dass Sie ClusterControl installiert und einen neuen Datenbankserver zum Migrieren haben.

In der AWS-Verwaltungskonsole sollten Sie so etwas in EC2 haben Abschnitt "Instanzen":

Zunächst müssen Sie Ihren aktuellen primären Knoten importieren, der auf EC2 ausgeführt wird zu ClusterControl. Für diesen Importvorgang müssen Sie Port 3306 öffnen, indem Sie die Sicherheitsgruppe bearbeiten, die der EC2-Instance zugeordnet ist.

Gehen Sie danach in ClusterControl zum Import-Abschnitt:

Dort können Sie die Datenbanktechnologie auswählen, in diesem Beispiel MySQL Replication, und Sie müssen den Benutzer, den Schlüssel oder das Passwort und den Port angeben, um sich über SSH mit Ihrem Server zu verbinden. Sie müssen auch den Namen Ihres neuen Clusters angeben.

 

Nachdem Sie die SSH-Zugriffsinformationen eingerichtet haben, müssen Sie einige Datenbankinformationen definieren, z die Anmeldeinformationen des Datenbankadministrators, Port und basedir. Außerdem können Sie die Funktionen „ClusterControl Node AutoRecovery“ und „Cluster AutoRecovery“ für den neuen Cluster aktivieren.

Dann müssen Sie Ihren Server hinzufügen, indem Sie die IP-Adresse oder den Hostnamen verwenden und auf Importieren klicken.

Sobald dies erledigt ist, können Sie den Status des Importauftrags von überwachen ClusterControl-Aktivitätsmonitor.

Sobald die Aufgabe abgeschlossen ist, sehen Sie Ihren Datenbankknoten in der Hauptansicht ClusterControl-Bildschirm:

Achten Sie darauf, die Binlog-Generierung in Ihrer aktuellen Master-Datenbank zu aktivieren.

Jetzt können Sie Ihren zukünftigen neuen primären Knoten als neue Replik aus Ihrer aktuellen primären Datenbank hinzufügen. Gehen Sie dazu zu ClusterControl -> Cluster auswählen -> Cluster-Aktionen -> Replikations-Slave hinzufügen.

Hier müssen Sie den Hostnamen oder die IP-Adresse des neuen Replikats hinzufügen Server, und wenn Sie möchten, dass ClusterControl die Software für Sie installiert.

Stellen Sie sicher, dass Sie eine Verbindung von AWS zu den Ports 3306 und 9999 auf dem lokalen Server haben.

ClusterControl stuft Replikate mit Daten ein, indem ein Hot-Backup des Primärservers erstellt, zum Replikat gestreamt und dort wiederhergestellt wird. Nach der Wiederherstellung wird der Replikatknoten mit dem primären Knoten verbunden, sodass er Ereignisse nachholen und synchronisieren kann. Beachten Sie, dass Sie bei großen Datenbanken, die mit einer gewissen Auslastung ausgeführt werden, möglicherweise die zusätzliche Last dieser Operation auf dem primären Knoten vermeiden möchten. In diesem Fall ist es möglich, den Replikatknoten zuerst aus einem vorhandenen Backup zu erstellen und dann das Replikat zu verbinden, sodass es den primären Knoten einholt.

Nach dieser Aufgabe sollten Sie so etwas haben:

Sie können Ihre Topologie auch im Abschnitt "ClusterControl-Topologie" überprüfen.

Dann müssen Sie das Replikat zum primären hochstufen (ClusterControl -> Select Cluster -> Node Actions -> Promote Slave) und ändern Sie den Endpunkt in Ihrer Anwendung.

Um diese Topologie zu verbessern, können Sie einen Load Balancer hinzufügen, um den Datenverkehr zu verwalten vom Anwendungsserver zur Datenbank. Wenn Sie einen Load Balancer verwenden, müssen Sie den Endpunkt Ihrer Anwendung während der Migration nicht ändern; Der Load Balancer ändert den primären Knoten auf transparente Weise.

Es gibt viele Möglichkeiten, diese Aufgabe auszuführen, und Sie sollten dazu in der Lage sein Übernehmen Sie eine solche Strategie für Ihre Umgebung, abhängig von Ihrer Infrastruktur, Sicherheit usw.

Aus Sicherheitsgründen sollten Sie die Verwendung eines VPN zwischen AWS und der lokalen Umgebung in Betracht ziehen.

Bei einer Multi-Master-Topologie wie dem Galera-Cluster müssen Sie nur die Knoten hinzufügen, die Sie vor Ort haben möchten, aber seien Sie vorsichtig mit der Latenz. Sie können beispielsweise verschiedene Galera-Segmente verwenden, um die Netzwerknutzung zu verringern.

Überlegungen zur Migration

Zum Schluss noch einige Überlegungen, die Sie berücksichtigen sollten, wenn Sie AWS verlassen und Ihre eigene Umgebung verwenden möchten:

  • Überwachung:Vergessen Sie nicht, ein Überwachungssystem zu verwenden. Sie müssen jederzeit wissen, was in Ihrem System passiert!
  • Disaster-Recovery-Strategie:Sie sollten eine gute DRP in Erwägung ziehen. Im Allgemeinen sollten Sie die Informationen an drei verschiedenen physischen Orten haben:Primär, Replica und Backup.
  • Hochverfügbarkeit:Heutzutage ist Hochverfügbarkeit in den meisten Produktionsumgebungen ein Muss, daher müssen Sie je nach Infrastruktur über die beste Hochverfügbarkeitslösung nachdenken.
  • Skalierung:Sie sollten in der Lage sein, bei Bedarf in der Zukunft oder für eine bestimmte Veranstaltung zu skalieren.
  • Rollback:Wenn Sie von AWS zu einer On-Premise-Umgebung migrieren möchten, denken Sie daran, dass etwas schief gehen kann (wie bei jeder Art von Migration), also sollten Sie einen Rollback-Plan haben.
  • Angenommen, Sie sind auf der Suche nach einer Art Hybridumgebung mit Instanzen, die auf AWS und lokal ausgeführt werden. In diesem Fall eignet sich ClusterControl hervorragend für die Überwachung, Verwaltung der Verfügbarkeit, Sicherungen, Skalierung und mehr. Probieren Sie es aus!

Abschluss

Manchmal ist der Betrieb in der Cloud einfach nicht die beste Lösung, und Sie müssen möglicherweise wieder zu einer lokalen Lösung migrieren. Wir hoffen, dass dieser Blog Ihnen einige hilfreiche Informationen zur Migration Ihrer MySQL-basierten Daten von AWS in Ihr lokales Rechenzentrum gegeben hat und wie ClusterControl die Tools bereitstellt, die Sie zur ordnungsgemäßen Verwaltung Ihrer Systeme benötigen.

Sobald Sie Ihre Migration erfolgreich abgeschlossen haben, rüsten Sie Ihr Überwachungssystem mit proaktiven Strategien wie vorausschauender Benachrichtigung auf. Sehen Sie sich unseren kürzlich aktualisierten Beitrag zur Datenbanküberwachung mit ClusterControl an, um mehr zu erfahren.

Abonnieren Sie unseren Blog und RSS-Feed und folgen Sie uns auf LinkedIn und Twitter, um weitere Updates zu Tipps und Best Practices für die Datenbankverwaltung zu erhalten.