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

Sådan implementerer du ClusterControl på AWS for at administrere din clouddatabase


ClusterControl er infrastrukturagnostisk - den kan bruges i dit eget datacenter på fysiske værter såvel som i virtualiserede cloudmiljøer. Alt du behøver er ssh-adgang fra ClusterControl-værten til databasenoderne, og du kan derefter implementere selvstændige/replikede/clustered MySQL/MariaDB, MongoDB (replikasæt eller sharded clusters) eller PostgreSQL (streaming-replikering). I dette blogindlæg vil vi guide dig gennem trinene til at implementere ClusterControl på EC2.

Opsætning af instanser i EC2

Hardwarekravene til ClusterControl er beskrevet her. Disse er beregnet til at skabe en effektiv platform til ClusterControl-serveren. Når det er sagt, vil vi bruge en lille instans til vores testformål (t2.micro) - det burde være nok for os.

Først skal vi vælge en AMI. ClusterControl understøtter:

  • Redhat/CentOS/Oracle Linux 6 og nyere
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 og nyere

Vi skal bruge Ubuntu 16.04.

Næste trin - instanstype. Vi vælger t2.micro indtil videre, selvom du vil bruge større instanser til produktionsopsætninger. For andre cloud-udbydere skal du vælge forekomster med mindst 1 GB hukommelse.

Vi vil implementere fire forekomster på én gang, en til ClusterControl og tre til Percona XtraDB Cluster. Du skal beslutte, hvor disse forekomster skal installeres (VPC eller ej, hvilket undernet osv.). Til vores testformål vil vi bruge en VPC og et enkelt undernet. Selvfølgelig gør implementering af noder på tværs af undernettene (Availability Zones) din opsætning mere sandsynligt, at den overlever, hvis en af ​​AZ'erne ville blive utilgængelig.

Til opbevaring bruger vi 100 GB SSD-volumen til almindelig brug (GP2). Dette burde være nok til at udføre nogle test med en rimelig mængde data.

Næste - sikkerhedsgrupper. SSH-adgang er et krav. Bortset fra det skal du åbne porte, der kræves af den database, du planlægger at implementere. Du kan finde mere information om, hvilke porte der kræves i vores supportportal.

Til sidst skal du enten vælge et af de eksisterende nøglepar, eller du kan oprette et nyt. Efter dette trin vil dine forekomster blive lanceret.

Når forekomsterne er oppe og køre, er det tid til at installere ClusterControl. For det skal du logge ind på en af ​​forekomsterne og downloade ClusterControl-installationsscriptet, 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] 

Sørg derefter for, at det kan udføres, før du kører det:

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

I begyndelsen får du nogle oplysninger om kravene til understøttede Linux-distributioner:

!! 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.

På et tidspunkt bliver du nødt til at besvare nogle spørgsmål om værtsnavne, porte og adgangskoder.

=> 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 ... 

Til sidst får du bekræftelsen på, at ClusterControl er blevet installeret. Installationsscript vil også forsøge at finde din offentlige IP og udskrive et link, der kan bruges i din browser til at få adgang til 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. 

Når installationen er færdig, er der stadig én ting at tage sig af - SSH-adgang fra ClusterControl til de resterende værter. Medmindre du allerede har SSH-adgang mellem noder (og du kan bruge ssh-copy-id), vil dette være en manuel proces. Først og fremmest skal vi generere en ny ssh-nøgle:

[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]:~# 

Vi kan bekræfte, at den er oprettet korrekt. Du vil også gerne kopiere indholdet af den offentlige nøgle - vi vil bruge den til at oprette dens kopier på de resterende noder.

[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 

Nu, på hver resterende node, skal du tilføje denne offentlige nøgle til filen authorized_keys. For ubuntu vil du måske først rense dets indhold, hvis du vil bruge et root-login. Som standard kan kun ubuntu-brugere bruges til at oprette forbindelse via SSH. Sådan opsætning (almindelig bruger og sudo) er også muligt at bruge med ClusterControl, men her går vi efter en root-bruger.

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

Når authorized_keys-filer på alle noder indeholder vores offentlige nøgle, kopierer vi vores offentlige nøgle til .ssh-biblioteket og foretager nødvendige ændringer i adgangsrettigheder:

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

Nu kan vi teste, om SSH-adgang fungerer som forventet:

[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. 

Alt er godt. Det er tid til at konfigurere ClusterControl.

Udfyld nogle registreringsoplysninger.

Når du er logget ind, vises en guide med en mulighed for enten at implementere en ny klynge eller importere en eksisterende.

Vi ønsker at implementere Percona XtraDB Cluster, så vi går efter "Deploy Database Cluster" og vælger fanen "MySQL Galera". Her skal vi udfylde adgangsoplysninger, der kræves for SSH-forbindelse. Vi indstiller SSH User til root, og vi udfylder stien til vores SSH-nøgle.

Dernæst definerer vi en leverandør, version, adgangskode og IP-adresser for vores databaseværter. Husk, at ClusterControl kontrollerer SSH-forbindelse til måldatabaseværterne. Hvis alt fungerer ok, vil du se grønne flueben. Hvis du ser, at SSH-godkendelse mislykkedes, bliver du nødt til at undersøge det, da ClusterControl-serveren ikke er i stand til at få adgang til dine databaseværter.

Klik derefter på Implementer for at starte implementeringsprocessen.

Du kan spore implementeringsforløbet i aktivitetsmonitoren.

Husk, at implementering kun er det første skridt. Drift af en database kræver, at du overvåger ydeevnen af ​​dine værter, databaseforekomster, forespørgsler og administrerer sikkerhedskopier, reparerer fejl og andre uregelmæssigheder, administrerer proxyer, opgraderinger osv. ClusterControl kan administrere alle disse aspekter for dig, så prøv det fortæl os, hvordan du kommer videre.


  1. Masseopdatering af dokumenter i MongoDB

  2. Hvordan kører man Redis på Amazon OpsWorks for en Rails-applikation?

  3. Få adgang til dockerized redis fra windows vært

  4. Redis Update Sorteret Sæt ved Key Expire