MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Porównanie ofert Galera Cluster Cloud:część pierwsza Amazon AWS

Uruchamianie klastra MySQL Galera (wersja Percona, MariaDB lub Codership) nie jest niestety obsługiwaną (ani częścią) baz danych obsługiwanych przez Amazon RDS. Większość baz danych obsługiwanych przez RDS korzysta z replikacji asynchronicznej, podczas gdy Galera Cluster to rozwiązanie do synchronicznej replikacji wielu wzorców. Galera wymaga również, aby InnoDB jako silnik pamięci masowej działał poprawnie, i chociaż można używać innych silników pamięci masowej, takich jak MyISAM, nie zaleca się korzystania z tego silnika pamięci masowej ze względu na brak obsługi transakcji.

Z powodu braku wsparcia natywnego w RDS, ten blog skupi się na ofertach dostępnych podczas wyboru i hostowania klastra opartego na Galera przy użyciu środowiska AWS.

Z pewnością jest wiele powodów, dla których warto wybrać platformę chmurową AWS lub nie, ale w tym konkretnym temacie omówimy zalety i korzyści tego, co można wykorzystać, a nie dlaczego. wybrałby platformę AWS.

Serwery wirtualne (elastyczne instancje obliczeniowe)

Jak wspomniano wcześniej, MySQL Galera nie jest częścią RDS, a InnoDB to transakcyjny silnik pamięci masowej, do którego potrzebne są odpowiednie zasoby do wymagań aplikacji. Musi mieć zdolność obsługi ruchu żądań klienta. W momencie tworzenia tego artykułu jedynym wyborem do uruchomienia Galera Cluster jest skorzystanie z oferty chmury obliczeniowej EC2 firmy Amazon.

Ponieważ masz zaletę uruchamiania systemu na wielu węzłach w instancjach EC2, uruchomienie klastra Galera na wierszach EC2 w środowisku lokalnym nie różni się zbytnio. Możesz uzyskać zdalny dostęp do serwera przez SSH, zainstalować żądane pakiety oprogramowania i wybrać rodzaj kompilacji Galera Cluster, z której chcesz korzystać.

Ponadto dzięki EC2 ta oferta jest bardziej elastyczna i elastyczna, co umożliwia dostarczanie i oferowanie prostszej, szczegółowej konfiguracji. Możesz skorzystać z usług sieci Web, aby zautomatyzować lub zbudować wiele węzłów, jeśli chcesz skalować środowisko lub na przykład zautomatyzować budowanie środowiska pomostowego lub programistycznego. Daje również przewagę w szybkim zbudowaniu pożądanego środowiska, wybraniu i skonfigurowaniu pożądanego systemu operacyjnego oraz pobraniu odpowiednich zasobów obliczeniowych, które pasują do Twoich wymagań (takich jak procesor, pamięć i pamięć dyskowa). EC2 eliminuje czas oczekiwania na sprzęt , ponieważ możesz to zrobić w locie. Możesz także wykorzystać ich narzędzie AWS CLI, aby zautomatyzować konfigurację klastra Galera.

Ceny instancji Amazon EC2

EC2 oferuje szereg opcji, które są bardzo elastyczne dla konsumentów, którzy chcą hostować swoje środowisko Galera Cluster na węzłach obliczeniowych AWS. Bezpłatna warstwa AWS obejmuje 750 godzin wystąpień Linux i Windows t2.micro każdego miesiąca przez okres jednego roku. Możesz pozostać w warstwie bezpłatnej, używając tylko instancji EC2 Micro, ale może to nie być najlepsze rozwiązanie do użytku produkcyjnego.

Istnieje wiele typów instancji EC2, które można wdrożyć podczas udostępniania węzłów Galera. Idealnie, te rodziny r4/r5/x1 (zoptymalizowane pod kątem pamięci) i c4/c5 (zoptymalizowane pod kątem obliczeń) są idealnym wyborem, a te ceny różnią się w zależności od tego, jak duże są potrzeby w zakresie zasobów serwera i typu systemu operacyjnego.

Oto typy płatnych instancji, które możesz wybrać...

Na żądanie

