Een multi-cloudomgeving is een goede optie voor een Disaster Recovery Plan (DRP), maar het kan een tijdrovende taak zijn omdat u de connectiviteit tussen de verschillende cloudproviders moet configureren en u zult dan moet u uw databasecluster op twee verschillende plaatsen implementeren en beheren.
In deze blog laten we zien hoe je een multi-cloud-implementatie voor PostgreSQL kunt uitvoeren in twee van de meest populaire cloudproviders van dit moment, AWS en Google Cloud. Voor deze taak zullen we enkele van de functies gebruiken die ClusterControl u kan bieden, zoals schalen en cluster-naar-cluster replicatie.
We gaan ervan uit dat u een ClusterControl-installatie gebruikt en al twee verschillende cloudprovider-accounts hebt aangemaakt.
Uw cloudomgeving voorbereiden
Eerst moet u uw omgeving maken in uw belangrijkste Cloud Provider. In dit geval gebruiken we AWS met 2 PostgreSQL-knooppunten:
Zorg ervoor dat het SSH- en PostgreSQL-verkeer van uw ClusterControl-server is toegestaan door uw beveiligingsgroep bewerken:
Ga vervolgens naar de secundaire cloudprovider en maak ten minste één virtuele machine dat zal de slave-node zijn. We gebruiken het Google Cloud Platform met 1 PostgreSQL-node.
En nogmaals, zorg ervoor dat u SSH- en PostgreSQL-verkeer van uw ClusterControl toestaat server:
In dit geval laten we het verkeer toe zonder enige beperking op de bron , maar het is slechts een voorbeeld en wordt in het echte leven niet aanbevolen.
Een PostgreSQL-cluster in de cloud implementeren
We zullen ClusterControl gebruiken voor deze taak, dus we gaan ervan uit dat je het hebt geïnstalleerd.
Ga naar uw ClusterControl-server en selecteer de optie "Deploy". Als er al een PostgreSQL-instantie actief is, moet u in plaats daarvan 'Bestaande server/database importeren' selecteren.
Als u PostgreSQL selecteert, moet u de gebruiker, de sleutel of het wachtwoord en de poort opgeven om via SSH verbinding te maken met uw PostgreSQL-knooppunten. Je hebt ook de naam van je nieuwe cluster nodig en als je wilt dat ClusterControl de bijbehorende software en configuraties voor je installeert.
Controleer de gebruikersvereisten van ClusterControl voor meer informatie over deze stap.
Na het instellen van de SSH-toegangsinformatie, moet u de databasegebruiker definiëren, versie en datadir (optioneel). U kunt ook aangeven welke repository u wilt gebruiken. In de volgende stap moet u uw servers toevoegen aan het cluster dat u gaat maken.
Bij het toevoegen van uw servers kunt u IP of hostnaam invoeren. In deze stap kunt u ook het knooppunt toevoegen dat in de secundaire Cloud Provider is geplaatst, aangezien ClusterControl geen beperkingen heeft met betrekking tot het te gebruiken netwerk, maar om het duidelijker te maken, zullen we dit in de volgende sectie toevoegen. De enige vereiste hier is om SSH-toegang tot het knooppunt te hebben.
In de laatste stap kunt u kiezen of uw replicatie Synchroon of Asynchroon.
Als u uw externe node hier toevoegt, is het belangrijk om asynchrone replicatie te gebruiken, zo niet, dan kan uw cluster worden beïnvloed door de latentie of netwerkproblemen.
U kunt de aanmaakstatus volgen in de ClusterControl-activiteitenmonitor.
Zodra de taak is voltooid, ziet u uw nieuwe PostgreSQL-cluster in de hoofdscherm van ClusterControl.
Een externe slave-node in de cloud toevoegen
Zodra je je cluster hebt gemaakt, kun je er verschillende taken op uitvoeren, zoals een load balancer implementeren/importeren of een slave-knooppunt voor replicatie.
Ga naar clusteracties en selecteer "Replicatieslave toevoegen":
Laten we de optie "Nieuwe replicatie-slaaf toevoegen" gebruiken, omdat we aannemen dat het externe knooppunt is een nieuwe installatie, zo niet, dan kunt u in plaats daarvan de optie "Bestaande replicatieslave importeren" gebruiken.
Hier hoeft u alleen uw Master-server te kiezen, voer het IP-adres in voor uw nieuwe slave-server en de databasepoort. Vervolgens kunt u kiezen of u wilt dat ClusterControl de software installeert en of de replicatieslave Synchroon of Asynchroon moet zijn. Nogmaals, als u een knooppunt toevoegt in een ander datacenter, moet u asynchrone replicatie gebruiken om problemen met de netwerkprestaties te voorkomen.
Op deze manier kunt u zoveel replica's toevoegen als u wilt en het leesverkeer tussen de replica's verdelen met behulp van een load balancer, die u ook kunt implementeren met ClusterControl.
U kunt het maken van de replicatieslave volgen in de ClusterControl-activiteitenmonitor.
En controleer uw uiteindelijke topologie in de sectie Topologieweergave.
Cluster-naar-clusterreplicatie in de cloud
In plaats van de optie "Replicatieslave toevoegen" te gebruiken om een Multi-Cloud-omgeving te hebben, kunt u de functie ClusterControl Cluster-naar-clusterreplicatie gebruiken om een extern cluster toe te voegen. Op dit moment heeft deze functie een beperking voor PostgreSQL, waardoor u slechts één extern knooppunt kunt hebben, dus het is vrij gelijkaardig aan de vorige manier, maar we werken eraan om die beperking binnenkort te verwijderen in een toekomstige release.
Als u een nieuw slavecluster wilt maken, gaat u naar ClusterControl -> Cluster selecteren -> Clusteracties -> Slavecluster maken.
Het slavecluster wordt gemaakt door gegevens uit het huidige mastercluster te streamen.
In deze sectie moet u het hoofdknooppunt van het huidige cluster kiezen uit waarmee de gegevens worden gerepliceerd.
Als u naar de volgende stap gaat, moet u Gebruiker, Sleutel of Wachtwoord en poort om via SSH verbinding te maken met uw servers. U heeft ook een naam nodig voor uw Slave Cluster en als u wilt dat ClusterControl de bijbehorende software en configuraties voor u installeert.
Na het instellen van de SSH-toegangsinformatie, moet u de databaseversie definiëren, datadir, poort en beheerdersreferenties. Aangezien het streamingreplicatie gebruikt, moet u ervoor zorgen dat u dezelfde databaseversie en referenties gebruikt die in het hoofdcluster worden gebruikt. Je kunt ook aangeven welke repository je wilt gebruiken.
In deze stap moet u de server voor het nieuwe Slave-cluster toevoegen . Voor deze taak kunt u zowel het IP-adres als de hostnaam van het databaseknooppunt invoeren.
U kunt het maken van slaveclusters volgen in de ClusterControl-activiteitenmonitor. Zodra de taak is voltooid, kunt u het cluster zien in het hoofdscherm van ClusterControl.
Conclusie
Met deze ClusterControl-functies kunt u snel replicatie opzetten tussen verschillende Cloud Providers voor een PostgreSQL-database (en verschillende technologieën), en de installatie op een gemakkelijke en vriendelijke manier beheren. Over de communicatie tussen de Cloud Providers, om veiligheidsredenen dient u het verkeer alleen van bekende bronnen te beperken, dus alleen van Cloud Provider 1 naar Cloud Provider 2 en vice versa.