Un database cloud ibrido è un mix di host attivi che risiedono su infrastrutture sia on-premise che cloud, che funzionano come un unico sistema operativo. Aiuta a implementare un ambiente ad alta disponibilità e, poiché sia il database che le applicazioni devono essere portabili per funzionare in locale e nel cloud, riduce anche la dipendenza da un particolare fornitore di cloud (vincolo del fornitore di cloud). Tuttavia, implementare questo tipo di ambiente non è così semplice.
In questo post del blog, esamineremo l'utilizzo di ClusterControl per distribuire un database MySQL nel cloud ibrido, tra l'infrastruttura on-premise e quella cloud in esecuzione su AWS. Questa configurazione ci consente di avvicinare il database ai client e alle applicazioni che risiedono in un ambiente cloud e manterremo una replica del database in locale per scopi di ripristino di emergenza e backup in tempo reale.
Architettura
La nostra distribuzione è composta da quattro nodi:un nodo per ClusterControl e un nodo per server master altri due nodi si trovano nei server slave, dove 2 dei nodi del database si trovano nel data center AWS come data center primario (oltre a ClusterControl), mentre il terzo nodo si trova nel data center in loco. Il diagramma seguente illustra la nostra architettura finale.
Preparazione del tuo ambiente cloud
Per prima cosa, devi creare il tuo ambiente con il tuo Cloud Provider principale. In questo caso, utilizzeremo AWS con tre istanze EC2.
Quindi, vai all'ambiente locale e crea una macchina virtuale o un host che sarà il nodo di standby.
ClusterControl - 52.14.222.75
Master - 3.17.190.53
Slave 1 - 3.14.146.131
Slave 2 - 192.168.33.15
Supponiamo che tu abbia un'installazione ClusterControl in esecuzione e che tu abbia già creato degli account Cloud Provider. Tieni presente che stiamo utilizzando istanze cloud con IP pubblici ai fini del blog. Per una configurazione di livello produttivo, devi proteggere il tuo ambiente, ad esempio le VM cloud dovrebbero trovarsi all'interno di un VPC con solo indirizzi IP privati. Avresti una connessione sicura tra il locale e il VPC.
Distribuzione di MySQL utilizzando ClusterControl
Vai alla GUI di ClusterControl e seleziona l'opzione "Distribuisci". Se hai già un'istanza MySQL in esecuzione, devi invece selezionare "Importa server/database esistente".
Qui faremo una nuova distribuzione, quindi selezioniamo l'opzione "Distribuisci". Quando selezioni MySQL, devi specificare Utente, Chiave o Password e la porta per connetterti tramite SSH ai tuoi nodi MySQL .
Per maggiori dettagli sulla connettività SSH, controlla i requisiti utente di ClusterControl.
Dopo aver configurato l'accesso SSH, è necessario definire l'utente e la versione del database. Datadir è facoltativo. Puoi anche specificare quale repository utilizzare. Qui stiamo scegliendo la versione MySQL 8.0.
Assicurati di avere un'icona di spunta verde che indica che ClusterControl è in grado di connettersi ai nodi del database per eseguire la distribuzione. Fare clic sul pulsante "Distribuisci" per avviare la distribuzione e puoi monitorare l'avanzamento della distribuzione in Attività -> Lavori -> Crea cluster. È possibile monitorare lo stato di creazione nel monitoraggio attività di ClusterControl.
Una volta terminata l'attività, puoi vedere la tua nuova configurazione MySQL nella schermata principale di ClusterControl.
E controlla la tua topologia finale nella sezione Vista topologia.
Conclusione
Le funzionalità di ClusterControl ti permetteranno di configurare rapidamente la replica in un ambiente cloud ibrido, tra diversi provider cloud o anche tra un provider cloud e un ambiente on-premise. Riguardo alla comunicazione tra i fornitori di servizi cloud, o tra cloud privato e pubblico, per motivi di sicurezza, devi limitare il traffico solo da fonti note, per ridurre il rischio di accesso non autorizzato alla tua rete.