Płać według mocy obliczeniowej (na godzinę lub na sekundę), zależy od typu uruchamianych instancji. Na przykład ceny mogą się różnić podczas aprowizacji instancji Ubuntu i instancji RHEL, niezależnie od typu instancji. Nie wymaga żadnych zobowiązań długoterminowych ani płatności z góry. Zapewnia również elastyczność w zwiększaniu lub zmniejszaniu mocy obliczeniowej. Te instancje są zalecane w przypadku tanich i elastycznych potrzeb środowiska, takich jak aplikacje z krótkoterminowymi, skokowymi lub nieprzewidywalnymi obciążeniami, których nie można przerwać, lub aplikacje opracowywane lub testowane na Amazon EC2 po raz pierwszy. Sprawdź to tutaj, aby uzyskać więcej informacji.

Dedykowane hosty

Jeśli szukasz zgodności i wymagań prawnych, takich jak zakup dedykowanego serwera działającego na dedykowanym sprzęcie do użytku, tego typu oferta odpowiada Twoim potrzebom. Dedykowane hosty mogą pomóc w spełnieniu wymagań dotyczących zgodności i obniżeniu kosztów, umożliwiając korzystanie z istniejącej licencji na oprogramowanie związane z serwerem, w tym Windows Server, SQL Server, SUSE Linux Enterprise Server, Red Hat Enterprise Linux lub inne licencje oprogramowania powiązane z maszynami wirtualnymi , gniazda lub rdzenie fizyczne, zgodnie z warunkami licencji. Można go kupić na żądanie (co godzinę) lub jako rezerwację do 70% zniżki na cenę na żądanie. Sprawdź to tutaj, aby uzyskać więcej informacji.

Wystąpienia Spotów

Te instancje pozwalają zażądać wolnej mocy obliczeniowej Amazon EC2 z rabatem do 90% ceny On-Demand. Jest to zalecane w przypadku aplikacji, które mają elastyczne czasy rozpoczęcia i zakończenia, aplikacji, które są wykonalne tylko przy bardzo niskich cenach obliczeniowych lub użytkowników, którzy pilnie potrzebują dużej ilości dodatkowej pojemności. Sprawdź to tutaj, aby uzyskać więcej informacji.

Zarezerwowane instancje

Ten rodzaj oferty płatności zapewnia możliwość skorzystania z rabatu do 75% oraz, w zależności od tego, którą instancję chcesz zarezerwować, możesz uzyskać rezerwację pojemności, co daje dodatkową pewność co do swojej zdolności uruchamiać instancje, kiedy ich potrzebujesz. Jest to zalecane, jeśli Twoje aplikacje mają stabilne lub przewidywalne użycie, aplikacje, które mogą wymagać zarezerwowanej pojemności lub klienci, którzy mogą zobowiązać się do korzystania z EC2 przez okres 1 lub 3 lat w celu zmniejszenia całkowitych kosztów obliczeniowych. Sprawdź to tutaj, aby uzyskać więcej informacji.

Uwaga cenowa

Ostatnia rzecz z EC2, oferują również naliczanie sekundowe, co również wiąże się z kosztami niewykorzystanych minut i sekund w godzinę bez rachunku. Jest to korzystne, jeśli skalujesz w górę przez minimalny czas, aby obsłużyć żądania ruchu z węzła Galera lub jeśli chcesz spróbować przetestować na określonym węźle tylko przez ograniczony czas.

Szyfrowanie bazy danych w AWS

Jeśli obawiasz się o poufność swoich danych lub przestrzeganie praw wymaganych do zapewnienia zgodności i przepisów dotyczących bezpieczeństwa, AWS oferuje szyfrowanie danych w spoczynku. Jeśli używasz MariaDB Cluster w wersji 10.2 lub nowszej, mają one wbudowaną obsługę wtyczek do interfejsu API usługi zarządzania kluczami Amazon Web Services (AWS) (KMS). Pozwala to na skorzystanie z usługi zarządzania kluczami AWS-KMS w celu ułatwienia rozdzielenia obowiązków oraz zdalnego rejestrowania i audytu wniosków o dostęp do kluczy. Zamiast przechowywać klucz szyfrowania w pliku lokalnym, ta wtyczka przechowuje klucz główny w AWS KMS.

Przy pierwszym uruchomieniu MariaDB wtyczka AWS KMS połączy się z usługą zarządzania kluczami AWS i poprosi ją o wygenerowanie nowego klucza. MariaDB będzie przechowywać ten klucz na dysku w postaci zaszyfrowanej. Klucz przechowywany na dysku nie może być użyty do odszyfrowania danych; zamiast tego przy każdym uruchomieniu MariaDB łączy się z AWS KMS i usługa odszyfrowuje klucze przechowywane lokalnie. Odszyfrowany klucz jest przechowywany w pamięci tak długo, jak działa proces serwera MariaDB, a ten odszyfrowany klucz jest używany do szyfrowania danych lokalnych.

