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

Come distribuire ClusterControl su AWS per gestire il tuo database cloud


ClusterControl è indipendente dall'infrastruttura:può essere utilizzato nel tuo data center su host fisici, nonché in ambienti cloud virtualizzati. Tutto ciò di cui hai bisogno è l'accesso ssh dall'host ClusterControl ai nodi del database, quindi puoi distribuire MySQL/MariaDB standalone/replicato/in cluster, MongoDB (set di repliche o cluster partizionati) o PostgreSQL (replica in streaming). In questo post del blog, ti guideremo attraverso i passaggi per distribuire ClusterControl su EC2.

Configurazione di istanze in EC2

I requisiti hardware per ClusterControl sono descritti qui. Questi hanno lo scopo di creare una piattaforma performante per il server ClusterControl. Detto questo, utilizzeremo una piccola istanza per i nostri scopi di test (t2.micro):dovrebbe essere sufficiente per noi.

Innanzitutto, dobbiamo scegliere un'AMI. ClusterControl supporta:

  • Redhat/CentOS/Oracle Linux 6 e versioni successive
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 e versioni successive

Useremo Ubuntu 16.04.

Passaggio successivo:tipo di istanza. Per ora sceglieremo t2.micro, anche se vorrai utilizzare istanze più grandi per le impostazioni di produzione. Per altri fornitori di servizi cloud, scegli le istanze con almeno 1 GB di memoria.

Distribuiremo quattro istanze contemporaneamente, una per ClusterControl e tre per Percona XtraDB Cluster. Devi decidere dove distribuire tali istanze (VPC o meno, quale sottorete ecc.). Per i nostri scopi di test, utilizzeremo un VPC e una singola sottorete. Ovviamente, la distribuzione di nodi nelle sottoreti (zone di disponibilità) aumenta le probabilità di sopravvivenza della tua configurazione se una delle AZ diventasse non disponibile.

Per l'archiviazione utilizzeremo 100 GB di volume SSD per uso generale (GP2). Questo dovrebbe essere sufficiente per eseguire alcuni test con un volume di dati ragionevole.

Avanti:gruppi di sicurezza. L'accesso SSH è un requisito. Oltre a ciò, è necessario aprire le porte richieste dal database che si prevede di distribuire. Puoi trovare maggiori informazioni su quali porte sono necessarie nel nostro portale di supporto.

Infine, devi scegliere una delle coppie di chiavi esistenti oppure puoi crearne una nuova. Dopo questo passaggio le tue istanze verranno avviate.

Una volta che le istanze sono attive e in esecuzione, è il momento di installare ClusterControl. Per questo, accedi a una delle istanze e scarica lo script di installazione di ClusterControl, install-cc:

[email protected]:~$ wget http://www.severalnines.com/downloads/cmon/install-cc
--2017-09-06 11:13:10--  http://www.severalnines.com/downloads/cmon/install-cc
Resolving www.severalnines.com (www.severalnines.com)... 107.154.146.155
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:10--  https://www.severalnines.com/downloads/cmon/install-cc
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:11--  https://severalnines.com/downloads/cmon/install-cc
Resolving severalnines.com (severalnines.com)... 107.154.238.155, 107.154.148.155
Connecting to severalnines.com (severalnines.com)|107.154.238.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 56913 (56K) [text/plain]
Saving to: ‘install-cc’

install-cc                                           100%[=====================================================================================================================>]  55.58K   289KB/s    in 0.2s

2017-09-06 11:13:12 (289 KB/s) - ‘install-cc’ saved [56913/56913]

Quindi, assicurati che possa essere eseguito prima di eseguirlo:

[email protected]:~$ chmod +x install-cc
[email protected]:~$ sudo ./install-cc

All'inizio, otterrai alcune informazioni sui requisiti delle distribuzioni Linux supportate:

!!
Only RHEL/Centos 6.x|7.x, Debian 7.x|8.x, Ubuntu 12.04.x|14.04.x|16.04.x LTS versions are supported
Minimum system requirements: 2GB+ RAM, 2+ CPU cores
Server Memory: 990M total, 622M free
MySQL innodb_buffer_pool_size set to 512M

Severalnines would like your help improving our installation process.
Information such as OS, memory and install success helps us improve how we onboard our users.
None of the collected information identifies you personally.
!!
=> Would you like to help us by sending diagnostics data for the installation? (Y/n):

This script will add Severalnines repository server for deb and rpm packages and
install the ClusterControl Web Applicaiton and Controller.
An Apache and MySQL server will also be installed. An existing MySQL Server on this host can be used.

Ad un certo punto dovrai rispondere ad alcune domande su nomi host, porte e password.

=> The Controller hostname will be set to 172.30.4.20. Do you want to change it? (y/N):
=> Creating temporary staging dir s9s_tmp

=> Setting up the ClusterControl Web Application ...
=> Using web document root /var/www/html
=> No running MySQL server detected
=> Installing the default distro MySQL Server ...
=> Assuming default MySQL port is 3306. Do you want to change it? (y/N):

=> Enter the MySQL root password:
=> Enter the MySQL root password again:
=> Importing the Web Application DB schema and creating the cmon user.

=> Importing /var/www/html/clustercontrol/sql/dc-schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Set a password for ClusterControl's MySQL user (cmon) [cmon]
=> Enter a CMON user password:
=> Enter the CMON user password again: => Creating the MySQL cmon user ...
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Creating UI configuration ...

Infine, riceverai la conferma che ClusterControl è stato installato. Lo script di installazione tenterà inoltre di rilevare il tuo IP pubblico e di stampare un collegamento che può essere utilizzato nel browser per accedere a ClusterControl.

=> ClusterControl installation completed!
Open your web browser to http://172.30.4.20/clustercontrol and
enter an email address and new password for the default Admin User.

