1. Przegląd
Ostatnia aktualizacja: 23 lipca 2020 r.
Co to jest Cloud Spanner?
Google Cloud Spanner to globalnie rozproszona baza danych zgodna z zasadami ACID, która automatycznie obsługuje repliki, fragmentację i przetwarzanie transakcji. Dzięki temu możesz szybko skalować ją pod kątem dowolnego wzorca użytkowania i zapewnić sukces swoich produktów.
Główne funkcje
- Relacyjna baza danych stworzona z myślą o skalowaniu: wszystko, czego można oczekiwać od relacyjnej bazy danych – schematy, zapytania SQL i transakcje ACID – sprawdzone w praktyce i gotowe do skalowania na całym świecie.
- Dostępność na poziomie 99,999%: Cloud Spanner zapewnia najlepszą w branży dostępność na poziomie 99,999% w przypadku instancji w wielu regionach (10-krotnie mniejszy czas przestoju niż w przypadku dostępności na poziomie 99,99%) oraz automatyczną, synchroniczną replikację w konfiguracjach obejmujących region i wiele regionów.
- Automatyczna fragmentacja: Cloud Spanner optymalizuje wydajność, automatycznie dzieląc dane na fragmenty na podstawie obciążenia żądaniami i rozmiaru danych. Dzięki temu możesz poświęcić mniej czasu na zastanawianie się, jak skalować bazę danych, a więcej na rozwój firmy.
Czego się nauczysz
- Jak korzystać z dostawcy Terraform w Google Cloud.
- 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 (Gmail 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, czyli unikalną nazwę we wszystkich projektach Google Cloud (podana powyżej nazwa jest już zajęta i nie będzie działać w Twoim przypadku). W dalszej części tych ćwiczeń z programowania będzie on nazywany PROJECT_ID.
Następnie musisz włączyć płatności w konsoli Cloud, aby móc korzystać z zasobów Google Cloud.
Wykonanie tego samouczka nie powinno kosztować więcej niż kilka dolarów, ale może okazać się droższe, jeśli zdecydujesz się wykorzystać więcej zasobów lub pozostawisz je uruchomione (patrz sekcja „Czyszczenie” na końcu tego dokumentu).
Nowi użytkownicy Google Cloud Platform mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Uwierzytelnianie
Jeśli jeszcze tego nie zrobiono, zainstaluj narzędzie wiersza poleceń gcloud. Po zainstalowaniu gcloud aktywuj domyślne uwierzytelnianie aplikacji, uruchamiając w terminalu to polecenie:
$ gcloud auth application-default login
Terraform
Jeśli nie masz jeszcze zainstalowanego Terraform, zainstaluj go.
3. Dostawca Terraform Google Cloud
Dostawca Terraform w Google Cloud udostępnia 4 zasoby Cloud Spanner:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
W tym samouczku 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” z tą treścią i zastąp PROJECT_ID identyfikatorem swojego projektu Google Cloud:
$ cat >> main.tf <<'EOF'
provider "google" {
project = "PROJECT_ID"
}
EOF
W dalszej części tego laboratorium zmodyfikujemy ten plik i zastosujemy zmiany.
4. Tworzenie instancji i baz danych
Zmodyfikuj plik main.tf, dodając do niego tę zawartość, aby dodać nową instancję Cloud Spanner:
provider "google" {
project = "PROJECT_ID"
}
resource "google_spanner_instance" "main" {
config = "regional-us-central1"
display_name = "first-terraform-instance"
num_nodes = 3
}
Aby zastosować zmiany, uruchom to polecenie:
$ 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 modyfikować konfiguracji regionalnej.

Po utworzeniu instancji w kolejnych krokach utworzymy bazę danych. Zmodyfikuj plik main.tf, aby zawierał te informacje:
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"
}
Aby zastosować zmiany, ponownie użyj tego polecenia:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Po zakończeniu operacji baza danych my-first-database 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 ma 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.
Po zakończeniu instancja będzie używać 5 węzłów.
6. Usuwanie bazy danych
Gdy baza danych nie będzie już potrzebna, możesz ją trwale usunąć. Po prostu usuń bazę danych z pliku main.tf i zastosuj 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.
Po zakończeniu tego procesu baza danych zostanie trwale usunięta.
7. Usuwanie instancji
Gdy instancja nie będzie już potrzebna, możesz ją trwale usunąć. Po prostu usuń instancję z pliku main.tf i zastosuj zmiany.
provider "google" {
project = "PROJECT_ID"
}
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Po zakończeniu instancja zostanie trwale usunięta.
8. Gratulacje!
Utworzono, zmodyfikowano i usunięto zasoby Cloud Spanner za pomocą Terraform.
Omówione zagadnienia
- Jak korzystać z dostawcy Terraform w Google Cloud.
- 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
- Zapoznaj się z dokumentacją Google Cloud Spanner.
- Przeczytaj artykuł o zasobie Terraform Google Cloud Spanner.
- Dowiedz się więcej o konfigurowaniu reguł IAM dla instancji i baz danych.