MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Automatizzare e gestire MongoDB nel Cloud

La gestione del database è stata tradizionalmente complessa e dispendiosa in termini di tempo. La distribuzione, con i grattacapi di sicurezza, reti complesse, pianificazione e implementazione del backup e monitoraggio, è stata un grattacapo. La scalabilità orizzontale del cluster di database è stata un'impresa importante. E in un mondo in cui sono previste disponibilità 24 ore su 24, 7 giorni su 7 e un rapido ripristino di emergenza, la gestione anche di un singolo cluster di database può essere un lavoro a tempo pieno.

ClusterControl di Manynines è un sistema di distribuzione e gestione del database che affronta quanto sopra, facilitando la rapida distribuzione di cluster o nodi di database ridondanti e sicuri, comprese funzionalità avanzate di backup e monitoraggio, sia in sede che nel cloud. Con i plug-in che supportano Nagios, PagerDuty e Zabbix, tra gli altri, ClusterControl si integra bene con l'infrastruttura e gli strumenti esistenti per aiutarti a gestire i server di database in tutta sicurezza.

MongoDB è oggi il server di database NoSQL leader nel mondo. Utilizzando ClusterControl, con il quale è possibile distribuire e gestire MongoDB ufficiale o Percona Server per MongoDB, l'offerta concorrente di Percona che incorpora le funzionalità MongoDB Enterprise, analizzeremo la distribuzione di un MongoDB Replica Set con tre nodi di dati e esamineremo alcune delle funzionalità dell'applicazione ClusterControl.

Esamineremo alcune funzionalità chiave di ClusterControl, in particolare per quanto riguarda MongoDB, utilizzando Amazon Web Services. Amazon Web Services (o AWS) è il più grande provider di servizi cloud Infrastructure as a Service a livello globale, che ospita milioni di utenti in tutto il mondo. Comprende molti servizi per tutti i casi d'uso dallo storage di oggetti virtualmente illimitato con S3 e un'infrastruttura di macchine virtuali altamente scalabile che utilizza EC2 fino all'archiviazione di database aziendali con Redshift e persino Machine Learning.

Dopo aver letto questo blog, potresti anche voler leggere il nostro Whitepaper fai-da-te sul database cloud su Amazon Web Services, che discute in modo più dettagliato le considerazioni sulla configurazione e sulle prestazioni per i server di database nel cloud AWS. Inoltre, abbiamo Diventa un DBA MongoDB, un whitepaper con dettagli più approfonditi specifici di MongoDB.

Per iniziare, devi prima distribuire quattro istanze AWS. Per una piattaforma di produzione, il tipo di istanza dovrebbe essere scelto con cura in base alle linee guida che abbiamo discusso in precedenza, ma per i nostri scopi saranno sufficienti istanze con 2 CPU virtuali e 4 GB di RAM. Uno di questi nodi ospiterà ClusterControl, gli altri verranno utilizzati per distribuire i tre nodi del database.

Inizia creando il gruppo di sicurezza dei nodi del database, consentendo il traffico in entrata sulla porta 27017. Non è necessario limitare il traffico in uscita, ma se lo desideri, consenti il ​​traffico in uscita sulle porte 1024-65535 per facilitare la comunicazione in uscita dai server di database .

Quindi crea il gruppo di sicurezza per il tuo nodo ClusterControl. Consenti il ​​traffico in entrata sulle porte 22 e 80. Aggiungi questo ID del gruppo di sicurezza al gruppo di sicurezza dei nodi del database e consenti la comunicazione TCP illimitata. Ciò faciliterà la comunicazione tra i due gruppi di sicurezza, senza consentire l'accesso ssh ai nodi del database da client esterni.

Avvia le istanze nei rispettivi gruppi di sicurezza, scegliendo per ogni istanza una KeyPair per la quale hai la chiave ssh. Ai fini di questa attività, utilizzare la stessa KeyPair per tutte le istanze. Se hai perso la chiave ssh per la tua KeyPair, dovrai creare una nuova KeyPair. Quando avvii le istanze, non scegliere l'immagine Amazon Linux predefinita, scegli invece un'AMI basata su un sistema operativo supportato elencato qui. Poiché sto utilizzando la regione AWS EU-CENTRAL-1, utilizzerò l'AMI della community ami-fa2df395, un'immagine CentOS 7.3, a questo scopo.

Se hai installato gli strumenti a riga di comando di AWS, utilizza aws ec2 describe-instances comando descritto in precedenza per confermare che le tue istanze siano in esecuzione, altrimenti visualizza le tue istanze nella console Web AWS e, una volta confermato, accedi all'istanza ClusterControl tramite ssh.

