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

Porównanie ofert Galera Cluster Cloud:część druga Google Cloud Platform (GCP)

W naszym ostatnim blogu omówiliśmy oferty dostępne w ramach Amazon Web Services (AWS) podczas uruchamiania klastra MySQL Galera. W tym blogu będziemy kontynuować dyskusję, przyglądając się bliżej ofertom korzystania z tej samej technologii klastrowania, ale tym razem w Google Cloud Platform (GCP).

GCP, jako alternatywa dla AWS, nieustannie przyciąga aplikacje dostosowane do DevOps, oferując wsparcie dla szerokiej gamy technologii pełnego stosu, aplikacji kontenerowych i dużych produkcyjnych systemów baz danych. Google Cloud to w pełni rozwinięte, przetestowane w boju środowisko, które obsługuje własną infrastrukturę sprzętową w Google dla produktów takich jak YouTube i Gmail.

GCP zyskało popularność głównie dzięki stale rosnącej liście możliwości. Oferuje wsparcie dla platform takich jak Visual Studio, Android Studio, Eclipse, Powershell i wielu innych. GCP posiada jedną z największych i najbardziej zaawansowanych sieci komputerowych i zapewnia dostęp do wielu narzędzi, które pomogą Ci skoncentrować się na budowaniu aplikacji.

Kolejną rzeczą, która zachęca klientów do migracji, importu lub korzystania z Google Cloud, jest ich silne wsparcie i rozwiązania w zakresie konteneryzacji. Kubernetes (GKE:Google Kubernetes Engine) jest zbudowany na ich platformie.

GCP niedawno wprowadził również nowe rozwiązanie o nazwie Anthos. Ten produkt został zaprojektowany, aby umożliwić organizacjom zarządzanie obciążeniami przy użyciu tego samego interfejsu w Google Cloud Platform (GCP) lub lokalnie przy użyciu GKE On-Prem, a nawet w konkurencyjnych chmurach, takich jak Amazon Web Services (AWS) lub Azure.

Oprócz tych technologii, GCP oferuje zaawansowane i wydajne typy maszyn zoptymalizowanych pod względem obliczeniowym, takie jak rodzina C2 w GCE, która jest zbudowana na najnowszej generacji skalowalnych procesorów Intel (Cascade Lake).

GCP nadal wspiera również open source, co przynosi korzyści użytkownikom, zapewniając dobrze obsługiwaną i prostą strukturę, która ułatwia dostarczanie produktu końcowego w odpowiednim czasie. Pomimo tego wsparcia technologii open source, GCP nie zapewnia natywnej obsługi wdrażania lub konfiguracji klastra MySQL Galera. W tym blogu pokażemy Ci jedyną dostępną opcję, jeśli chcesz korzystać z tej technologii, wdrożenie za pośrednictwem instancji obliczeniowej, którą musisz samodzielnie zarządzać.

Google Compute Engine (GCE)

GCE ma zaawansowany i potężny zestaw węzłów obliczeniowych dostępnych do użytku. W przeciwieństwie do AWS, GCE posiada najpotężniejszy węzeł obliczeniowy dostępny na rynku (n1-ultramem-160 posiadający 160 vCPU i 3,75 TB pamięci). Firma GCE niedawno wprowadziła również nowy typ rodziny instancji obliczeniowych o nazwie C2. Zbudowane na najnowszej generacji skalowalnych procesorów Intel (Cascade Lake), typy maszyn C2 oferują do 3,8 GHz ciągłe turbodoładowanie wszystkich rdzeni i zapewniają pełną przejrzystość architektury bazowych platform serwerowych; pozwalając Ci dostroić wydajność. Typy maszyn C2 oferują znacznie większą moc obliczeniową, działają na nowszej platformie i są ogólnie bardziej niezawodne w przypadku obciążeń intensywnie korzystających z mocy obliczeniowej niż typy maszyn N1 z wysokim procesorem. Oferta rodziny C2 jest ograniczona (w momencie pisania tego tekstu) i nie jest dostępna we wszystkich regionach i strefach. C2 nie obsługuje również regionalnych dysków stałych, chociaż byłby to świetny dodatek do usług stanowych baz danych, które wymagają nadmiarowości i wysokiej dostępności. Zasoby instancji C2 są zbyt duże dla węzła Galera, więc zamiast tego skupimy się na węzłach obliczeniowych, które są idealne.

