Un ambiente multi-cloud è una buona opzione per un Disaster Recovery Plan (DRP), ma può essere un'attività che richiede tempo poiché è necessario configurare la connettività tra i diversi provider di cloud e lo farai quindi è necessario distribuire e gestire il cluster di database in due posizioni diverse.
In questo blog, mostreremo come eseguire una distribuzione multi-cloud per PostgreSQL in due dei provider cloud più popolari al momento, AWS e Google Cloud. Per questa attività, utilizzeremo alcune delle funzionalità che ClusterControl può offrirti, come il ridimensionamento e la replica da cluster a cluster.
Supponiamo che tu abbia un'installazione ClusterControl in esecuzione e che tu abbia già creato due diversi account di provider cloud.
Preparazione del tuo ambiente cloud
Per prima cosa, devi creare il tuo ambiente nel tuo Cloud Provider principale. In questo caso, utilizzeremo AWS con 2 nodi PostgreSQL:
Assicurati di avere il traffico SSH e PostgreSQL consentito dal tuo server ClusterControl da modifica del tuo gruppo di sicurezza:
Quindi, vai al Cloud Provider secondario e crea almeno una macchina virtuale quello sarà il nodo slave. Utilizzeremo Google Cloud Platform con 1 nodo PostgreSQL.
E ancora, assicurati di consentire il traffico SSH e PostgreSQL dal tuo ClusterControl server:
In questo caso, stiamo consentendo il traffico senza alcuna restrizione sulla fonte , ma è solo un esempio e non è consigliato nella vita reale.
Distribuisci un cluster PostgreSQL nel cloud
Utilizzeremo ClusterControl per questa attività, quindi supponiamo che tu l'abbia installato.
Vai al tuo server ClusterControl e seleziona l'opzione “Deploy”. Se hai già un'istanza PostgreSQL in esecuzione, devi invece selezionare "Importa server/database esistente".
Quando si seleziona PostgreSQL, è necessario specificare Utente, Chiave o Password e porta per connetterti tramite SSH ai tuoi nodi PostgreSQL. Hai anche bisogno del nome per il tuo nuovo cluster e se vuoi che ClusterControl installi per te il software e le configurazioni corrispondenti.
Per ulteriori informazioni su questo passaggio, verificare i requisiti utente di ClusterControl.
Dopo aver impostato le informazioni di accesso SSH, è necessario definire l'utente del database, versione e datadir (opzionale). Puoi anche specificare quale repository utilizzare. Nel passaggio successivo, devi aggiungere i tuoi server al cluster che creerai.
Quando aggiungi i tuoi server, puoi inserire IP o nome host. In questo passaggio puoi anche aggiungere il nodo posto nel Cloud Provider secondario, in quanto ClusterControl non ha limitazioni sulla rete da utilizzare, ma per chiarire lo aggiungeremo nel prossimo paragrafo. L'unico requisito qui è avere l'accesso SSH al nodo.
Nell'ultimo passaggio, puoi scegliere se la tua replica sarà Sincrona o Asincrono.
Se stai aggiungendo qui il tuo nodo remoto, è importante utilizzare la replica asincrona, altrimenti il tuo cluster potrebbe essere interessato dalla latenza o da problemi di rete.
Puoi monitorare lo stato di creazione nel monitor attività ClusterControl.
Una volta terminata l'attività, puoi vedere il tuo nuovo cluster PostgreSQL nella schermata principale di ClusterControl.
Aggiunta di un nodo slave remoto nel cloud
Una volta creato il cluster, puoi eseguire diverse attività su di esso, come distribuire/importare un sistema di bilanciamento del carico o un nodo slave di replica.
Vai alle azioni del cluster e seleziona "Aggiungi slave di replica":
Utilizziamo l'opzione "Aggiungi nuovo slave di replica" poiché assumiamo che il nodo remoto è una nuova installazione, in caso contrario puoi utilizzare l'opzione "Importa slave di replica esistente".
Qui devi solo scegliere il tuo server Master, inserire l'indirizzo IP per il tuo nuovo server slave e la porta del database. Quindi è possibile scegliere se si desidera che ClusterControl installi il software e se lo slave di replica deve essere sincrono o asincrono. Anche in questo caso, se si aggiunge un nodo in un data center diverso, è necessario utilizzare la replica asincrona per evitare problemi relativi alle prestazioni della rete.
In questo modo, puoi aggiungere tutte le repliche che desideri e distribuire il traffico di lettura tra di esse utilizzando un sistema di bilanciamento del carico, che puoi implementare anche con ClusterControl.
Puoi monitorare la creazione dello slave di replica nel monitor dell'attività di ClusterControl.
E controlla la tua topologia finale nella sezione Vista topologia.
Replica da cluster a cluster nel cloud
Invece di utilizzare l'opzione "Aggiungi slave di replica" per avere un ambiente multi-cloud, è possibile utilizzare la funzione ClusterControl Replica da cluster a cluster per aggiungere un cluster remoto. Al momento, questa funzionalità ha una limitazione per PostgreSQL che ti consente di avere un solo nodo remoto, quindi è abbastanza simile al modo precedente, ma stiamo lavorando per rimuovere questa limitazione presto in una versione futura.
Per creare un nuovo cluster slave, vai su ClusterControl -> Seleziona cluster -> Azioni cluster -> Crea cluster slave.
Il cluster slave verrà creato tramite lo streaming dei dati dal cluster master corrente.
In questa sezione, devi scegliere il nodo master del cluster corrente da cui i dati verranno replicati.
Quando vai al passaggio successivo, devi specificare Utente, Chiave o Password e porta per connettersi tramite SSH ai tuoi server. Hai anche bisogno di un nome per il tuo Cluster Slave e se vuoi che ClusterControl installi per te il software e le configurazioni corrispondenti.
Dopo aver impostato le informazioni di accesso SSH, è necessario definire la versione del database, datadir, porta e credenziali di amministratore. Poiché utilizzerà la replica in streaming, assicurati di utilizzare la stessa versione del database e le stesse credenziali utilizzate nel Master Cluster. Puoi anche specificare quale repository utilizzare.
In questo passaggio, è necessario aggiungere il server per il nuovo cluster slave . Per questa attività, puoi inserire sia l'indirizzo IP che il nome host del nodo del database.
Puoi monitorare la creazione del cluster slave nel monitor attività ClusterControl. Al termine dell'attività, puoi vedere il cluster nella schermata principale di ClusterControl.
Conclusione
Queste funzionalità di ClusterControl ti permetteranno di configurare rapidamente la replica tra diversi Cloud Provider per un database PostgreSQL (e diverse tecnologie) e gestire la configurazione in modo semplice e intuitivo. Riguardo alla comunicazione tra i Cloud Provider, per motivi di sicurezza, è necessario limitare il traffico solo da fonti conosciute, quindi solo dal Cloud Provider 1 al Cloud Provider 2 e viceversa.