ClusterControl 1.7.3 zapewnia znaczną poprawę integracji z chmurą. Możliwe jest wdrożenie klastra replikacji MySQL i PostgreSQL w chmurze, a także automatyczne uruchomienie instancji chmury i skalowanie klastra bazy danych poprzez dodanie nowego węzła bazy danych.
Ten wpis na blogu pokazuje, jak łatwo wdrożyć klaster Galera za pomocą ClusterControl w AWS. Ta nowa funkcja jest częścią ClusterControl Community Edition, która zawiera bezpłatne funkcje wdrażania i monitorowania. Oznacza to, że możesz skorzystać z tej funkcji bezpłatnie!
Architektura klastra bazy danych ClusterControl
Poniższy diagram podsumowuje naszą ogólną architekturę klastrów baz danych.
Serwer ClusterControl znajduje się poza infrastrukturą AWS, co zapewnia dobrą widoczność do naszego klastra baz danych (zlokalizowanego we Frankfurcie:eu-central-1). Serwer ClusterControl MUSI mieć dedykowany publiczny adres IP. Dzieje się tak, ponieważ adres IP zostanie przyznany przez ClusterControl na serwerze bazy danych i grupie zabezpieczeń AWS. Wersja bazy danych Galera, którą zamierzamy wdrożyć, to MariaDB Cluster 10.3, korzystająca z ClusterControl 1.7.3.
Przygotowywanie środowiska AWS
ClusterControl jest w stanie wdrożyć klaster baz danych na obsługiwanych platformach chmurowych, a mianowicie AWS, Google Cloud Platform (GCP) i Microsoft Azure. Pierwszą rzeczą, którą musimy skonfigurować, jest uzyskanie kluczy dostępu AWS, aby umożliwić ClusterControl wykonywanie programowych żądań do usług AWS. Możesz użyć klucza dostępu do konta root, ale nie jest to zalecany sposób. Lepiej jest utworzyć dedykowanego użytkownika zarządzania tożsamością i dostępem (IAM) wyłącznie w tym celu.
Zaloguj się do konsoli AWS -> Moje poświadczenia bezpieczeństwa -> Użytkownicy -> Dodaj użytkownika . Określ użytkownika i jako typ dostępu wybierz „Dostęp programowy”:
Na następnej stronie utwórz nową grupę użytkowników, klikając przycisk „Utwórz group” i nadaj grupie nazwę „DatabaseAutomation”. Przypisz następujący typ dostępu:
- AmazonEC2FullAccess
- AmazonVPCFullAccess
- AmazonS3FullAccess (tylko jeśli planujesz przechowywać kopię zapasową bazy danych w AWS S3)
Zaznacz pole wyboru DatabaseAutomation i kliknij „Dodaj użytkownika do grupy”:
Opcjonalnie możesz przypisać tagi na następnej stronie. W przeciwnym razie po prostu przejdź do tworzenia użytkownika. Powinieneś zdobyć dwie najważniejsze rzeczy, identyfikator klucza dostępu i tajny klucz dostępu.
Pobierz plik CSV i przechowuj go w bezpiecznym miejscu. Teraz możemy zautomatyzować wdrażanie w chmurze.
Zainstaluj ClusterControl na odpowiednim serwerze:
$ whoami
root
$ wget http://severalnines.com/downloads/cmon/install-cc
$ chmod 755 install-cc
$ ./install-cc
Postępuj zgodnie z instrukcjami instalacji i przejdź do http://192.168.0.11/clustercontrol i utwórz użytkownika i hasło superadministratora.
Aby umożliwić ClusterControl wykonanie automatycznego wdrożenia w chmurze, należy utworzyć dane uwierzytelniające do chmury dla wybranego regionu z ważnym identyfikatorem klucza AWS i kluczem tajnym. Przejdź do Pasek boczny -> Integracje -> Dostawcy usług w chmurze -> Dodaj swoje pierwsze dane uwierzytelniające do chmury -> Amazon Web Services i wprowadź wymagane dane i wybierz Frankfurt jako region domyślny:
To poświadczenie będzie używane przez ClusterControl do automatyzacji wdrażania i zarządzania klastrem. W tym momencie jesteśmy gotowi do wdrożenia naszego pierwszego klastra.
Wdrażanie klastra bazy danych
Przejdź do Wdrażanie -> Wdrażanie w chmurze -> MySQL Galera -> MariaDB 10.3 -> Konfiguruj klaster aby przejść do następnej strony.
W sekcji Konfiguracja klastra upewnij się, że liczba węzłów wynosi 3 i podaj nazwę klastra oraz hasło roota MySQL:
W obszarze Wybierz poświadczenie wybierz poświadczenie o nazwie „AWS Frankfurt” i przejdź do następnej strony, klikając „Wybierz maszynę wirtualną”. Wybierz preferowany system operacyjny i rozmiar wystąpienia. Zalecamy uruchomienie naszej infrastruktury w chmurze prywatnej, abyśmy mogli uzyskać dedykowany wewnętrzny adres IP dla naszych instancji w chmurze, a hosty nie były bezpośrednio narażone na sieć publiczną. Kliknij przycisk „Dodaj nowy” obok pola Virtual Private Cloud (VPC) i nadaj tej sieci podsieć 10.10.0.0/16:
Stworzony przez nas VPC jest chmurą prywatną i nie ma połączenia z Internetem. Aby ClusterControl mógł wdrażać i zarządzać hostami spoza sieci AWS, musimy zezwolić na łączność internetową z tym VPC. Aby to zrobić, musimy wykonać następujące czynności:
- Utwórz bramę internetową
- Dodaj routing zewnętrzny do tabeli tras
- Powiąż podsieć z tabelą tras
Aby utworzyć bramę internetową, zaloguj się do Konsoli zarządzania AWS -> VPC -> Bramy internetowe -> Utwórz bramę internetową -> przypisz nazwę tej bramie . Następnie wybierz utworzoną bramę z listy i przejdź do Działania -> Dołącz do VPC -> wybierz VPC z listy rozwijanej -> Dołącz . Do chmury prywatnej dołączyliśmy teraz bramę internetową. Musimy jednak skonfigurować sieć, aby przekazywała wszystkie żądania zewnętrzne przez tę bramę internetową. Dlatego musimy dodać do tabeli tras domyślną trasę. Przejdź doVPC -> Tabele tras -> wybierz tabelę tras -> Edytuj trasy i określ sieć docelową 0.0.0.0/0 i cel (utworzony identyfikator bramy internetowej) jak poniżej:
Następnie musimy powiązać podsieć DB z tą siecią, aby przypisała wszystkie instancje utworzone w tej sieci do domyślnej trasy, którą utworzyliśmy wcześniej, wybierz tabelę tras -> Edytuj skojarzenie podsieci -> przypisz podsieć DB , jak pokazano poniżej:
VPC jest teraz gotowy do użycia przez ClusterControl do wdrożenia.
Po utworzeniu wybierz utworzoną sieć VPC z listy rozwijanej. W przypadku klucza SSH poprosimy ClusterControl o jego automatyczne wygenerowanie:
Wygenerowany klucz SSH będzie zlokalizowany wewnątrz serwera ClusterControl w katalogu /var/lib/cmon/autogenerated_ssh_keys/s9s/.
Kliknij „Podsumowanie wdrożenia”. Na tej stronie musimy przypisać podsieć z VPC do klastra bazy danych. Ponieważ jest to nowy VPC, nie ma podsieci i musimy utworzyć nową. Kliknij przycisk „Dodaj nową podsieć” i przypisz 10.10.1.0/24 jako sieć dla naszego klastra baz danych:
Na koniec wybierz opcję tworzenia podsieci w polu tekstowym i kliknij „Wdróż klaster”:
Możesz monitorować postęp pracy w Aktywność -> Oferty pracy -> Utwórz klaster . ClusterControl wykona niezbędne kroki przedinstalacyjne, takie jak utworzenie instancji w chmurze, grupy bezpieczeństwa, wygenerowanie klucza SSH itd., zanim rozpocznie się właściwa instalacja.
Gdy klaster będzie gotowy, w panelu ClusterControl powinien pojawić się następujący klaster:
Wdrażanie naszego klastra zostało zakończone.
Po wdrożeniu bazy danych AWS
Możemy rozpocząć ładowanie naszych danych do klastra lub stworzyć nową bazę danych na potrzeby Twojej aplikacji. Aby się połączyć, po prostu poinstruuj aplikacje lub klientów, aby łączyły się z prywatnym lub publicznym adresem IP jednego z serwerów baz danych. Możesz uzyskać te informacje, przechodząc do strony Węzły, jak pokazano na poniższym zrzucie ekranu:
Jeśli chcesz uzyskać bezpośredni dostęp do węzłów bazy danych, możesz użyć modułu ClusterControl web-SSH w Akcje węzła -> Konsola SSH , co zapewnia podobne wrażenia jak połączenie przez klienta SSH.
Aby skalować klaster w górę przez dodanie węzła bazy danych, wystarczy przejść do Akcje klastra (ikona stosu serwerów) -> Dodaj węzeł -> Dodaj węzeł bazy danych w nowej instancji chmury i pojawi się następujące okno dialogowe:
Po prostu postępuj zgodnie z kreatorem wdrażania i odpowiednio skonfiguruj nową instancję. Po utworzeniu instancji ClusterControl automatycznie zainstaluje, skonfiguruje i dołączy węzeł do klastra.
Na razie to wszystko, ludzie. Miłego klastrowania w chmurze!