Alternatywnie podczas wdrażania instancji EC2 można zaszyfrować wolumen przechowywania danych za pomocą EBS (Elastic Block Storage) lub zaszyfrować samą instancję. Szyfrowanie woluminów typu EBS jest obsługiwane, chociaż może to mieć wpływ, ale opóźnienie jest bardzo minimalne lub nawet niewidoczne dla użytkowników końcowych. W przypadku szyfrowania typu wystąpienia EC2 obsługiwana jest większość dużych wystąpień. Jeśli więc używasz węzłów zoptymalizowanych pod kątem obliczeń lub pamięci, możesz wykorzystać ich szyfrowanie.

Poniżej znajduje się lista obsługiwanych typów instancji...

  • Ogólne zastosowanie:A1, M3, M4, M5, M5a, M5ad, M5d, T2, T3 i T3a
  • Optymalizacja obliczeniowa:C3, C4, C5, C5d i C5n
  • Zoptymalizowana pamięć:cr1.8xlarge, R3, R4, R5, R5a, R5ad, R5d, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, X1, X1e i z1d
  • Zoptymalizowana pamięć:D2, h1.2xlarge, h1.4xlarge, I2 i I3
  • Przyspieszone obliczenia:F1, G2, G3, P2 i P3

Możesz skonfigurować swoje konto AWS tak, aby zawsze włączało szyfrowanie po wdrożeniu instancji typu EC2. Oznacza to, że AWS będzie szyfrować nowe woluminy EBS podczas uruchamiania i szyfruje nowe kopie niezaszyfrowanych migawek.

Wdrożenia w wielu obszarach AZ/w wielu regionach/w wielu chmurach

Niestety, w chwili pisania tego tekstu nie ma takiego bezpośredniego wsparcia w konsoli AWS (ani w żadnym z ich API AWS), które obsługuje wdrożenia Multi-AZ/-Region/-Cloud dla klastrów węzłów Galera.

Wysoka dostępność, skalowalność i nadmiarowość

Aby osiągnąć wdrożenie multi-AZ, zaleca się aprowizację węzłów Galera w różnych strefach dostępności. Zapobiega to awarii klastra lub awarii klastra z powodu braku kworum.

Możesz także skonfigurować automatyczne skalowanie AWS i utworzyć grupę automatycznego skalowania do monitorowania i sprawdzania stanu, aby klaster zawsze miał nadmiarowość, skalowalność i wysoką dostępność. Automatyczne skalowanie powinno rozwiązać problem w przypadku awarii węzła z nieznanego powodu.

W przypadku wdrażania w wielu regionach lub w wielu chmurach, Galera ma swój własny parametr o nazwie gmcast.segment, dla którego można go ustawić podczas uruchamiania serwera. Ten parametr ma na celu zoptymalizowanie komunikacji między węzłami Galera i zminimalizowanie ilości ruchu przesyłanego między segmentami sieci, w tym przekazywania zapisu i wyboru dawcy IST i SST.

Ten typ konfiguracji umożliwia wdrożenie wielu węzłów w różnych regionach dla klastra Galera. Poza tym możesz również wdrożyć węzły Galera u innego dostawcy, na przykład, jeśli jest on hostowany w Google Cloud i potrzebujesz nadmiarowości na Microsoft Azure.

Polecam zapoznanie się z naszym blogiem Konfiguracje wielu centrów danych z wykorzystaniem Galera Cluster dla MySQL lub MariaDB oraz migracja sieci bez przestojów z MySQL Galera Cluster Korzystanie z węzła przekazywania, aby zebrać więcej informacji na temat implementacji tych typów wdrożeń.

Wydajność bazy danych w AWS

W zależności od wymagań aplikacji, idealnym wyborem w przypadku zapytań jest pamięć zużywająca instancje zoptymalizowane pod kątem pamięci. Jeśli aplikacja zawiera więcej transakcji, które wymagają wysokiej wydajności serwerów sieci Web lub przetwarzania wsadowego, wybierz wystąpienia zoptymalizowane pod względem obliczeniowym. Jeśli chcesz dowiedzieć się więcej o optymalizacji klastra Galera, możesz zapoznać się z tym blogiem Jak poprawić wydajność klastra Galera dla MySQL lub MariaDB.