GCE używa również KVM jako oprogramowania technologii wirtualizacji, podczas gdy Amazon używa Xen. Rzućmy okiem na węzły obliczeniowe dostępne w GCE, które są odpowiednie do uruchamiania Galery wraz z ich odpowiednikami w AWS EC2. Ceny różnią się w zależności od regionu, ale na tym wykresie używamy regionu USA-Wschód, korzystając z typu cen na żądanie dla AWS.

Typ maszyny/wystąpienia

Google Compute Engine

AWS EC2

Udostępnione

f1-mikro

G1-mały

Ceny zaczynają się od 0,006 USD –  0,019 USD za godzinę

t2.nano – t3.2xduże'

Cena zaczyna się od 0,0058 USD - 0,3328 USD za godzinę

Standardowy

n1-standard-1 – n1-standard-96

Ceny zaczynają się od 0,034 USD –3,193 USD za godzinę

m4.duży – m4.16xduży

m5.large – m5d.metal

Ceny zaczynają się od 0,1 USD do 5,424 USD za godzinę

Wysoka pamięć/optymalizacja pamięci

n1-highmem-2 – n1-highmem-96

n1-megamem-96

n1-ultramem-40 – n1-ultramem-160

Ceny zaczynają się od 0,083 USD –17,651 USD za godzinę

r4.large – r4.16xlarge

x1,16xduże – x1,32xduże

x1e.xduże – x1e.32xduże

Ceny zaczynają się od 0,133 USD –26,688 USD za godzinę

Wysoka optymalizacja procesora/pamięci masowej

n1-highcpu-2 – n1-highcpu-32

Ceny zaczynają się od 0,05 USD - 2,383 USD za godzinę

h1.2xlarge – h1.16xlarge

i3.large – i3.metal

I3en.large - i3en.metal

d2.xduże – d2.8xduże

Ceny zaczynają się od 0,156 USD–10,848 USD za godzinę

GCE ma do wyboru mniejszą liczbę wstępnie zdefiniowanych typów węzłów obliczeniowych, w przeciwieństwie do AWS. Jednak jeśli chodzi o typ węzła, ma on większą szczegółowość. Ułatwia to konfigurację i wybór rodzaju instancji, której chcesz użyć. Na przykład możesz dodać dysk i ustawić jego fizyczny rozmiar bloku (domyślnie 4) na 16 lub możesz ustawić jego tryb odczytu/zapisu lub tylko do odczytu. Pozwala to na zaoferowanie odpowiedniego typu maszyny lub instancji obliczeniowej gotowej do zarządzania węzłem Galera. Możesz również utworzyć instancję węzłów obliczeniowych za pomocą pakietu Cloud SDK lub za pomocą interfejsów Cloud API, aby zautomatyzować lub zintegrować je z ciągłą integracją, dostarczaniem lub wdrażaniem (CI/CD).

Ceny (instancja obliczeniowa, dysk, procesor wirtualny, pamięć i sieć)

Cena zależy również od regionu, w którym się znajduje, typu systemu operacyjnego lub licencji (RHEL vs Suse Linux Enterprise), a także typu używanej pamięci dyskowej.

GCP oferuje również zniżki, które pozwalają na zaoszczędzenie zużycia zasobów. W przypadku Compute Engine zapewnia różne rabaty do wykorzystania.

Zniżki za długotrwałe użytkowanie dotyczą następujących zasobów:

  • Procesory wirtualne i pamięć dla niestandardowych i predefiniowanych typów maszyn ogólnego przeznaczenia

  • Procesory wirtualne i pamięć dla typów maszyn zoptymalizowanych pod kątem pamięci

  • Procesory wirtualne i pamięć dla typów maszyn zoptymalizowanych pod kątem obliczeń

  • Procesory wirtualne i pamięć dla węzłów dzierżawionych na wyłączność

  • 10% koszt premium dla węzłów dzierżawionych na wyłączność, nawet jeśli procesory wirtualne i pamięć w tych węzłach są objęte rabatami za zaplanowane użytkowanie

  • Urządzenia GPU1

Pamiętaj, że zniżki za długotrwałe użytkowanie nie dotyczą maszyn wirtualnych utworzonych przy użyciu elastycznego środowiska App Engine i Cloud Dataflow.

