1. Wprowadzenie
Ostatnia aktualizacja: 4.05.2020
Z myślą o połączeniu
Jest wiele rodzajów aplikacji i platform. W tym ćwiczeniu w programowaniu omówimy łączenie się z Cloud SQL z dowolnego miejsca. Możliwość nawiązywania połączeń jest włączana przez jawną autoryzację adresów IP, z którymi można się łączyć. Jest to prawdopodobnie najmniej bezpieczna opcja łączenia z bazą danych Cloud SQL, ale jest też najłatwiejsza w konfiguracji i rozpoczęciu korzystania z niej.
Czasami jest to konieczne w środowisku produkcyjnym, ale jeśli możesz tego uniknąć, wybierz bezpieczniejszą alternatywę (np. serwer proxy Cloud SQL). Ta konfiguracja najlepiej sprawdza się w przypadku programowania i testowania.
Co utworzysz
To ćwiczenie z programowania jest bardzo minimalistyczne. Chodzi o to, aby przez cały proces przebiegać przez nakrętki i śrubki mocujące, nie zastanawiając się nad samą aplikacją. W idealnym świecie łączenie się z Cloud SQL przebiega tak samo jak łączenie się z inną instancją bazy danych SQL, więc powinno być możliwe przełączenie tego, co tworzysz z tego ćwiczenia, i zastosowanie go w dowolnej aplikacji produkcyjnej.
Będą one zawierać przewodnik po czynnościach w konsoli GCP, a także odpowiedniki poleceń gcloud do używania w interfejsie wiersza poleceń lub automatyzacji.
Poszczególne kroki:
- Utwórz instancję Cloud SQL (ten samouczek korzysta z Postgres, ale działa podobnie dla MySQL lub SQL Server) i autoryzuj konkretne adresy IP, które mogą się z nią łączyć
Czego potrzebujesz
- konto GCP, na którym masz uprawnienia do włączania interfejsów API i tworzenia usług;
- Klient Postgres zainstalowany w celu weryfikacji połączenia (lub klient MySQL, jeśli chcesz używać MySQL zamiast Postgres)
2. Tworzenie instancji Cloud SQL
Cloud SQL to nasza oferta zarządzanych relacyjnych baz danych. Obsługuje MySQL, PostgreSQL i SQL Server. W ramach tego ćwiczenia w programie utworzymy bazę danych Postgres, ale instrukcje są podobne we wszystkich 3 przypadkach.
W konsoli
Otwórz stronę Cloud SQL i kliknij przycisk .
Jak już wspomnieliśmy, większość tych ćwiczeń w Codelabs ma charakter ogólny i dotyczy każdego rodzaju języka SQL, ale na potrzeby tego ćwiczenia z programowania wybierz PostgreSQL.
- Nadaj instancji identyfikator
- Wybierz region w pobliżu
- Wpisz hasło domyślnego użytkownika (nazwa użytkownika będzie domyślna dla wybranej bazy danych, np.
root
dla MySQL lubpostgres
dla PostgreSQL) - Przewiń w dół i kliknij
show configuration options
- Rozwiń sekcję
Connectivity
- Upewnij się, że pole
Public IP
jest zaznaczone, a polePrivate IP
nie jest zaznaczone. - Kliknij przycisk
- Uzyskaj adres IP miejsca, z którego się łączysz. Najłatwiej jest wyszukać w Google hasło „Jaki jest mój adres IP”. a w wynikach wyszukiwania będzie widoczny Twój publiczny adres IP.
- Wpisz specyfikację adresu IP w polu sieci, nadaj jej nazwę i w polu
New Network
kliknij Gotowe. - Przewiń w dół i kliknij Utwórz
Zwykle uruchamianie instancji trwa kilka minut.
Gdy instancja zostanie utworzona, kliknij ją na liście, a na stronie przeglądu pod nagłówkiem Connect to this instance
skopiuj public IP address
. Nie będzie go tam, dopóki instancja nie zostanie w pełni utworzona, chociaż możesz kliknąć szczegóły przed jej utworzeniem.
Korzystanie z gcloud
Najpierw musisz uzyskać adres IP, który chcesz autoryzować na potrzeby połączenia z instancją Cloud SQL. Najłatwiej to zrobić, otwierając przeglądarkę i wyszukując „Jaki jest mój adres IP?”. a wyniki wyszukiwania zawierają Twój widoczny publicznie adres IP. Jeśli jednak nie możesz otworzyć przeglądarki, z której chcesz to zrobić, możesz skorzystać z narzędzia, takiego jak dig
.
dig @resolver1.opendns.com ANY myip.opendns.com +short -4
Musisz określić dla instancji Cloud SQL region najbliżej miejsca, w którym się znajdujesz. Możesz wyświetlić listę regionów, uruchamiając polecenie:
gcloud sql tiers list
Każdy poziom jest dostępny tylko w określonych regionach. W części samouczka dotyczącej gcloud tworzymy mikroinstancję, więc dostępne regiony dla tego poziomu można znaleźć, uruchamiając konkretne polecenie (o ile masz zainstalowany grep):
gcloud sql tiers list | grep db-f1-micro
Polecenie do utworzenia instancji wygląda tak (nie zapomnij zastąpić ciągu <AUTHORIZED_IP> adresem IP otrzymanym z przeglądarki lub kodu pocztowego, a fragmentu <REGION> należy zastąpić adresem, który znajduje się blisko Ciebie, i hasłem roota „postgres”):
gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>
Potrwa to kilka minut.
Po zakończeniu w danych wyjściowych interfejsu wiersza poleceń będzie widoczny identyfikator PRIMARY_ADDRESS
instancji. Skopiuj go do następnego kroku.
3. Testowanie połączenia i kończenia
Aby sprawdzić, czy instancja została prawidłowo skonfigurowana, uruchom wiersz poleceń z poziomu wpisanego adresu IP komputera:
psql "host=<adres IP skopiowany z poprzedniego kroku> port=5432 sslmode=disable user=postgres"
Następnie podaj domyślne hasło użytkownika skonfigurowane podczas tworzenia instancji Cloud SQL.
Gratulacje! Jeśli wszystko pójdzie dobrze, powinien pojawić się prompt Postgres i umożliwić uruchamianie poleceń na podstawie bazy danych.
Co dalej?
Zapoznaj się z tymi ćwiczeniami z programowania...