Kopie zapasowe bazy danych w AWS

Tworzenie kopii zapasowych może być trudne, ponieważ nie ma bezpośredniego wsparcia w AWS, które jest specyficzne dla technologii MySQL Galera. Jednak AWS zapewnia rozwiązanie w przypadku awarii i odzyskiwania przy użyciu migawek EBS. Możesz robić migawki woluminów EBS podłączonych do Twojej instancji, a następnie tworzyć kopie zapasowe według harmonogramu za pomocą CloudWatch lub za pomocą menedżera cyklu życia danych Amazon (Amazon DLM), aby zautomatyzować tworzenie migawek.

Pamiętaj, że wykonane migawki są przyrostowymi kopiami zapasowymi, co oznacza, że ​​zapisywane są tylko te bloki na urządzeniu, które uległy zmianie po zapisaniu ostatniej migawki. Możesz przechowywać te migawki w AWS S3, aby zaoszczędzić na kosztach przechowywania. Możesz też użyć zewnętrznych narzędzi, takich jak Percona Xtrabackup i Mydumper (do tworzenia kopii zapasowych logicznych) i zapisać je w AWS EFS -> AWS S3 -> AWS Glacier.

Możesz także skonfigurować zarządzanie cyklem życia w AWS, jeśli chcesz, aby dane kopii zapasowej były przechowywane w bardziej opłacalny sposób. Jeśli masz duże pliki i zamierzasz korzystać z AWS EFS, możesz skorzystać z ich rozwiązania AWS Backup, ponieważ jest to również proste, ale opłacalne rozwiązanie.

Z drugiej strony możesz również korzystać z usług zewnętrznych (jak również takich jak ClusterControl), które zapewniają zarówno rozwiązania do monitorowania, jak i tworzenia kopii zapasowych. Sprawdź to, jeśli chcesz dowiedzieć się więcej.

Monitorowanie bazy danych w AWS

AWS oferuje kontrole stanu i niektóre kontrole stanu, aby zapewnić wgląd w węzły Galera. Odbywa się to za pośrednictwem CloudWatch i CloudTrail.

CloudTrail umożliwia włączanie i sprawdzanie dzienników oraz przeprowadzanie audytów w oparciu o wykonane działania i ślady.

CloudWatch umożliwia zbieranie i śledzenie metryk, zbieranie i monitorowanie plików dziennika oraz ustawianie niestandardowych alarmów. Można go skonfigurować zgodnie z własnymi potrzebami i uzyskać w całym systemie wgląd w wykorzystanie zasobów, wydajność aplikacji i stan działania. CloudWatch jest dostarczany z bezpłatnym poziomem, o ile nadal mieścisz się w jego granicach (patrz zrzut ekranu poniżej).

CloudWatch ma również cenę zależną od ilości dystrybuowanych danych. Sprawdź aktualny cennik, sprawdzając tutaj.

Uwaga:korzystanie z CloudWatch ma pewne wady. Nie jest przeznaczony do obsługi kondycji bazy danych, zwłaszcza do monitorowania węzłów klastra MySQL Galera. Alternatywnie możesz użyć zewnętrznych narzędzi, które oferują wykresy o wysokiej rozdzielczości lub wykresy, które są przydatne w raportowaniu i są łatwiejsze do analizy podczas diagnozowania problematycznego węzła.

W tym celu możesz użyć PMM firmy Percona, DataDog, Idera, VividCortex lub naszego własnego ClusterControl (ponieważ monitorowanie jest BEZPŁATNE w ClusterControl Community). potrzeby w oparciu o indywidualne wymagania aplikacji. Bardzo ważne jest, aby Twoje narzędzie monitorujące było w stanie agresywnie powiadamiać Cię lub zapewniać integrację z systemami wiadomości błyskawicznych, takimi jak Slack, PagerDuty, a nawet wysyłać Ci SMS-y w przypadku eskalacji poważnego stanu zdrowia.

Bezpieczeństwo bazy danych w AWS

Zabezpieczenie instancji EC2 jest jednym z najważniejszych elementów wdrażania bazy danych w chmurze publicznej. Możesz skonfigurować prywatną podsieć i skonfigurować preferowane wymagane grupy zabezpieczeń, aby zezwalać na port lub źródłowy adres IP w zależności od konfiguracji. Możesz ustawić węzły bazy danych z dostępem niezdalnym i po prostu skonfigurować host skokowy lub bramę internetową, jeśli węzły wymagają dostępu do Internetu, aby uzyskać dostęp lub zaktualizować pakiety oprogramowania. Aby dowiedzieć się, jak to skonfigurowaliśmy, przeczytaj nasz poprzedni blog Wdrażanie bezpiecznej replikacji MySQL w wielu chmurach na AWS i GCP z VPN.

