Cloud Spanner z Terraform

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.

Zobacz wszystkie funkcje

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:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

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:

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.

48b67416982fa152.png

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:

9962a71c6b2a3aff.png

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