Cloud Spanner con Terraform

1. Panoramica

Ultimo aggiornamento: 2020-07-23

Che cos'è Cloud Spanner?

Google Cloud Spanner è un database distribuito a livello globale e conforme ad ACID che gestisce automaticamente repliche, partizionamento orizzontale ed elaborazione delle transazioni, consentendoti di scalare rapidamente per soddisfare qualsiasi modello di utilizzo e garantire il successo dei tuoi prodotti.

Funzionalità principali

  • Database relazionale, creato per la scalabilità: tutto quello che ti aspetti da un database relazionale (schemi, query SQL e transazioni ACID), testato sul campo e pronto per scalare a livello globale.
  • Disponibilità del 99,999%: Cloud Spanner offre una disponibilità leader di settore del 99,999% per le istanze multiregionali, con tempi di inattività 10 volte inferiori rispetto a "a quattro nove", e fornisce una replica trasparente e sincrona tra regioni e configurazioni multiregionali.
  • partizionamento orizzontale automatico:Cloud Spanner ottimizza le prestazioni facendo partizionare automaticamente i dati in base al carico di richieste e alle dimensioni dei dati. Di conseguenza, puoi dedicare meno tempo a come scalare il tuo database e concentrarti invece sulla scalabilità del tuo business.

Visualizza tutte le funzionalità

Cosa imparerai a fare

  • Come utilizzare il provider Terraform di Google Cloud.
  • Utilizzo di Terraform per creare istanze e database Cloud Spanner.
  • Utilizzo di Terraform per modificare le risorse Cloud Spanner.
  • Utilizzo di Terraform per eliminare le risorse Cloud Spanner.

2. Configurazione e requisiti

Configurazione dell'ambiente da seguire in modo autonomo

Se non disponi già di un account Google (Gmail o Google Apps), devi crearne uno. Accedi alla console della piattaforma Google Cloud ( console.cloud.google.com) e crea un nuovo progetto:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

Ricorda l'ID progetto, un nome univoco in tutti i progetti Google Cloud (il nome precedente è già stato utilizzato e non funzionerà correttamente). Verrà indicato più avanti in questo codelab come PROJECT_ID.

Successivamente, per utilizzare le risorse Google Cloud, dovrai abilitare la fatturazione nella console Cloud.

L'esecuzione di questo codelab non dovrebbe costare più di qualche euro, ma potrebbe essere più costoso se decidi di utilizzare più risorse o se le lasci in esecuzione (consulta la sezione relativa alla pulizia alla fine di questo documento).

I nuovi utenti della piattaforma Google Cloud hanno diritto a una prova senza costi di$300.

Autenticazione

Se non lo hai già fatto, installa lo strumento a riga di comando gcloud. Una volta installato gcloud, attiva le credenziali predefinite dell'applicazione eseguendo questo comando nel tuo terminale:

$ gcloud auth application-default login

Terraform

Se non hai già installato Terraform, installalo.

3. Provider Terraform Google Cloud

Il provider Google Cloud Terraform offre quattro risorse Cloud Spanner:

In questo codelab, creeremo e gestiremo le istanze e i database di Cloud Spanner.

Ambiente

Nel tuo ambiente di sviluppo, crea una nuova directory per i file di configurazione di Terraform.

$ mkdir ~/terraform-spanner
$ cd ~/terraform-spanner

Quindi, crea un file denominato "main.tf". con i contenuti seguenti e sostituisci PROJECT_ID con il tuo ID progetto Google Cloud:

$ cat >> main.tf <<'EOF'
provider "google" {
  project = "PROJECT_ID"
}
EOF

Nella parte restante del codelab, modificheremo questo file e applicare le modifiche.

4. Creazione di istanze e database

Modifica il file main.tf con il contenuto seguente per aggiungere una nuova istanza di Cloud Spanner:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 3
}

Esegui questo comando per applicare le modifiche:

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

Una volta applicate le modifiche, potrai visualizzare l'istanza nella console Google Cloud. Tieni presente che non è possibile modificare la configurazione regionale dopo la creazione di un'istanza.

48b67416982fa152.png

Dopo aver creato l'istanza, creeremo un database nei passaggi successivi. Modifica main.tf con il seguente contenuto:

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

Anche in questo caso, utilizza il seguente comando per applicare le modifiche:

$ terraform apply
# ...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Se l'operazione riesce, my-first-database sarà disponibile nell'istanza:

9962a71c6b2a3aff.png

5. Modifica di un'istanza

Come indicato nella sezione precedente, non tutte le proprietà delle istanze sono modificabili. Tuttavia, puoi aumentare o diminuire il numero di nodi per regolare le risorse utilizzate dall'istanza. L'istanza creata aveva 3 nodi. Modificando il file main.tf, aumenteremo il numero di nodi a 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"
}

Il passaggio successivo consiste nell'applicazione delle modifiche:

$ terraform apply
# ...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Se l'operazione è riuscita, l'istanza utilizzerà 5 nodi.

6. Eliminazione di un database

Puoi eliminare definitivamente un database quando non ti serve più. Basta rimuovere il database da main.tf e applicare le modifiche.

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.

Una volta completata l'operazione, il database verrà eliminato definitivamente.

7. Eliminare un'istanza

Puoi eliminare definitivamente un'istanza quando non ti serve più. Basta rimuovere l'istanza da main.tf e applicare le modifiche.

provider "google" {
  project = "PROJECT_ID"
}
$ terraform apply
# ...
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

Una volta completata l'operazione, l'istanza verrà eliminata definitivamente.

8. Complimenti!

Hai creato, modificato ed eliminato le risorse Cloud Spanner utilizzando Terraform.

Argomenti trattati

  • Come utilizzare il provider Terraform per Google Cloud.
  • Utilizzo di Terraform per creare istanze e database Cloud Spanner.
  • Utilizzo di Terraform per modificare le risorse Cloud Spanner.
  • Utilizzo di Terraform per eliminare le risorse Cloud Spanner.

Scopri di più