Mysql
 sql >> Database >  >> RDS >> Mysql

Come migrare MySQL da Amazon EC2 al tuo data center on-premise senza tempi di inattività

Sin dal suo inizio, c'è stato un numero crescente di migrazioni verso un ambiente basato su cloud. Dopotutto, il cloud computing può offrire molti vantaggi alle aziende, in particolare a quelle che lavorano con i big data.

Tuttavia, con l'aumento della domanda, aumentano anche i costi e potresti trovarti in una situazione in cui le spese mensili per il cloud diventano troppo elevate e gli aspetti negativi superano presto i vantaggi dell'operazione nel cloud. O forse hai requisiti di sicurezza o conformità che richiedono un controllo più diretto dei tuoi sistemi. In definitiva, ciò potrebbe richiedere la tua migrazione a un ambiente on-premise.

AWS fornisce strumenti di monitoraggio e gestione per eseguire il nostro sistema nel cloud pur avendo visibilità e controllo per l'ottimizzazione. Tuttavia, quando ci troviamo pronti per una soluzione in loco, può essere difficile migrare i nostri dati e ricreare tutti gli strumenti per gestire correttamente i nostri sistemi.

In questo blog, discuteremo di come migrare i tuoi sistemi da AWS a un data center in loco e di come ClusterControl può aiutarti a semplificare il processo.

Concetti

Prima di iniziare, esaminiamo alcuni concetti di base su Amazon Cloud e ClusterControl.

AWS

Amazon Web Services (AWS) è una piattaforma Infrastructure as a Service composta da un gran numero di servizi indipendenti e semi-indipendenti. Lo scopo della piattaforma Infrastructure as a Service è offrire, su base merceologica, servizi che in precedenza richiedevano l'acquisto di componenti infrastrutturali ad alta intensità di capitale come server di fascia alta, router di rete e switch, e per le grandi imprese, anche il loro propri datacenter.

RDS

Amazon Relational Database Service (RDS) semplifica la configurazione, il funzionamento e la scalabilità di un database relazionale nel cloud. Fornisce una capacità ridimensionabile e conveniente, automatizzando al contempo attività di amministrazione che richiedono tempo, come il provisioning dell'hardware, la configurazione del database, l'applicazione di patch e i backup.

Amazon RDS è disponibile su diversi tipi di istanze di database e offre sei sistemi di gestione di database familiari tra cui scegliere, tra cui Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database e SQL Server.

EC2

Amazon Elastic Compute Cloud (EC2) è un servizio che fornisce capacità di calcolo sicura e ridimensionabile nel cloud. È progettato per semplificare il cloud computing su scala Web per gli sviluppatori.

La semplice interfaccia web di Amazon EC2 ti consente di ottenere e configurare la capacità con il minimo attrito. Ti offre il controllo completo delle tue risorse informatiche e ti consente di eseguire il collaudato ambiente informatico di Amazon.

Controllo cluster

ClusterControl è un sistema di gestione completo per database open source che automatizza la distribuzione, le funzioni di gestione e il monitoraggio dello stato e delle prestazioni da un unico pannello.

ClusterControl supporta l'implementazione, la gestione, il monitoraggio e il ridimensionamento per diverse tecnologie di database in qualsiasi ambiente.

Perché migrare in locale?

Come accennato in precedenza, i motivi più comuni per la migrazione da AWS a un ambiente on-premise sono i costi, la sicurezza, la conformità o l'esecuzione di applicazioni locali. In AWS, non sai cosa sta succedendo sotto il cofano dell'infrastruttura. Sai solo se tutto funziona. Se riscontri prestazioni scarse o anomalie, l'unica soluzione è contattare l'assistenza Amazon.

Esempio di scenario di migrazione

In AWS, hai due diversi prodotti correlati a questo blog:EC2 e RDS.

La differenza principale tra loro è che in EC2 hai accesso SSH al server e devi gestire il database da solo. RDS è un servizio di database ospitato e hai accesso solo all'istanza del database.

In RDS, poiché non si dispone dell'accesso SSH, è necessario creare un dump e importarlo nel nuovo server, oppure configurare la replica e promuovere la replica al nuovo primario. Per entrambe le opzioni, il processo è manuale. Puoi anche aggiungere un sistema di bilanciamento del carico per migliorare questo processo. Abbiamo trattato questo compito in questi blog:Parte 1 e Parte 2.

Quindi, concentriamoci sulla migrazione da EC2.

Nel nostro esempio, vediamo come migrare MySQL da AWS EC2 a un data center in loco. Utilizzeremo un ambiente di replica MySQL, ma questi passaggi dovrebbero funzionare per altre tecnologie come PostgreSQL.

Supponiamo che tu abbia il tuo database MySQL principale in esecuzione su un'istanza EC2. Nel data center in loco, supponiamo anche che tu abbia installato ClusterControl e un nuovo server di database su cui migrare.

Nella console di gestione AWS, dovresti avere qualcosa di simile in EC2 sezione istanze:

Per prima cosa, devi importare il tuo attuale nodo primario in esecuzione su EC2 a ClusterControl. Per questo processo di importazione, devi aprire la porta 3306 modificando il gruppo di sicurezza associato all'istanza EC2.

Dopo questo, in ClusterControl, vai alla sezione Importa:

Lì puoi scegliere la tecnologia del database, in questo esempio MySQL Replication, e devi specificare l'utente, la chiave o la password e la porta per connetterti al tuo server tramite SSH Devi anche fornire il nome del tuo nuovo cluster.

 

Dopo aver impostato le informazioni di accesso SSH, è necessario definire alcune informazioni sul database come le credenziali di amministratore del database, la porta e basedir. Inoltre, puoi abilitare le funzionalità ClusterControl Node AutoRecovery e Cluster AutoRecovery per il nuovo cluster.

Quindi, devi aggiungere il tuo server utilizzando l'indirizzo IP o il nome host e premere Importa.

Al termine, puoi monitorare lo stato del processo di importazione dal Monitoraggio attività ClusterControl.

Una volta completata l'attività, vedrai il nodo del database nella Schermata ClusterControl:

Assicurati di abilitare la generazione di binlog nel tuo attuale database principale.

Ora puoi aggiungere il tuo futuro nuovo nodo primario come nuova replica dal tuo attuale database primario. Per questo, vai su ClusterControl -> Seleziona cluster -> Azioni cluster -> Aggiungi slave di replica.

Qui è necessario aggiungere il nome host o l'indirizzo IP della nuova replica server e se vuoi che ClusterControl installi il software per te.

Assicurati di disporre della connettività da AWS alle porte 3306 e 9999 nel server in loco.

ClusterControl esegue la replica in fasi con i dati eseguendo un backup a caldo del primario, trasmettendolo in streaming alla replica e ripristinandolo lì. Una volta ripristinato, il nodo di replica è connesso al nodo primario in modo che possa aggiornarsi sugli eventi e sincronizzarsi. Si noti che per database di grandi dimensioni in esecuzione con un certo carico, è possibile evitare il carico aggiuntivo di questa operazione sul nodo primario. In tal caso, è possibile creare prima il nodo di replica da un backup esistente e quindi connettere la replica, in modo che raggiunga il nodo primario.

Dopo questa attività, dovresti avere qualcosa del genere:

Puoi anche verificare la tua topologia nella sezione ClusterControl Topology.

Quindi, devi promuovere la replica a primaria (ClusterControl -> Seleziona Cluster -> Azioni nodo -> Promuovi slave) e modifica l'endpoint nella tua applicazione.

Per migliorare questa topologia, puoi aggiungere un sistema di bilanciamento del carico per gestire il traffico dal server delle applicazioni al database. Quando si utilizza un sistema di bilanciamento del carico, non sarà necessario modificare l'endpoint dall'applicazione durante la migrazione; il sistema di bilanciamento del carico cambierà il nodo primario in modo trasparente.

Ci sono molti modi per eseguire questa attività e dovresti essere in grado di adotta una strategia come questa per il tuo ambiente, a seconda della tua infrastruttura, sicurezza, ecc.

Per motivi di sicurezza, dovresti prendere in considerazione l'utilizzo di una VPN tra AWS e l'ambiente locale.

Nel caso di una topologia multi-master come Galera Cluster, devi solo aggiungere i nodi che vuoi in locale, ma fai attenzione alla latenza. Puoi utilizzare, ad esempio, diversi segmenti Galera per ridurre l'utilizzo della rete.

Considerazioni per la migrazione

Infine, ecco alcune considerazioni da tenere in considerazione se vuoi lasciare AWS e iniziare a utilizzare il tuo ambiente:

  • Monitoraggio:non dimenticare di utilizzare un sistema di monitoraggio. Devi sapere cosa sta succedendo nel tuo sistema tutto il tempo!
  • Strategia di ripristino di emergenza:dovresti considerare un buon DRP. In generale, dovresti avere le informazioni in tre diverse posizioni fisiche:Primaria, Replica e Backup.
  • Alta disponibilità:al giorno d'oggi, l'alta disponibilità è un must nella maggior parte degli ambienti di produzione, quindi devi pensare alla migliore soluzione di alta disponibilità a seconda della tua infrastruttura.
  • Ridimensionamento:dovresti essere in grado di ridimensionare se necessario in futuro o per un evento specifico.
  • Rollback:se desideri migrare da AWS a un ambiente on-premise, tieni presente che qualcosa potrebbe andare storto (come in qualsiasi tipo di migrazione), quindi dovresti avere un piano di rollback.
  • Supponi di essere alla ricerca di una sorta di ambiente ibrido, con istanze in esecuzione su AWS e in locale. In tal caso, ClusterControl è una soluzione eccellente per il monitoraggio, la gestione della disponibilità, i backup, il ridimensionamento e altro ancora. Provalo!

Conclusione

A volte, operare nel cloud non è la soluzione migliore e potresti trovarti a dover migrare di nuovo a una soluzione on-premise. Ci auguriamo che questo blog ti abbia fornito alcune informazioni utili sulla migrazione dei tuoi dati basati su MySQL al tuo data center in loco da AWS e su come ClusterControl fornisce gli strumenti necessari per gestire correttamente i tuoi sistemi.

Una volta completata con successo la migrazione, aumenta di livello il tuo sistema di monitoraggio con strategie proattive come gli avvisi predittivi. Dai un'occhiata al nostro post aggiornato di recente sul monitoraggio del database con ClusterControl per saperne di più.

Per ulteriori aggiornamenti su suggerimenti e best practice per la gestione del database, assicurati di iscriverti al nostro blog, feed RSS e seguici su LinkedIn e Twitter.