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

Multi-Cloud-Bereitstellung für die MySQL-Replikation

In den letzten Jahren hat sich die Nutzung der Plattforminfrastruktur von On-Premise zu Cloud Computing verlagert. Dies basiert auf dem Fehlen von Kapitalkosten, die dem Unternehmen entstehen müssen, wenn es bei der Implementierung von IT-Infrastruktur verwendet wird. Cloud Computing bietet Flexibilität in jeder Ressourcenlinie, dh. auf Personal, Energie, Zeitersparnis.

Cloud Computing erleichtert Organisationen die IT-Planung, -Ausführung und -Wartung von Plattformen zur Unterstützung von Geschäftsinteressen.

Aber beide haben Gemeinsamkeiten, wir mussten bei der Nutzung der Cloud an BCP (Business Continuity Plan) und Disaster Recovery Plan (DRP) denken. Die Datenspeicherung wird kritisch, wenn wir über DRP sprechen, wie schnell wir eine Wiederherstellung (Recovery Point Objective) durchführen, wenn ein Notfall eintritt. Die Multi-Cloud-Architektur spielt eine große Rolle, wenn wir eine Infrastruktur in der Cloud-Umgebung entwerfen und implementieren möchten. In diesem Blog überprüfen wir die zugehörige Multi-Cloud-Bereitstellung zum Speichern von Daten in MySQL.

Umgebungseinrichtung in der Cloud

Dieses Mal verwenden wir den von Unternehmen weit verbreiteten Amazon Web Service (AWS) und die Google Cloud Platform (GCP) als zweiten Cloud-Anbieter in einem Multi-Cloud-Datenbank-Setup. Das Erstellen von Instanzen (der Begriff, der im Cloud Computing für neue virtuelle Maschinen verwendet wird) auf AWS ist sehr einfach.

AWS verwendet den Begriff Amazon EC2 (Elastic Compute Cloud) für seinen Compute-Instance-Service. Sie können sich bei AWS anmelden und dann den EC2-Service auswählen.

Hier ist die Anzeige einer Instanz, die mit EC2 bereitgestellt wurde.

Aus Sicherheitsgründen, die das größte Problem von Cloud-Diensten darstellen, stellen Sie sicher, dass wir nur Ports aktivieren, die beim Bereitstellen von ClusterControl benötigt werden, wie z. B. SSH-Port (22), xtrabackup (9999) und Datenbank ( 3306) sind gesichert, aber über die Cloud-Anbieter erreichbar. Eine Möglichkeit, eine solche Konnektivität zu implementieren, wäre die Erstellung eines VPN, das Instanzen in AWS mit Instanzen in GCP verbindet. Dank eines solchen Designs können wir alle Instanzen als lokal behandeln, obwohl sie sich bei verschiedenen Cloud-Anbietern befinden. Wir werden den Prozess der VPN-Einrichtung nicht genau beschreiben, daher denken Sie bitte daran, dass die von uns vorgestellte Bereitstellung nicht für die reale Produktion geeignet ist. Es soll nur die Möglichkeiten veranschaulichen, die mit ClusterControl und Multi-Cloud-Setups einhergehen.

Fahren Sie nach Abschluss der AWS EC2-Einrichtung mit der Einrichtung der Recheninstanz in fort GCP, in GCP heißt der Rechendienst Compute Engine.

In diesem Beispiel erstellen wir 1 Instanz in der GCP-Cloud, die dies tut als einer der Slaves verwendet werden.

Wenn es abgeschlossen ist, wird es in der Verwaltungskonsole wie folgt angezeigt:

Stellen Sie sicher, dass Sie Port SSH-Port (22), xtrabackup ( 9999) und Datenbank (3306).

Nach dem Bereitstellen von Instanzen in AWS und GCP sollten wir mit der Installation von ClusterControl auf einer der Instanzen beim Cloud-Anbieter fortfahren, wo sich der Master befinden wird. In diesem Beispiel-Setup verwenden wir eine der AWS-Instanzen als Master.

Bereitstellung von MySQL-Replikation auf Amazon Web Service 

Um ClusterControl zu installieren, sollten Sie den einfachen Anweisungen folgen, die Sie auf der Website von Multiplenines finden. Sobald ClusterControl bei dem Cloud-Anbieter, bei dem sich unser Master befinden wird, eingerichtet ist und ausgeführt wird (in diesem Beispiel verwenden wir AWS für unseren Master-Knoten), können wir die Bereitstellung von MySQL Replication mithilfe von ClusterControl starten. Sie müssen die folgenden Schritte ausführen, um den MySQL-Replikationscluster zu installieren:

ClusterControl öffnen, dann MySQL-Replikation auswählen, Sie werden sehen, dass drei Formulare für den Installationszweck ausgefüllt werden müssen

Allgemeine und SSH-Einstellungen

Geben Sie SSH-Benutzer, Schlüssel und Passwort, SSH-Port und den Namen des Clusters ein

Wählen Sie dann „Weiter“

MySQL-Server definieren 

Wählen Sie Anbieter, Versionsnummer und Root-Passwort von MySQL aus und klicken Sie dann auf „Weiter“

Topologie definieren

Wie Sie sich erinnern, haben wir zwei Knoten in AWS erstellt. Wir können beide hier verwenden. Einer soll unser Herr sein, der andere soll als Sklave hinzukommen. Dann können wir mit „Bereitstellen“ fortfahren

Wenn Sie möchten und die Cloud-übergreifende Konnektivität bereits vorhanden ist, können Sie auch die IP-Adresse der GCP-Instanz unter „Slaves zu Master A hinzufügen“ festlegen und dann mit „Weiter“ fortfahren. Einsetzen'. Auf diese Weise stellt ClusterControl den Master und beide Slaves gleichzeitig bereit.

Sobald die Bereitstellung gestartet wurde, können Sie den Fortschritt auf der Registerkarte „Aktivität“ überwachen. Sie können das Beispiel der Fortschrittsmeldungen unten sehen. Jetzt heißt es warten, bis der Auftrag abgeschlossen ist.

Sobald der Vorgang abgeschlossen ist, können Sie den neu erstellten Cluster mit dem Namen „Cloud MySQL-Replikation“.

Wenn Sie im Bereitstellungsassistenten bereits einen GCP-Knoten als zweiten Slave hinzugefügt haben, Sie haben die Master-Slave-Einrichtung zwischen AWS- und GCP-Instanzen bereits abgeschlossen.

Falls nicht, können Sie den GCP-Slave zum laufenden Cluster hinzufügen. Bitte stellen Sie sicher, dass die Konnektivität vorhanden ist, bevor Sie fortfahren.

Neuen Slave von Google Cloud Platform hinzufügen

Nachdem die MySQL-Replikation auf AWS erstellt wurde, können Sie fortfahren, indem Sie Ihren Knoten in der GCP als neuen Slave hinzufügen. Sie können dies erreichen, indem Sie die folgenden Schritte ausführen::

  1.  
  1. Suchen Sie in der Clusterliste nach Ihrem neuen Cluster und klicken Sie dann auf und wählen Sie „Replikations-Slave hinzufügen“.
      1.  
      1.  
  2. Der Assistent
  3. Replication Slave hinzufügen wird angezeigt, wie Sie unten sehen können.
  4. Fahren Sie fort, indem Sie die IP-Adresse der Master-Instanz (in AWS) auswählen und die IP-Adresse und den Port der GCP-Instanz, die Sie als Slave verwenden möchten, in das Feld „Slave-Hostname/IP“ eingeben. Sobald Sie alles ausgefüllt haben, können Sie mit einem Klick auf „Replikations-Slave hinzufügen“ fortfahren.

Wie zuvor können Sie den Fortschritt auf der Registerkarte "Aktivität" überwachen. Jetzt heißt es warten, bis der Auftrag abgeschlossen ist.

Sobald die Bereitstellung abgeschlossen ist, können wir den Cluster auf der Registerkarte „Topologie“ überprüfen.

Sie können die Topologie unseres Master-Slave-Clusters unten sehen.

Wie Sie sehen können, haben wir einen Master und einen Slave in AWS und Wir haben auch einen Slave in GCP, der es unserer Datenbank erleichtert, Ausfälle zu überstehen, die bei einem unserer Cloud-Anbieter auftreten.

Fazit

Für die Hochverfügbarkeit von Datenbankdiensten spielt eine Multi-Cloud-Bereitstellung eine sehr wichtige Rolle, um dies zu erreichen. ClusterControl wurde erstellt, um diesen Prozess zu steuern und dem Benutzer die Verwaltung der Multi-Cloud-Bereitstellungen zu erleichtern.

Einer der kritischen Punkte, die bei der Multi-Cloud-Bereitstellung zu berücksichtigen sind, sind Sicherheitsaspekte. Wie bereits erwähnt, können Sie als bewährte Methode ein VPN Site to Site zwischen den beiden Cloud-Anbietern einrichten. Es gibt auch andere Optionen wie SSH-Tunnel.