Możesz również skorzystać z rabatów za zaplanowane użytkowanie przy zakupie VMS związanego umową. Ten rodzaj wyboru jest idealny w przypadku przewidywalnych obciążeń i potrzeb w zakresie zasobów. Kupując umowę o określonym użytkowaniu, kupujesz określoną liczbę procesorów wirtualnych, pamięci, procesorów graficznych i lokalnych dysków SSD po obniżonej cenie w zamian za zobowiązanie się do płacenia za te zasoby przez 1 rok lub 3 lata. Rabat wynosi do 57% w przypadku większości zasobów, takich jak typy maszyn lub procesory graficzne. Rabat wynosi do 70% dla typów maszyn zoptymalizowanych pod kątem pamięci. Po zakupie naliczane są miesięczne rachunki za zakupione zasoby przez wybrany okres (niezależnie od tego, czy korzystasz z usług, czy nie).

Maszyna wirtualna z wywłaszczaniem to instancja, którą można utworzyć i uruchomić po znacznie niższej cenie niż zwykłe instancje. Compute Engine może jednak zakończyć (wywłaszczyć) te instancje, jeśli wymaga dostępu do tych zasobów do innych zadań. Instancje z możliwością wywłaszczania wykorzystują nadmiar mocy obliczeniowej Compute Engine, więc ich dostępność różni się w zależności od użytkowania.

Jeśli Twoje aplikacje są odporne na błędy i mogą wytrzymać możliwe wywłaszczenia instancji, instancje z możliwością wywłaszczania mogą znacznie obniżyć koszty Compute Engine. Na przykład zadania przetwarzania wsadowego mogą być uruchamiane na wystąpieniach z możliwością wywłaszczania. Jeśli niektóre z tych wystąpień zostaną zakończone podczas przetwarzania, zadanie zostanie spowolnione, ale nie zostanie całkowicie zatrzymane. Instancje z możliwością wywłaszczania wykonują zadania przetwarzania wsadowego bez obciążania istniejących instancji dodatkowymi zadaniami i bez konieczności płacenia pełnej ceny za dodatkowe normalne instancje.

W przypadku Compute Engine rozmiar dysku, pamięć typu maszyny i użycie sieci są obliczane w gigabajtach (GB), gdzie 1 GB to 230 bajtów. Ta jednostka miary jest również znana jako gibibajt (GiB). Oznacza to, że GCP oferuje płacenie tylko na podstawie przydzielonego zużycia zasobów.

Teraz, jeśli masz wysokiej jakości, produkcyjną aplikację bazodanową, zalecane (i idealne) jest podłączenie lub dodanie oddzielnego dysku stałego. Następnie użyjesz tego dysku jako woluminu bazy danych, ponieważ oferuje on niezawodną i spójną wydajność dysku w GCE. Im wyższy rozmiar ustawisz, tym wyższy IOPS oferuje. Sprawdź ich listę cen dysków trwałych, aby określić cenę, którą otrzymasz. Oprócz tego GCE ma regionalny dysk stały, który jest odpowiedni w przypadku, gdy potrzebujesz bardziej solidnej i zrównoważonej wysokiej dostępności w klastrze bazy danych. Regionalny dysk stały zapewnia większą nadmiarowość w przypadku, gdy instancja zostanie zakończona, ulegnie awarii lub ulegnie uszkodzeniu. Zapewnia synchroniczną replikację danych między dwiema strefami w jednym regionie, która odbywa się w sposób przezroczysty w instancji maszyny wirtualnej. W mało prawdopodobnym przypadku awarii strefy Twoje obciążenie może zostać przełączone awaryjnie do innej instancji maszyny wirtualnej w tej samej lub dodatkowej strefie. Następnie możesz wymusić dołączenie regionalnego dysku stałego do tej instancji. Czas wymuszonego mocowania szacowany jest na mniej niż jedną minutę.

Jeśli przechowujesz kopie zapasowe w ramach rozwiązania do odzyskiwania po awarii i wymagasz woluminu obejmującego cały klaster, GCP oferuje Cloud Filestore, NetApp Cloud Volumes i kilka innych alternatywnych rozwiązań do udostępniania plików. Są to w pełni zarządzane usługi oferujące usługi standardowe i premium. Możesz sprawdzić stronę cenową NetApp tutaj i cennik Filestore tutaj.

Szyfrowanie Galera w GCP

GCP nie obejmuje specyficznej obsługi typu szyfrowania dostępnego dla Galera. GCP domyślnie jednak szyfruje dane klientów przechowywane w stanie spoczynku, bez konieczności podejmowania dodatkowych działań z Twojej strony. GCP oferuje również inną opcję szyfrowania danych przy użyciu kluczy szyfrowania zarządzanych przez klienta (CMEK) za pomocą Cloud KMS, a także kluczy szyfrowania dostarczonych przez klienta (CSEK). GCP korzysta również z szyfrowania SSL/TLS dla całej komunikacji przechwyconej podczas przesyłania danych między Twoją witryną a dostawcą chmury lub między dwiema usługami. Ta ochrona jest osiągana poprzez szyfrowanie danych przed transmisją; uwierzytelnianie punktów końcowych; oraz odszyfrowywanie i weryfikację danych po przybyciu.

