Cloud Spanner z Terraform

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.

Wyświetl wszystkie funkcje

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:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

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:

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.

48b67416982fa152.png

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:

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 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