Copia il file della chiave pubblica scaricato durante la creazione della KeyPair nell'istanza ClusterControl. Puoi usare scp comando per questo scopo. Per ora, lasciamolo nella directory /home/centos predefinita, la directory home dell'utente centos. Ho chiamato il mio s9s.pem. Avrai bisogno dello strumento wget installato; installalo usando il seguente comando:

$ sudo yum -y install wget

Per installare ClusterControl, eseguire i seguenti comandi:

$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ ./install-cc # as root or sudo user

L'installazione ti guiderà attraverso alcune domande iniziali, dopodiché ci vorranno alcuni minuti per recuperare e installare le dipendenze utilizzando il gestore di pacchetti del tuo sistema operativo.

Al termine dell'installazione, puntare il browser Web su http://. Puoi trovare l'indirizzo esterno dell'istanza utilizzando describe-instances comando o tramite la console Web AWS.

Dopo aver effettuato correttamente l'accesso, vedrai la seguente schermata e potrai continuare a distribuire il tuo MongoDB Replica Set.

Figura 1:Benvenuto in ClusterControl!

Come puoi vedere, ClusterControl può anche importare cluster di database esistenti, consentendogli di gestire la tua infrastruttura esistente con la stessa facilità con cui le nuove implementazioni.

Per i nostri scopi, fare clic su Distribuisci cluster di database . Nella schermata successiva vedrai la selezione dei server di database e dei tipi di cluster supportati da ClusterControl. Fare clic sulla scheda denominata MongoDB ReplicaSet . Qui i valori che ti interessano sono Utente SSH , Percorso chiave SSH e Nome cluster . La porta dovrebbe essere già 22, la porta ssh predefinita e l'AMI che stiamo utilizzando non richiede una Sudo Password .

Figura 2:distribuzione di un set di repliche MongoDB

L'utente ssh per l'AMI CentOS 7 è centos e il percorso della chiave SSH è /home/centos/s9s.pem o il percorso appropriato a seconda del nome del file della chiave. Usiamo MongoDB-RS0 come il nome del cluster. Accettando le opzioni predefinite, facciamo clic su Continua .

Figura 3:configurazione della distribuzione

Qui possiamo scegliere tra la build ufficiale MongoDB e una build Percona. Seleziona quello che preferisci e fornisci un utente e una password amministratore con cui configurare MongoDB in modo sicuro. Tieni presente che ClusterControl non ti consentirà di procedere a meno che tu non fornisca questi dettagli. Prendi nota delle credenziali che hai fornito, ti serviranno per accedere al database MongoDB distribuito, se desideri utilizzarlo in seguito. Ora scegli un nome per il set di repliche o accetta l'impostazione predefinita. Utilizzeremo i repository del fornitore, ma tieni presente che puoi configurare ClusterControl per utilizzare i tuoi repository o quelli di terze parti, se preferisci.

Aggiungi i tuoi nodi di database, uno alla volta. È possibile scegliere di utilizzare l'indirizzo IP esterno, ma se si fornisce il nome host, generalmente consigliato, ClusterControl registrerà tutte le interfacce di rete negli host e sarà possibile scegliere l'interfaccia su cui si desidera distribuire. Dopo aver aggiunto i tre nodi del database, fai clic su Distribuisci . ClusterControl ora distribuirà il set di repliche MongoDB. Fai clic su Dettagli completi sul lavoro da osservare mentre esegue la configurazione del tuo cluster. Al termine del lavoro, vai alla schermata Cluster di database e guarda il tuo cluster.

Figura 4:ripristino automatico

Dando un'occhiata più da vicino, puoi vedere che il ripristino automatico è abilitato sia a livello di cluster che di nodo; in caso di guasti, ClusterControl tenterà di ripristinare il cluster o il singolo nodo che presenta un problema. Il segno di spunta verde accanto a ciascun nodo mostra anche lo stato di salute del cluster a colpo d'occhio.

Figura 5:pianificazione dei backup

L'ultima caratteristica che tratteremo qui è Backups. ClusterControl fornisce una funzione di backup che consente un backup completo coerente con il cluster o semplicemente un mongodump standard backup se preferisci. Fornisce inoltre la possibilità di creare backup pianificati da eseguire periodicamente in base a una pianificazione a tua scelta. Viene anche gestita la conservazione dei backup, con la possibilità di conservare i backup per un periodo limitato, evitando problemi di archiviazione.

In questo blog ho tentato di darti una breve panoramica dell'utilizzo di ClusterControl con MongoDB, ma ci sono molte altre funzionalità supportate da ClusterControl. Sono disponibili la distribuzione di cluster frammentati, con slave nascosti e/o ritardati, arbitri e altre funzionalità. Maggiori informazioni sono disponibili sul nostro sito Web, dove puoi anche trovare webinar, whitepaper, tutorial e formazione e provare ClusterControl gratuitamente.