sql >> Databasteknik >  >> NoSQL >> MongoDB

Så här distribuerar du ClusterControl på AWS för att hantera din molndatabas


ClusterControl är infrastrukturagnostisk - den kan användas i ditt eget datacenter på fysiska värdar, såväl som i virtualiserade molnmiljöer. Allt du behöver är ssh-åtkomst från ClusterControl-värden till databasnoderna, och du kan sedan distribuera fristående/replikerade/klustrade MySQL/MariaDB, MongoDB (replikuppsättningar eller fragmenterade kluster) eller PostgreSQL (strömmande replikering). I det här blogginlägget går vi igenom stegen för att distribuera ClusterControl på EC2.

Konfigurera instanser i EC2

Hårdvarukraven för ClusterControl beskrivs här. De är avsedda att skapa en presterande plattform för ClusterControl-servern. Med det sagt kommer vi att använda en liten instans för våra teständamål (t2.micro) - det borde räcka för oss.

Först måste vi välja en AMI. ClusterControl stöder:

  • Redhat/CentOS/Oracle Linux 6 och senare
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 och senare

Vi kommer att använda Ubuntu 16.04.

Nästa steg - instanstyp. Vi kommer att välja t2.micro för nu, även om du kommer att vilja använda större instanser för produktionsinställningar. För andra molnleverantörer, välj instanser med minst 1 GB minne.

Vi kommer att distribuera fyra instanser samtidigt, en för ClusterControl och tre för Percona XtraDB Cluster. Du måste bestämma var dessa instanser ska distribueras (VPC eller inte, vilket undernät etc). För våra teständamål kommer vi att använda en VPC och ett enda subnät. Att distribuera noder över undernäten (tillgänglighetszoner) gör naturligtvis att din installation kommer att överleva om en av A-Ö skulle bli otillgänglig.

För lagring kommer vi att använda 100 GB generell SSD-volym (GP2). Detta bör vara tillräckligt för att utföra vissa tester med en rimlig mängd data.

Nästa - säkerhetsgrupper. SSH-åtkomst är ett krav. Förutom det måste du öppna portar som krävs av databasen du planerar att distribuera. Du kan hitta mer information om vilka portar som krävs i vår supportportal.

Slutligen måste du antingen välja ett av de befintliga nyckelparen eller så kan du skapa ett nytt. Efter detta steg kommer dina instanser att startas.

När instanserna väl är igång är det dags att installera ClusterControl. För det, logga in på en av instanserna och ladda ner ClusterControl-installationsskriptet, 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]

Se sedan till att det kan köras innan du kör det:

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

I början får du lite information om kraven på Linux-distributioner som stöds:

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

Vid något tillfälle måste du svara på några frågor om värdnamn, portar och lösenord.

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

Slutligen får du en bekräftelse på att ClusterControl har installerats. Installationsskriptet kommer också att försöka identifiera din offentliga IP och skriva ut en länk som kan användas i din webbläsare för att komma åt 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 är klar finns det fortfarande en sak att ta hand om - SSH-åtkomst från ClusterControl till de återstående värdarna. Om du inte redan har SSH-åtkomst mellan noder (och du kan använda ssh-copy-id), kommer detta att vara en manuell process. Först och främst måste vi generera en ny ssh-nyckel:

[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 verifiera att den har skapats korrekt. Du kommer också att vilja kopiera innehållet i den publika nyckeln - vi kommer att använda den för att skapa dess kopior på återstående 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å varje återstående nod, måste du lägga till denna publika nyckel i filen authorized_keys. För ubuntu kanske du vill rengöra dess innehåll först om du vill använda en rotinloggning. Som standard kan endast ubuntu-användare användas för att ansluta via SSH. Sådana inställningar (vanlig användare och sudo) är också möjliga att använda med ClusterControl men här går vi för en root-användare.

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

När authorized_keys-filer på alla noder innehåller vår publika nyckel, kopierar vi vår publika nyckel till .ssh-katalogen och gör nödvändiga ändringar i åtkomsträttigheter:

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

Nu kan vi testa om SSH-åtkomst fungerar som förväntat:

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

Allt är bra. Det är dags att konfigurera ClusterControl.

Fyll i några registreringsuppgifter.

När du har loggat in kommer en guide att visas med ett alternativ att antingen distribuera ett nytt kluster eller importera ett befintligt.

Vi vill distribuera Percona XtraDB Cluster så vi väljer "Deploy Database Cluster" och väljer fliken "MySQL Galera". Här måste vi fylla i åtkomstinformation som krävs för SSH-anslutning. Vi ställer in SSH User till root och vi kommer att fylla i sökvägen till vår SSH-nyckel.

Därefter kommer vi att definiera en leverantör, version, lösenord och IP-adresser för våra databasvärdar. Tänk på att ClusterControl kommer att kontrollera SSH-anslutningen till måldatabasvärdarna. Om allt fungerar som det ska ser du gröna bockar. Om du ser att SSH-autentisering misslyckades måste du undersöka det eftersom ClusterControl-servern inte kan komma åt dina databasvärdar.

Klicka sedan på Distribuera för att starta distributionsprocessen.

Du kan spåra distributionsförloppet i aktivitetsövervakaren.

Kom ihåg att implementeringen bara är det första steget. Att driva en databas kräver att du övervakar prestanda för dina värdar, databasinstanser, frågor och hanterar säkerhetskopior, åtgärdar fel och andra anomalier, hanterar proxyservrar, uppgraderingar etc. ClusterControl kan hantera alla dessa aspekter åt dig, så prova det och låt oss veta hur du går vidare.


  1. Jämför matriser och returnera skillnaden

  2. HSET om nyckel finns

  3. NodeJS + ExpressJS + RedisStore-session är odefinierad

  4. Hur man returnerar endast värdet av ett fält i mongodb