1. Omówienie
Ostatnia aktualizacja: 23.07.2020
Co to jest Cloud Spanner?
Google Cloud Spanner to rozproszona globalnie baza danych zgodną z ACID, która automatycznie obsługuje repliki, fragmentację i przetwarzanie transakcji, dzięki czemu można szybko skalować rozwiązania zgodnie z dowolnym wzorcem użytkowania i zapewnić pomyślne działanie produktów.
Najważniejsze funkcje
- Relacyjna baza danych stworzona z myślą o skali: wszystko, czego można się spodziewać w relacyjnej bazie danych (schematy, zapytania SQL i transakcje ACID) – przetestowane pod kątem zgodności z zasadami i gotowe do globalnego skalowania.
- Dostępność 99,999%: Cloud Spanner zapewnia najlepszą w branży dostępność na poziomie 99,999% w przypadku instancji w wielu regionach – 10 razy krótszy czas przestoju niż 4 dziewięć oraz zapewnia przejrzystość, synchroniczną replikację w konfiguracjach obejmujących region i wiele regionów.
- Automatyczne fragmentowanie: Cloud Spanner optymalizuje wydajność, automatycznie dzieląc dane na fragmenty odpowiednio do obciążenia i rozmiaru danych żądaniami. Dzięki temu możesz poświęcać mniej czasu na myślenie o skalowaniu bazy danych – możesz skupić się na skalowaniu swojej działalności.
Czego się nauczysz
- Jak korzystać z dostawcy Google Cloud Terraform.
- Tworzenie instancji i baz danych Cloud Spanner za pomocą Terraform.
- Modyfikowanie zasobów Cloud Spanner za pomocą Terraform.
- Usuwanie zasobów Cloud Spanner za pomocą Terraform.
2. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
Jeśli nie masz jeszcze konta Google (w Gmailu lub Google Apps), musisz je utworzyć. Zaloguj się w konsoli Google Cloud Platform ( console.cloud.google.com) i utwórz nowy projekt:
Zapamiętaj identyfikator projektu, unikalną nazwę we wszystkich projektach Google Cloud (powyższa nazwa jest już zajęta i nie będzie Ci odpowiadać). W dalszej części tego ćwiczenia z programowania będzie się on nazywać PROJECT_ID.
Następnie musisz włączyć płatności w Cloud Console, aby korzystać z zasobów Google Cloud.
Wykonanie tych ćwiczeń w programie nie powinno kosztować więcej niż kilka dolarów, ale może być droższe, jeśli zdecydujesz się na więcej zasobów lub pozostawisz je włączone (patrz sekcja „Czyszczenie” na końcu tego dokumentu).
Nowi użytkownicy Google Cloud Platform mogą skorzystać z bezpłatnego okresu próbnego o wartości 300 USD.
Uwierzytelnianie
Jeśli narzędzie wiersza poleceń gcloud nie było jeszcze zainstalowane, zainstaluj je. Po zainstalowaniu gcloud aktywuj domyślne dane logowania aplikacji, uruchamiając w terminalu to polecenie:
$ gcloud auth application-default login
Terraform
Jeśli Terraform nie został zainstalowany wcześniej, zainstaluj Terraform.
3. Dostawca Google Cloud Terraform
Dostawca Google Cloud Terraform udostępnia 4 zasoby Cloud Spanner:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
W ramach tego ćwiczenia w Codelabs utworzymy instancje i bazy danych Cloud Spanner oraz będziemy nimi zarządzać.
Środowisko
W środowisku programistycznym utwórz nowy katalog na pliki konfiguracji Terraform.
$ mkdir ~/terraform-spanner $ cd ~/terraform-spanner
Następnie utwórz plik o nazwie „main.tf”. zastąp PROJECT_ID identyfikatorem własnego projektu Google Cloud następującym:
$ cat >> main.tf <<'EOF' provider "google" { project = "PROJECT_ID" } EOF
W pozostałej części tego ćwiczenia z programowania zmodyfikujemy ten plik i wprowadzimy zmiany.
4. Tworzenie instancji i baz danych
Aby dodać nową instancję Cloud Spanner, zmodyfikuj plik main.tf przy użyciu tej zawartości:
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 3 }
Uruchom to polecenie, aby zastosować zmiany:
$ terraform apply # ... Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes # ... Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Po zastosowaniu zmian instancję będzie można zobaczyć w konsoli Google Cloud. Pamiętaj, że po utworzeniu instancji nie można zmienić konfiguracji regionalnej.
W następnych krokach po utworzeniu instancji utworzymy bazę danych. Zmodyfikuj plik main.tf, dodając tę treść:
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 3 } resource "google_spanner_database" "database" { instance = google_spanner_instance.main.name name = "my-first-database" }
Także w tym przypadku użyj następującego polecenia, aby zastosować zmiany:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Po pomyślnym zakończeniu moja pierwsza baza danych będzie dostępna w instancji:
5. Modyfikowanie instancji
Jak wspomnieliśmy w poprzedniej sekcji, nie wszystkie właściwości instancji można modyfikować. Możesz jednak zwiększyć lub zmniejszyć liczbę węzłów, aby dostosować zasoby używane przez instancję. Utworzona instancja miała 3 węzły. Modyfikując plik main.tf, zwiększymy liczbę węzłów do 5:
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 5 } resource "google_spanner_database" "database" { instance = google_spanner_instance.main.name name = "my-first-database" }
Następnym krokiem jest zastosowanie zmian:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Gdy operacja się uda, instancja będzie używać 5 węzłów.
6. Usuwanie bazy danych
Możesz trwale usunąć bazę danych, gdy nie jest już potrzebna. Wystarczy, że usuniesz bazę danych z pliku main.tf i zastosujesz zmiany.
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 5 }
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Gdy operacja się uda, baza danych zostanie trwale usunięta.
7. Usuwanie instancji
Możesz trwale usunąć instancję, gdy nie jest już potrzebna. Wystarczy, że usuniesz instancję z pliku main.tf i zastosujesz zmiany.
provider "google" { project = "PROJECT_ID" }
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Po pomyślnym zakończeniu instancja zostanie trwale usunięta.
8. Gratulacje!
Udało Ci się utworzyć, zmodyfikować i usunąć zasoby Cloud Spanner za pomocą Terraform.
Omówione zagadnienia
- Jak korzystać z dostawcy Google Cloud Terraform.
- Tworzenie instancji i baz danych Cloud Spanner za pomocą Terraform.
- Modyfikowanie zasobów Cloud Spanner za pomocą Terraform.
- Usuwanie zasobów Cloud Spanner za pomocą Terraform.
Więcej informacji
- Zobacz dokumentację Google Cloud Spanner.
- Przeczytaj o zasobie Terraform w Google Cloud Spanner.
- Przeczytaj informacje o ustawianiu reguł uprawnień dla instancji i baz danych.