Cloud SQL to kolejna usługa z chmury Google, którą warto poznać jeżeli planujemy zbudować szybki i duży serwis lub już zajmujemy się utrzymywaniem dużego i skalowalnego serwisu internetowego. Cloud SQL to w pełni zarządzana przez Google usługa relacyjnych baz danych dla MySQL, PostgreSQL i SQL Server. Usługa ta umożliwia korzystać z tradycyjnych relacyjnych baz danych SQL z bogatymi możliwościami konfiguracyjnymi bez konieczności posiadania i zarządzania serwerem SQL.
Zalety DBaaS – Database as a Service
Usługa Cloud SQL to nic innego jak DBaaS czyli Database as a Service. Dostęp do bazy danych w tym modelu ma wiele zalet. DBaaS pozwala między innymi:
- zmniejszyć koszty utrzymania dzięki w pełni zarządzanym bazom danych MySQL, PostgreSQL i SQL Server,
- zapewnić ciągłość działania dzięki niezawodnym i bezpiecznym usługom wspieranym przez całodobowy zespół SRE,
- zautomatyzować czasochłonne zadania związane z konfigurowaniem i zabezpieczaniem bazy danych,
- łatwo monitorować pracę bazy danych dzięki Cloud SQL Insights,
- łatwo i szybko zintegrować bazy danych z istniejącymi projektami opartymi na Google Cloud.
Największą jednak zaletą jest automatyczne skalowanie, które dzieje się bez naszej ingerencji. Korzystając z Cloud SQL nie interesuje nas potrzebna pamięć, procesor oraz czy dysk HDD jest odpowiedniej wielkości bądź rodzaju. Do bazy tego typu możemy w przeciągu jednej minuty wysłać jedno zapytanie lub kilka milionów. Z drugiej strony, w każdej chwili możemy dodać rdzenie procesora, pamięć RAM lub pamięć masową bez utraty danych.
Korzystanie z Cloud SQL
Na potrzeby tego tutorialu dokonamy migracji typowej bazy danych strony internetowej do Cloud SQL i zaiunstalujemy aplikację CMS. Dzięki temu zobaczymy jak korzystać z tej usługi w praktycznych scenariuszach. Na sam początek musimy uruchomić usługę Cloud SQL, którą w wygodnym panelu Google Cloud uruchomimy jednym przyciskiem.

Następnie wprowadzamy nazwę, region oraz podstawowe opcje konfiguracyjne:

Już po wykonaniu tych podstawowych czynności nasz serwer jest gotowy do działania. Automatyczne kopie zapasowe baz wykonywane są co 24 godziny w wybranej przez nas porze. Łączenie do bazy może następować w prywatnej sieci bądź za pomocą publicznego adresu IP co oznacza, że z baz danych może korzystać dowolny serwer i kwerendy można bez problemu wykonywać także spoza Google Cloud.
Po utworzeniu instancji Cloud SQL mamy dostęp do panelu zarządzania. W zakładce przegląd mamy najważniejsze informacje dotyczące tej instancji i jak nawiązywać połączenie.

Tworzenie bazy danych w Cloud SQL
Na samym początku musimy stworzyć bazę danych. Służy do tego panel, w którym mamy niektóre opcje podobne z phpMyAdmin:

Import bazy danych do Google Cloud SQL
Kolejny krokiem będzie import danych. Plik możemy wczytać z obecnego zasobnika Cloud Storage:

Połączenie z Cloud SQL
Aby połączyć się z Cloud SQL potrzebujemy adresu, loginu i hasła. Trzeba też pamiętać o dodaniu adresu IP serwera, który będzie wykonywał kwerendy do listy adresów, z których Cloud SQL będzie obsługiwał zapytania. Można udzielić dostępu dla jednego adresu IP, sieci bądź wszystkich możliwych adresów IP (ale ta ostatnia opcja nie jest zbyt bezpieczna). W tym celu przechodzę do zakładki Połączenia i w polu Autoryzowane sieci, dodaję własną sieć klikając w Dodaj sieć:

W trakcie instalacji wpisywaliśmy hasło dla domyślnego użytkownika root. W zakładce Użytkownicy możemy dodać dodatkowych użytkowników bazy SQL ze spersonalizowanymi prawami dostępu.
Zobaczmy, czy wszystko działa. Dla testu możemy:
- napisać prosty skrypt odpytujący bazę danych,
- zainstalować CMS wykorzystujący Cloud SQL na serwerze, który jest autoryzowany do łączenia się z naszą instancją,
- lub zmienić serwer bazy danych w istniejącej aplikacji.
Jako adres wykorzystuję publiczny adres IP (bo dla testu łączę się spoza Google Cloud), login to root a hasło wpisywaliśmy przy tworzeniu instancji.
Kopie zapasowe w Cloud SQL
W Cloud SQL kopie zapasowe baz danych są wykonywane domyślnie raz na dobę. Możemy zmienić częstotliwość a także porę dnia ich wykonywania. Jednym przyciskiem możemy przywrócić stan dowolnego zrzutu:

Replikacja baz danych w Cloud SQL
Podobnie łatwa do wykonania jest replikacja baz danych. Robimy to dosłownie jednym przyciskiem myszy w zakładce repliki.

Posiadając własny serwer SQL bez specjalnego oprogramowania tworzenie replikacji jest dość uciążliwe co pokazałem w tutorialu replikacja baz danych MySQL.
Alternatywy dla Cloud SQL
Należy pamiętać, że Cloud SQL to nie jedyne rozwiązanie dostępne na rynku i istnieje wiele alternatywnych rozwiązań, w których korzystanie z baz danych wygląda bardzo podobnie. Niektóre z nich to:
- Amazon RDS,
- Oracle Database,
- Azure SQL Database.
Podsumowanie
Oddzielenie bazy danych od serwera WWW to jeden z pierwszych kroków skalowania serwisu, który fachowo określamy jako partycjonowanie funkcjonalne. Interesującą opcją jest wykorzystanie nowoczesnych chmurowych rozwiązań z zarządzanymi bazami danych. Łatwe przywracanie wykonanej automatycznie kopii zapasowej czy wykonanie replikacji jednym przyciskiem myszy świetnie ilustruje jak wygodne jest korzystanie z Cloud SQL. To jednak wydajność, bezpieczeństwo, niezawodność i jakość, która jest zapewniana przez Google to największe zalety tego rozwiązania.
Odpowiedz lub skomentuj