PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL-Load-Balancing in der Cloud leicht gemacht

Wir haben schon oft die Vorteile der Verwendung eines Load Balancers in Ihrer Datenbanktopologie erwähnt. Dies kann dazu dienen, den Datenverkehr auf fehlerfreie Datenbankknoten umzuleiten, den Datenverkehr auf mehrere Server zu verteilen, um die Leistung zu verbessern, oder einfach nur einen einzigen Endpunkt in Ihrer Anwendung zu konfigurieren, um die Konfiguration und den Failover-Prozess zu vereinfachen.

Mit der neuen Version ClusterControl 1.7.6 können Sie jetzt nicht nur Ihren PostgreSQL-Cluster direkt in der Cloud bereitstellen, sondern auch Load Balancer im selben Job bereitstellen. Dafür unterstützt ClusterControl AWS, Google Cloud und Azure als Cloud-Anbieter. Werfen wir einen Blick auf diese neue Funktion.

Erstellen eines neuen Datenbank-Clusters

Für dieses Beispiel gehen wir davon aus, dass Sie ein Konto bei einem der genannten unterstützten Cloud-Anbieter haben und Ihre Anmeldeinformationen in einer ClusterControl 1.7.6-Installation konfiguriert haben.

Wenn Sie es nicht konfiguriert haben, müssen Sie zu ClusterControl -> Integrationen -> Cloud-Anbieter -> Cloud-Anmeldeinformationen hinzufügen gehen.

Hier müssen Sie den Cloud-Anbieter auswählen und die entsprechenden Informationen hinzufügen.

Diese Informationen hängen vom Cloud-Anbieter selbst ab. Weitere Informationen finden Sie in unserer offiziellen Dokumentation.

Sie müssen nicht auf die Verwaltungskonsole Ihres Cloud-Anbieters zugreifen, um etwas zu erstellen, Sie können Ihre virtuellen Maschinen, Datenbanken und Load Balancer direkt von ClusterControl aus bereitstellen. Gehen Sie zum Abschnitt „Bereitstellen“ und wählen Sie „In der Cloud bereitstellen“ aus.

Geben Sie Anbieter und Version für Ihren neuen Datenbankcluster an. In diesem Fall verwenden wir PostgreSQL 12.

Fügen Sie die Anzahl der Knoten, den Clusternamen und Datenbankinformationen wie Anmeldeinformationen und hinzu Serverport.

Wählen Sie die Cloud-Anmeldeinformationen aus, in diesem Fall verwenden wir AWS Konto. Wenn Sie Ihr Konto noch nicht zu ClusterControl hinzugefügt haben, können Sie unserer Dokumentation für diese Aufgabe folgen.

Jetzt müssen Sie die Konfiguration der virtuellen Maschine angeben, wie Betriebssystem, Größe, und Region.

Im nächsten Schritt können Sie Ihrem Datenbank-Cluster Load Balancer hinzufügen. Für PostgreSQL unterstützt ClusterControl HAProxy als Load Balancer. Sie müssen die Anzahl der Load Balancer-Knoten, die Instance-Größe und die Load Balancer-Informationen auswählen.

Diese Load Balancer-Informationen sind:

  • Listen Port (Lesen/Schreiben):Port für Lese-/Schreibverkehr.
  • Listen Port (Read-Only):Port für schreibgeschützten Datenverkehr.
  • Richtlinie:Es kann sein:
    • leastconn:Der Server mit der geringsten Anzahl an Verbindungen erhält die Verbindung
    • Roundrobin:Jeder Server wird abwechselnd entsprechend seiner Gewichtung eingesetzt
    • source:Die Quell-IP-Adresse wird gehasht und durch die Gesamtgewichtung der laufenden Server dividiert, um festzulegen, welcher Server die Anfrage erhält

Jetzt können Sie die Zusammenfassung überprüfen und bereitstellen.

ClusterControl erstellt die virtuellen Maschinen, installiert die Software und konfiguriert sie, alles im selben Job und unbeaufsichtigt.

Sie können den Erstellungsprozess im ClusterControl-Aktivitätsabschnitt überwachen. Wenn es fertig ist, sehen Sie Ihren neuen Cluster auf dem Hauptbildschirm von ClusterControl.

Wenn Sie die Load Balancer-Knoten überprüfen möchten, können Sie zu ClusterControl gehen -> Knoten -> HAProxy-Knoten und überprüfen Sie den aktuellen Status.

Sie können Ihre HAProxy-Server auch von ClusterControl aus überwachen, indem Sie den Abschnitt Dashboard überprüfen.

Jetzt sind Sie fertig und können in der Verwaltungskonsole Ihres Cloud-Anbieters nachsehen, wo Sie werden die virtuellen Maschinen finden, die gemäß Ihren ausgewählten ClusterControl-Auftragsoptionen erstellt wurden.

Fazit

Wie Sie sehen konnten, ist es wirklich einfach, einen Load Balancer vor Ihrem PostgreSQL-Cluster in der Cloud zu haben, indem Sie die neue ClusterControl-Funktion „Deploy in the Cloud“ verwenden, mit der Sie Ihre Datenbanken und Load Balancer-Knoten im selben Job bereitstellen können. P>