Oprócz tego możesz zabezpieczyć swoje dane w trakcie przesyłania za pomocą połączenia TLS/SSL lub zaszyfrować dane, gdy są w spoczynku. Jeśli używasz ClusterControl, wdrażanie bezpiecznych przesyłanych danych jest proste i łatwe. Możesz sprawdzić nasz blog Zarządzanie kluczami SSL i szyfrowanie danych MySQL w tranzycie, jeśli chcesz wypróbować. W przypadku danych w spoczynku przechowywanie danych przez S3 można zaszyfrować za pomocą szyfrowania po stronie serwera AWS lub użyć AWS-KMS, o którym wspomniałem wcześniej. Sprawdź ten zewnętrzny blog, aby dowiedzieć się, jak skonfigurować i wykorzystać klaster MariaDB przy użyciu AWS-KMS, aby bezpiecznie przechowywać dane w spoczynku.

Rozwiązywanie problemów z klastrem Galera w AWS

AWS CloudWatch może pomóc zwłaszcza podczas badania i sprawdzania metryk systemowych. Możesz sprawdzić sieć, procesor, pamięć, dysk i jego instancję lub wykorzystanie i bilans obliczeniowy. Może to jednak nie spełniać Twoich wymagań podczas zagłębiania się w konkretny przypadek.

CloudTrail może wykonywać solidne ślady działań zarządzanych na podstawie Twojego konkretnego konta AWS. Pomoże Ci to ustalić, czy wystąpienia nie pochodzą z MySQL Galera, ale mogą być błędem lub problemami w środowisku AWS (np. Hyper-V ma problemy na maszynie hosta, na której znajduje się Twoja instancja jako gość hostowane.)

Jeśli używasz ClusterControl, przechodząc do Logs -> System Logs, będziesz mógł przeglądać przechwycone logi błędów pobrane z samego węzła MySQL Galera. Oprócz tego ClusterControl zapewnia monitorowanie w czasie rzeczywistym, które wzmocniłoby Twój system alarmów i powiadomień w przypadku sytuacji awaryjnej lub jeśli Twój węzeł (węzły) MySQL Galera jest kaput.

Wnioski

AWS nie zapewnia czystej obsługi konfiguracji MySQL Galera Cluster, w przeciwieństwie do AWS RDS, który jest kompatybilny z MySQL. Z tego powodu większość rekomendacji lub opinii prowadzących Galera Cluster do użytku produkcyjnego w środowisku AWS opiera się na doświadczonych i dobrze przetestowanych środowiskach, które działają od bardzo dawna.

Klaster MariaDB zapewnia doskonałą produktywność, ponieważ stale zapewnia zwięzłe wsparcie dla rozwiązania stosu technologii AWS. W nadchodzącym wydaniu wersji MariaDB 10.5 będą oferować obsługę S3 Storage Engine, na którą warto poczekać.

Narzędzia zewnętrzne mogą pomóc w zarządzaniu i kontrolowaniu klastra MySQL Galera działającego w chmurze AWS, więc nie ma wielkiego problemu, jeśli masz jakieś dylematy i FUD, dlaczego powinieneś uruchomić lub przejść do chmury AWS Platforma.

AWS może w niektórych przypadkach nie być uniwersalnym rozwiązaniem, ale zapewnia szeroką gamę rozwiązań, które można dostosować i dostosować do własnych potrzeb.

W następnej części naszego bloga przyjrzymy się innej platformie chmury publicznej, w szczególności Google Cloud, i zobaczymy, jak możemy wykorzystać, jeśli zdecydujemy się uruchomić nasz klaster Galera na ich platformie.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak LOG10() działa w MariaDB

  2. Zwróć liczbę dni w miesiącu w MariaDB

  3. Znajdź wszystkie wartości nieliczbowe w kolumnie w MariaDB

  4. ClusterControl 1.5 — automatyczna weryfikacja kopii zapasowej, budowanie urządzenia podrzędnego z kopii zapasowej i integracja z chmurą

  5. MariaDB JSON_REPLACE() Objaśnienie