Ponieważ Galera używa MySQL pod maską (kompilacja Percona, MariaDB lub Codership), możesz skorzystać z wtyczki File Key Management Encryption firmy MariaDB lub korzystając z wtyczek MySQL Keyring. Oto zewnętrzny blog Percony, który jest dobrym źródłem informacji o tym, jak możesz to zaimplementować.

Wdrożenia klastra Galera Multi-AZ/Multi-Region/Multi-Cloud z GCP

Podobnie jak AWS, GCP nie oferuje bezpośredniej pomocy przy wdrażaniu klastra Galera w Multi-AZ/-Region/-Cloud.

Wysoka dostępność, skalowalność i nadmiarowość klastra Galera w GCP

Jednym z głównych powodów używania klastra węzłów Galera jest wysoka dostępność, nadmiarowość i możliwość skalowania. Jeśli obsługujesz ruch globalnie, najlepiej jest obsłużyć ruch w oparciu o regiony za pomocą projektu architektonicznego, w tym geodystrybucji węzłów bazy danych. Aby to osiągnąć, zalecane i osiągalne jest wdrożenie multi-AZ i multiregion lub multi-cloud/multi-datacenter. Zapobiega to awarii klastra lub awarii klastra z powodu braku kworum.

Aby pomóc Ci bardziej w projektowaniu skalowalności, GCP ma również autoskaler, który możesz skonfigurować za pomocą grupy autoskalowania. Będzie to działać, o ile utworzysz klaster jako zarządzane grupy instancji. Możesz na przykład monitorować wykorzystanie procesora lub polegać na danych z usługi Stackdriver zdefiniowanych w zasadach autoskalowania. Pozwala to na udostępnienie i zautomatyzowanie instancji po osiągnięciu określonego progu lub zakończenie instancji po powrocie do normalnego stanu.

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. Parametr ten ma na celu optymalizację komunikacji pomiędzy węzłami Galera oraz minimalizację ruchu przesyłanego pomiędzy segmentami sieci. Obejmuje to przekazywanie zbioru zapisu oraz wybór dawcy IST i SST. Ten typ konfiguracji umożliwia wdrożenie wielu węzłów w różnych regionach. Poza tym możesz również wdrożyć węzły Galera na routingu innego dostawcy chmury z GCP, AWS, Microsoft Azure lub w środowisku lokalnym.

Zalecamy zapoznanie się z naszym blogiem Konfiguracje wielu centrów danych z wykorzystaniem Galera Cluster dla MySQL lub MariaDB oraz migracja sieci bez przestojów za pomocą MySQL Galera Cluster Korzystanie z węzła przekazywania, aby zebrać więcej informacji na temat implementacji tego typu wdrożenia.

Wydajność bazy danych klastra Galera w GCP

Ponieważ nie ma dostępnej obsługi Galera w GCP, Twoje wybory zależą od wymagań i projektu ruchu aplikacji oraz zapotrzebowania na zasoby. W przypadku zapytań, które zużywają dużo pamięci, można rozpocząć od wystąpienia n1-highmem-2. Instancje o wysokim procesorze (rodzina n1-highcpu*) mogą być dobrym rozwiązaniem, jeśli jest to baza danych o dużej liczbie transakcji, lub dobrze nadają się do aplikacji do gier.

Wybór odpowiedniej pamięci masowej i wymaganych IOPS dla wolumenu bazy danych jest koniecznością. Ogólnie rzecz biorąc, twój wybór to dysk stały oparty na SSD. Zależy to od wymaganego natężenia ruchu, może być konieczne sprawdzenie opcji przechowywania GCP, aby określić odpowiedni rozmiar dla swojej aplikacji.

Zalecamy również zapoznanie się z naszym blogiem Jak poprawić wydajność klastra Galera dla MySQL lub MariaDB, aby dowiedzieć się więcej o optymalizacji klastra Galera.

Kopie zapasowe danych Galera w GCP