Determining network interfaces. This may take a couple of minutes. Do NOT press any key.
Public/external IP => http://34.230.71.40/clustercontrol
Installation successful. If you want to uninstall ClusterControl then run install-cc --uninstall.

Una volta completata l'installazione, c'è ancora una cosa di cui occuparsi:l'accesso SSH da ClusterControl agli host rimanenti. A meno che tu non abbia già accesso SSH tra i nodi (e puoi usare ssh-copy-id), questo sarà un processo manuale. Innanzitutto, dobbiamo generare una nuova chiave ssh:

[email protected]:~# ssh-keygen -C 'galera_cluster' -f id_rsa_galera -t rsa -b 4096
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_galera.
Your public key has been saved in id_rsa_galera.pub.
The key fingerprint is:
SHA256:2tWOGXbrtc0Qh45NhNPzUSVdDzE9ANV1TJ0QBE5QrQY galera_cluster
The key's randomart image is:
+---[RSA 4096]----+
|         .o=**X*&|
|         Eo  + BO|
|          ..+ +.o|
|           + o +.|
|        S = o + o|
|       o o * * o |
|      . . o + =  |
|           . . = |
|            . . o|
+----[SHA256]-----+
[email protected]:~#

Possiamo verificare che sia stato creato correttamente. Dovrai anche copiare il contenuto della chiave pubblica:la useremo per crearne le copie sui nodi rimanenti.

[email protected]:~# cat id_rsa_galera.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYKil17MzTrNc70GIQlVoK6xLop9acfT3W6kBUGO4ybsvIA5Fss+WvT/DLsYMtukq2Eih93eO4amLRYQIeyWSjJ/bBwIF/LXL4v04GF8+wbDgCyiV/t9dSuXna9qFeawkUVcPjnmWnZqUoaP5QeovXTluxl54xEwbFm1oLT+fgWbaim5w9vVUK4+hAHaZ7wVvTPVsIt1B3nJgWJF0Sz+TJN87vSUg7xdshgzhapUotXlguFGVzmNKWLnEFDCK7RT41oh4y4rkKP7YLc+wFfRHYTnKyMIcf0/0VMyL+2AdwQp8RThbBommf2HGimF1hSyA9/fc+tLi7FVTg1bKKeXj4hwexeFAJZwoy3HyD3wQ/NwadpDVk5Pg7YYzdN2aCZfvo27qp3gdQQ2H+LF6LvDyQEkgRpFN+pHoWQvPjJJasjfIcfdaC9WmDiL4s5fXyCTQz/x0NaTXVkLBS9ibfOUw8AGdd36FvdqnNOFOlMLKLa359JhdpqXnH7ksiThcotQuFmV5Dc8M66vTDz9rvVZhNC0nME478RNBP0Bgj1BM26XdQlzozeaRmHGoZXcSQVJTXBC93+QN4+bRmWmxhhj5G5M7bFiQyal1VtugoUt8ZV4NiiG+KDd6yj5um8+CffD/BASGrv3vffH+AK7xtjchIv5su40+unecfSOtO98TiQw== galera_cluster

Ora, su ogni nodo rimanente, devi aggiungere questa chiave pubblica nel file authorized_keys. Per Ubuntu, potresti voler prima pulire il suo contenuto se vuoi usare un login di root. Per impostazione predefinita, solo l'utente Ubuntu può essere utilizzato per connettersi tramite SSH. Tale configurazione (utente normale e sudo) può essere utilizzata anche con ClusterControl, ma qui andremo per un utente root.

[email protected]:~# vim ~/.ssh/authorized_keys

Una volta che i file authorized_keys su tutti i nodi contengono la nostra chiave pubblica, copieremo la nostra chiave pubblica nella directory .ssh e apporteremo le modifiche necessarie ai diritti di accesso:

[email protected]:~# cp id_rsa_galera /root/.ssh/
[email protected]:~# chmod 600 /root/.ssh/id_rsa_galera

Ora possiamo verificare se l'accesso SSH funziona come previsto:

[email protected]:~# ssh -i /root/.ssh/id_rsa_galera 172.30.4.46
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1022-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


[email protected]:~# logout
Connection to 172.30.4.46 closed.

Va tutto bene. È ora di configurare ClusterControl.

Inserisci alcuni dettagli di registrazione.

Dopo aver effettuato l'accesso, verrà visualizzata una procedura guidata con un'opzione per distribuire un nuovo cluster o importarne uno esistente.

Vogliamo distribuire il cluster Percona XtraDB, quindi andremo su "Distribuisci cluster di database" e sceglieremo la scheda "MySQL Galera". Qui dobbiamo compilare i dettagli di accesso richiesti per la connettività SSH. Imposteremo l'utente SSH su root e compileremo il percorso della nostra chiave SSH.

Successivamente, definiremo un fornitore, una versione, una password e indirizzi IP per i nostri host di database. Tieni presente che ClusterControl verificherà la connettività SSH agli host di database di destinazione. Se tutto funziona correttamente, vedrai dei segni di spunta verdi. Se vedi che l'autenticazione SSH non è riuscita, dovrai indagare poiché il server ClusterControl non è in grado di accedere ai tuoi host di database.

Quindi, fai clic su Distribuisci per avviare il processo di distribuzione.

Puoi tenere traccia dell'avanzamento della distribuzione nel monitoraggio attività.

Ricorda che la distribuzione è solo il primo passo. Il funzionamento di un database richiede il monitoraggio delle prestazioni degli host, delle istanze del database, delle query e della gestione dei backup, della correzione di errori e altre anomalie, della gestione di proxy, aggiornamenti, ecc. ClusterControl può gestire tutti questi aspetti per te, quindi provalo e facci sapere come ti trovi.