Zarządzanie bazą danych było tradycyjnie skomplikowane i czasochłonne. Wdrożenie, z bólami głowy związanymi z bezpieczeństwem, złożonymi sieciami, planowaniem i wdrażaniem kopii zapasowych oraz monitorowaniem, przyprawiało o ból głowy. Skalowanie klastra baz danych było poważnym przedsięwzięciem. A w świecie, w którym oczekuje się dostępności 24/7 i szybkiego odzyskiwania po awarii, zarządzanie nawet pojedynczym klastrem bazy danych może być pracą na pełny etat.
ClusterControl firmy Manynines to system wdrażania i zarządzania bazami danych, który rozwiązuje powyższe problemy, ułatwiając szybkie wdrażanie nadmiarowych, bezpiecznych klastrów lub węzłów baz danych, w tym zaawansowanych funkcji tworzenia kopii zapasowych i monitorowania — zarówno lokalnie, jak i w chmurze. Dzięki wtyczkom obsługującym między innymi Nagios, PagerDuty i Zabbix, ClusterControl dobrze integruje się z istniejącą infrastrukturą i narzędziami, aby pomóc Ci pewnie zarządzać serwerami baz danych.
MongoDB jest obecnie wiodącym serwerem baz danych NoSQL na świecie. Korzystając z ClusterControl, za pomocą którego można wdrożyć i zarządzać oficjalnym MongoDB lub Percona Server for MongoDB, konkurencyjną ofertą Percona zawierającą funkcje MongoDB Enterprise, omówimy wdrażanie zestawu replik MongoDB z trzema węzłami danych i przyjrzymy się niektórym funkcjom aplikacji ClusterControl.
Zamierzamy omówić kilka kluczowych funkcji ClusterControl, zwłaszcza dotyczących MongoDB, korzystając z usług Amazon Web Services. Amazon Web Services (lub AWS) to największy na świecie dostawca infrastruktury jako usługi w chmurze, który obsługuje miliony użytkowników na całym świecie. Obejmuje wiele usług dla wszystkich zastosowań, od praktycznie nieograniczonej pamięci obiektowej za pomocą S3 i wysoce skalowalnej infrastruktury maszyn wirtualnych za pomocą EC2 aż do magazynowania korporacyjnych baz danych dzięki funkcji Redshift, a nawet Machine Learning.
Po przeczytaniu tego bloga możesz również przeczytać naszą bazę danych DIY Cloud Database w dokumencie Amazon Web Services Whitepaper, w której szczegółowo omówiono kwestie dotyczące konfiguracji i wydajności serwerów baz danych w chmurze AWS. Ponadto mamy Zostań DBA MongoDB, białą księgę z bardziej szczegółowymi szczegółami dotyczącymi MongoDB.
Aby rozpocząć, najpierw musisz wdrożyć cztery instancje AWS. W przypadku platformy produkcyjnej typ instancji należy starannie dobrać w oparciu o omówione wcześniej wytyczne, ale do naszych celów wystarczą instancje z 2 wirtualnymi procesorami i 4 GB pamięci RAM. Jeden z tych węzłów będzie hostował ClusterControl, pozostałe zostaną użyte do wdrożenia trzech węzłów bazy danych.
Zacznij od utworzenia grupy zabezpieczeń węzłów bazy danych, zezwalającej na ruch przychodzący na porcie 27017. Nie ma potrzeby ograniczania ruchu wychodzącego, ale jeśli chcesz to zrobić, zezwól na ruch wychodzący na portach 1024-65535, aby ułatwić komunikację wychodzącą z serwerów bazy danych .
Następnie utwórz grupę bezpieczeństwa dla swojego węzła ClusterControl. Zezwalaj na ruch przychodzący na portach 22 i 80. Dodaj ten identyfikator grupy zabezpieczeń do grupy zabezpieczeń węzłów bazy danych i zezwól na nieograniczoną komunikację TCP. Ułatwi to komunikację między dwiema grupami bezpieczeństwa, bez zezwalania na dostęp ssh do węzłów bazy danych z zewnętrznych klientów.
Uruchom instancje w odpowiednich grupach bezpieczeństwa, wybierając dla każdej instancji parę kluczy, dla której masz klucz ssh. Na potrzeby tego zadania użyj tej samej pary kluczy dla wszystkich instancji. Jeśli zgubiłeś klucz ssh dla swojej pary kluczy, będziesz musiał utworzyć nową parę kluczy. Podczas uruchamiania instancji nie wybieraj domyślnego obrazu Amazon Linux, zamiast tego wybierz AMI oparty na obsługiwanym systemie operacyjnym wymienionym tutaj. Ponieważ używam regionu AWS EU-CENTRAL-1, użyję do tego celu społeczności AMI ami-fa2df395, obrazu CentOS 7.3.
Jeśli masz zainstalowane narzędzia wiersza poleceń AWS, użyj instancji opisu aws ec2 opisane wcześniej polecenie, aby potwierdzić, że Twoje instancje są uruchomione — w przeciwnym razie wyświetl je w konsoli internetowej AWS — a po potwierdzeniu zaloguj się do instancji ClusterControl przez ssh.
Skopiuj plik klucza publicznego pobrany podczas tworzenia pary kluczy do instancji ClusterControl. Możesz użyć scp polecenie w tym celu. Na razie zostawmy go w domyślnym katalogu /home/centos, katalogu domowym użytkownika centos. Zadzwoniłem do mojego s9s.pem. Będziesz potrzebował zainstalowanego narzędzia wget; zainstaluj go za pomocą następującego polecenia:
$ sudo yum -y install wget
Aby zainstalować ClusterControl, uruchom następujące polecenia:
$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ ./install-cc # as root or sudo user
Instalacja przeprowadzi Cię przez kilka wstępnych pytań, po których pobranie i zainstalowanie zależności za pomocą menedżera pakietów systemu operacyjnego zajmie kilka minut.
Po zakończeniu instalacji skieruj przeglądarkę internetową na http://
Po pomyślnym zalogowaniu zobaczysz następujący ekran i będziesz mógł kontynuować wdrażanie zestawu replik MongoDB.
Rysunek 1:Witamy w ClusterControl!Jak widać, ClusterControl może również importować istniejące klastry baz danych, umożliwiając zarządzanie istniejącą infrastrukturą tak łatwo, jak nowe wdrożenia.
Do naszych celów klikniesz Wdróż klaster bazy danych . Na następnym ekranie zobaczysz wybór serwerów baz danych i typów klastrów obsługiwanych przez ClusterControl. Kliknij kartę oznaczoną MongoDB ReplicaSet . Tutaj wartości, którymi się interesujesz, to Użytkownik SSH , Ścieżka klucza SSH i Nazwa klastra . Port powinien mieć już 22, domyślny port ssh, a używany przez nas AMI nie wymaga hasła Sudo .
Rysunek 2:Wdrażanie zestawu replik MongoDBUżytkownik ssh dla CentOS 7 AMI to centos , a ścieżka klucza SSH to /home/centos/s9s.pem lub odpowiednią ścieżkę w zależności od własnej nazwy pliku klucza. Użyjmy MongoDB-RS0 jako nazwę klastra. Akceptując opcje domyślne, klikamy Kontynuuj .
Rysunek 3:Konfiguracja wdrożeniaTutaj możemy wybrać między oficjalnym buildem MongoDB a kompilacją Percony. Wybierz preferowaną opcję i podaj użytkownika administratora oraz hasło, za pomocą którego można bezpiecznie skonfigurować MongoDB. Pamiętaj, że ClusterControl nie pozwoli Ci kontynuować, chyba że podasz te szczegóły. Zanotuj podane poświadczenia, będą one potrzebne do zalogowania się do wdrożonej bazy danych MongoDB, jeśli chcesz z niej później korzystać. Teraz wybierz nazwę zestawu replik lub zaakceptuj domyślną. Będziemy korzystać z repozytoriów dostawców, ale pamiętaj, że możesz skonfigurować ClusterControl do korzystania z własnych repozytoriów lub repozytoriów stron trzecich, jeśli wolisz.
Dodaj węzły bazy danych, pojedynczo. Możesz użyć zewnętrznego adresu IP, ale jeśli podasz nazwę hosta, co jest ogólnie zalecane, ClusterControl zarejestruje wszystkie interfejsy sieciowe na hostach i będziesz mógł wybrać interfejs, na którym chcesz wdrożyć. Po dodaniu trzech węzłów bazy danych kliknij Wdróż . ClusterControl wdroży teraz Twój zestaw replik MongoDB. Kliknij Pełne szczegóły oferty obserwować, jak przeprowadza konfigurację twojego klastra. Po zakończeniu zadania przejdź do ekranu Database Clusters i zobacz swój klaster.
Rysunek 4:Automatyczne odzyskiwaniePrzyglądając się bliżej, można zauważyć, że automatyczne odzyskiwanie jest włączone zarówno na poziomie klastra, jak i węzła; w przypadku awarii ClusterControl podejmie próbę odzyskania klastra lub pojedynczego węzła, w którym występuje problem. Zielony haczyk przy każdym węźle wyświetla również stan kondycji klastra na pierwszy rzut oka.
Rysunek 5:Planowanie kopii zapasowychOstatnią funkcją, którą tutaj omówimy, są kopie zapasowe. ClusterControl zapewnia funkcję tworzenia kopii zapasowych, która umożliwia tworzenie pełnej kopii zapasowej spójnej z klastrami lub po prostu standardowy mongodump kopia zapasowa, jeśli wolisz. Zapewnia również możliwość tworzenia zaplanowanych kopii zapasowych, które są uruchamiane okresowo zgodnie z wybranym harmonogramem. Obsługiwane jest również przechowywanie kopii zapasowych, z opcją przechowywania kopii zapasowych przez ograniczony czas, co pozwala uniknąć problemów z przechowywaniem.
W tym blogu próbowałem przedstawić krótki przegląd korzystania z ClusterControl z MongoDB, ale ClusterControl obsługuje o wiele więcej funkcji. Dostępne są rozmieszczanie klastrów sharded, z ukrytymi i/lub opóźnionymi niewolnikami, arbitrami i innymi funkcjami. Więcej informacji jest dostępnych na naszej stronie internetowej, gdzie można również znaleźć seminaria internetowe, oficjalne dokumenty, samouczki i szkolenia, a także bezpłatnie wypróbować ClusterControl.