Nie tylko należy wykonać kopię zapasową danych MySQL Galera, ale należy również wykonać kopię zapasową całej warstwy, która obejmuje aplikację bazy danych. Obejmuje to pliki dziennika (logiczne lub binarne), pliki zewnętrzne, pliki tymczasowe, pliki zrzutów itp. Google zaleca, aby zawsze tworzyć zrzuty woluminów dysków stałych używanych przez instancje GCE. Możesz łatwo tworzyć i planować migawki. Migawki GCP są przechowywane w Cloud Storage i możesz wybrać żądaną lokalizację lub region, w którym będzie znajdować się kopia zapasowa. Możesz także skonfigurować harmonogram migawek, a także ustawić zasady przechowywania migawek.

Możesz również korzystać z usług zewnętrznych, takich jak ClusterControl, który zapewnia zarówno monitorowanie, jak i rozwiązania do tworzenia kopii zapasowych. Sprawdź to, jeśli chcesz dowiedzieć się więcej.

Monitorowanie bazy danych klastra Galera w GCP

GCP nie oferuje monitorowania bazy danych podczas korzystania z GCE. Monitorowanie stanu instancji można przeprowadzić za pomocą usługi Stackdriver. Jednak w przypadku bazy danych będziesz musiał pobrać zewnętrzne narzędzie do monitorowania, które ma zaawansowane, bardzo szczegółowe metryki bazy danych. Istnieje wiele opcji do wyboru, takich jak PMM firmy Percona, DataDog, Idera, VividCortex lub nasz własny ClusterControl (monitorowanie jest BEZPŁATNE w ramach społeczności ClusterControl).

Bezpieczeństwo bazy danych klastra Galera w GCP

Jak omówiliśmy w naszym poprzednim blogu, możesz zastosować to samo podejście do zabezpieczania bazy danych w chmurze publicznej. W GCP możesz skonfigurować prywatną podsieć, reguły zapory zezwalające tylko na porty wymagane do uruchomienia Galera (w szczególności porty 3306, 4444, 4567, 4568). Możesz użyć bramy NAT lub skonfigurować host bastionu, aby uzyskać dostęp do węzłów prywatnej bazy danych. Gdy te węzły są enkapsulowane, nie można uzyskać do nich dostępu spoza siedziby GCP. Możesz przeczytać nasz poprzedni blog Wdrażanie bezpiecznej replikacji MySQL w wielu chmurach na AWS i GCP z VPN, aby dowiedzieć się, jak to skonfigurowaliśmy.

Dodatkowo możesz zabezpieczyć przesyłane dane, używając połączenia TLS/SSL lub szyfrując 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ć. Aby uzyskać dane w spoczynku, możesz śledzić dyskusję, którą przedstawiłem wcześniej w sekcji Szyfrowanie na tym blogu.

Rozwiązywanie problemów z klastrem Galera

GCP oferuje usługę Stackdriver Logging, która może pomóc w spełnieniu wymagań dotyczących obserwowalności, monitorowania i powiadomień. Wspaniałą rzeczą w Stackdriver Logging jest to, że oferuje integrację z AWS. Dzięki niemu możesz selektywnie wyłapywać zdarzenia, a następnie podnieść alert na podstawie tego zdarzenia. Dzięki temu możesz być na bieżąco z niektórymi problemami, które mogą się pojawić, i pomóc w rozwiązywaniu problemów. GCP udostępnia również dzienniki kontrolne Cloud, które dostarczają bardziej identyfikowalnych informacji z wnętrza środowiska GCP, takich jak aktywność administratora, dostęp do danych i zdarzenia systemowe.

Jeśli używasz ClusterControl, przejdź do Logs -> System Logs i 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 system alarmów i powiadomień w przypadku sytuacji awaryjnej lub gdy węzeł (węzły) MySQL Galera jest uszkodzony.

Wnioski

Google Cloud Platform oferuje szeroką gamę wydajnych i zaawansowanych usług, z których możesz korzystać. Rzeczywiście są plusy i minusy dla każdej z publicznych platform chmurowych, ale GCP udowadnia, że ​​AWS nie ma blokady w chmurze.

Interesujące jest to, że duże firmy, takie jak Vimeo, przenoszą się na GCP, korzystając z rozwiązań on-premise i osiągnęły interesujące wyniki w swoim stosie technologicznym. Bloomberg również jest zadowolony z GCP i używa klastra Percona XtraDB (wariant Galera). Daj nam znać, co myślisz o używaniu GCP dla konfiguracji MySQL Galera w komentarzach poniżej.


  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 zainstalować MariaDB 10 na Debianie i Ubuntu?

  2. Jak SUBDATE() działa w MariaDB

  3. Ustaw zestaw znaków i sortowanie kolumny w MariaDB

  4. Jak OCTET_LENGTH() działa w MariaDB

  5. Jak SYS_GUID() działa w MariaDB