MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak wdrożyć ClusterControl w AWS, aby zarządzać bazą danych w chmurze


ClusterControl jest niezależny od infrastruktury — może być używany we własnym centrum danych na fizycznych hostach, a także w zwirtualizowanych środowiskach chmurowych. Wszystko, czego potrzebujesz, to dostęp ssh z hosta ClusterControl do węzłów bazy danych, a następnie możesz wdrożyć autonomiczne/zreplikowane/zgromadzone w klastrze MySQL/MariaDB, MongoDB (zestawy replik lub klastry podzielone) lub PostgreSQL (replikacja strumieniowa). W tym poście na blogu przeprowadzimy Cię przez etapy wdrażania ClusterControl w EC2.

Konfigurowanie instancji w EC2

Tutaj opisano wymagania sprzętowe dla ClusterControl. Mają one na celu stworzenie wydajnej platformy dla serwera ClusterControl. Powiedziawszy to, użyjemy małej instancji do naszych celów testowych (t2.micro) - powinno nam wystarczyć.

Najpierw musimy wybrać AMI. ClusterControl obsługuje:

  • Redhat/CentOS/Oracle Linux 6 i nowsze
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 i nowsze

Będziemy używać Ubuntu 16.04.

Kolejny krok - typ instancji. Na razie wybierzemy t2.micro, chociaż będziesz chciał używać większych instancji do konfiguracji produkcyjnych. W przypadku innych dostawców chmury wybierz instancje z co najmniej 1 GB pamięci.

Zamierzamy wdrożyć jednocześnie cztery instancje, jedną dla ClusterControl i trzy dla klastra Percona XtraDB. Musisz zdecydować, gdzie te instancje powinny zostać wdrożone (VPC lub nie, która podsieć itp.). Do naszych celów testowych użyjemy VPC i pojedynczej podsieci. Oczywiście rozmieszczenie węzłów w podsieciach (strefach dostępności) zwiększa prawdopodobieństwo przetrwania konfiguracji, jeśli jeden z AZ stanie się niedostępny.

Do przechowywania użyjemy 100 GB woluminu SSD ogólnego przeznaczenia (GP2). To powinno wystarczyć do wykonania niektórych testów z rozsądną ilością danych.

Dalej - grupy bezpieczeństwa. Dostęp SSH jest wymagany. Poza tym musisz otworzyć porty wymagane przez bazę danych, którą planujesz wdrożyć. Więcej informacji na temat wymaganych portów można znaleźć w naszym portalu pomocy technicznej.

Na koniec musisz wybrać jedną z istniejących par kluczy lub utworzyć nową. Po tym kroku Twoje instancje zostaną uruchomione.

Po uruchomieniu instancji nadszedł czas na zainstalowanie ClusterControl. W tym celu zaloguj się do jednej z instancji i pobierz skrypt instalacyjny 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]

Następnie upewnij się, że można go uruchomić przed uruchomieniem:

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

Na początku otrzymasz informacje o wymaganiach obsługiwanych dystrybucji Linuksa:

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

W pewnym momencie będziesz musiał odpowiedzieć na kilka pytań dotyczących nazw hostów, portów i haseł.

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

Na koniec otrzymasz potwierdzenie, że ClusterControl został zainstalowany. Skrypt instalacyjny spróbuje również wykryć Twój publiczny adres IP i wydrukować link, którego można użyć w przeglądarce, aby uzyskać dostęp do 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.

Po zakończeniu instalacji pozostaje jeszcze jedna rzecz do załatwienia - dostęp SSH z ClusterControl do pozostałych hostów. O ile nie masz już dostępu SSH między węzłami (i możesz użyć ssh-copy-id), będzie to proces ręczny. Przede wszystkim musimy wygenerować nowy klucz 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]:~#

Możemy zweryfikować, że zostało utworzone poprawnie. Będziesz także chciał skopiować zawartość klucza publicznego - użyjemy go do utworzenia jego kopii na pozostałych węzłach.

[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

Teraz na każdym pozostałym węźle musisz dodać ten klucz publiczny do pliku Author_Keys. W przypadku ubuntu możesz najpierw wyczyścić jego zawartość, jeśli chcesz użyć loginu root. Domyślnie tylko użytkownik Ubuntu może być używany do łączenia się przez SSH. Taka konfiguracja (zwykły użytkownik i sudo) jest również możliwa do użycia z ClusterControl, ale tutaj przejdziemy do użytkownika root.

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

Gdy pliki Author_keys na wszystkich węzłach zawierają nasz klucz publiczny, skopiujemy nasz klucz publiczny do katalogu .ssh i dokonamy niezbędnych zmian w prawach dostępu:

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

Teraz możemy sprawdzić, czy dostęp SSH działa zgodnie z oczekiwaniami:

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

Wszystko w porządku. Czas skonfigurować ClusterControl.

Podaj szczegóły rejestracji.

Po zalogowaniu pojawi się kreator z opcją wdrożenia nowego klastra lub zaimportowania istniejącego.

Chcemy wdrożyć klaster Percona XtraDB, więc wybierzemy „Wdróż klaster bazy danych” i wybierzemy zakładkę „MySQL Galera”. Tutaj musimy wypełnić dane dostępowe wymagane do połączenia SSH. Ustawimy użytkownika SSH jako root i wypełnimy ścieżkę do naszego klucza SSH.

Następnie zdefiniujemy dostawcę, wersję, hasło i adresy IP dla naszych hostów baz danych. Należy pamiętać, że ClusterControl sprawdzi łączność SSH z hostami docelowej bazy danych. Jeśli wszystko działa dobrze, zobaczysz zielone kleszcze. Jeśli zauważysz, że uwierzytelnianie SSH nie powiodło się, musisz to zbadać, ponieważ serwer ClusterControl nie może uzyskać dostępu do hostów Twojej bazy danych.

Następnie kliknij Wdróż, aby rozpocząć proces wdrażania.

Możesz śledzić postęp wdrażania w monitorze aktywności.

Pamiętaj, że wdrożenie to dopiero pierwszy krok. Obsługa bazy danych wymaga monitorowania wydajności hostów, instancji baz danych, zapytań i zarządzania kopiami zapasowymi, naprawiania awarii i innych anomalii, zarządzania serwerami proxy, aktualizacjami itp. ClusterControl może zarządzać wszystkimi tymi aspektami za Ciebie, więc spróbuj i daj nam znać, jak sobie radzisz.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zwiększyć wartość liczbową w Mongoose?

  2. Przykładowe operatory MongoDB

  3. Odległość wydruku MongoDB między dwoma punktami

  4. Średnie zapytania agregacyjne w Meteor

  5. MongoDB:wypisz „id” zamiast „_id”