1. Présentation
Dernière mise à jour:23/07/2020
Qu'est-ce que Cloud Spanner ?
Google Cloud Spanner est une base de données distribuée à l'échelle mondiale et conforme à la norme ACID. Elle gère automatiquement les instances répliquées, la segmentation et le traitement des transactions. Vous pouvez ainsi rapidement effectuer un scaling pour vous adapter aux différents modèles d'utilisation et garantir la réussite de vos produits.
Principales fonctionnalités
- Base de données relationnelle conçue pour évoluer:tout ce que vous attendez d'une base de données relationnelle (schémas, requêtes SQL et transactions ACID) est testée et prête à évoluer à l'échelle mondiale.
- Disponibilité de 99,999 %:Cloud Spanner offre une disponibilité de pointe de 99,999 % pour les instances multirégionales, soit 10 fois moins de temps d'arrêt qu'une disponibilité de 99,99 %, et fournit une réplication transparente et synchrone sur les configurations régionales et multirégionales.
- Segmentation automatique:Cloud Spanner optimise la segmentation automatique des données en fonction de la charge des requêtes et de la taille des données. Vous pouvez ainsi passer moins de temps à vous préoccuper du scaling de votre base de données au lieu de vous concentrer sur le scaling de votre entreprise.
Voir toutes les fonctionnalités
Points abordés
- Utiliser le fournisseur Google Cloud Terraform
- Créer des instances et des bases de données Cloud Spanner avec Terraform
- Modifier des ressources Cloud Spanner à l'aide de Terraform
- Supprimer des ressources Cloud Spanner à l'aide de Terraform
2. Préparation
Configuration de l'environnement au rythme de chacun
Si vous ne possédez pas encore de compte Google (Gmail ou Google Apps), vous devez en créer un. Connectez-vous à la console Google Cloud Platform ( console.cloud.google.com) et créez un projet:
Mémorisez l'ID du projet. Il s'agit d'un nom unique permettant de différencier chaque projet Google Cloud (le nom ci-dessus est déjà pris ; vous devez en trouver un autre). Il sera désigné par le nom PROJECT_ID tout au long de cet atelier de programmation.
Vous devez ensuite activer la facturation dans la console Cloud pour pouvoir utiliser les ressources Google Cloud.
Suivre cet atelier de programmation ne devrait pas vous coûter plus d'un euro. Cependant, cela peut s'avérer plus coûteux si vous décidez d'utiliser davantage de ressources ou si vous n'interrompez pas les ressources (voir la section "Effectuer un nettoyage" à la fin du présent document).
Les nouveaux utilisateurs de Google Cloud Platform peuvent bénéficier d'un essai sans frais de 300$.
Authentification
Si ce n'est pas déjà fait, installez l'outil de ligne de commande gcloud. Une fois gcloud installé, activez les identifiants par défaut de l'application en exécutant la commande suivante dans votre terminal:
$ gcloud auth application-default login
Terraform
Si ce n'est pas déjà fait, installez Terraform.
3. Fournisseur Terraform pour Google Cloud
Le fournisseur Terraform pour Google Cloud fournit quatre ressources Cloud Spanner:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
Dans cet atelier de programmation, nous allons créer et gérer des instances et des bases de données Cloud Spanner.
Environment
Dans votre environnement de développement, créez un répertoire pour vos fichiers de configuration Terraform.
$ mkdir ~/terraform-spanner $ cd ~/terraform-spanner
Ensuite, créez un fichier nommé "main.tf". par le contenu suivant, en remplaçant PROJECT_ID par votre propre ID de projet Google Cloud:
$ cat >> main.tf <<'EOF' provider "google" { project = "PROJECT_ID" } EOF
Dans la suite de cet atelier de programmation, nous allons modifier ce fichier et appliquer les modifications.
4. Créer des instances et des bases de données
Modifiez le fichier main.tf avec le contenu suivant pour ajouter une instance Cloud Spanner:
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 3 }
Exécutez la commande suivante pour appliquer les modifications:
$ 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.
Une fois les modifications appliquées, vous pourrez voir l'instance dans la console Google Cloud. Veuillez noter qu'une fois l'instance créée, la configuration régionale ne peut plus être modifiée.
Une fois l'instance créée, nous allons créer une base de données lors des prochaines étapes. Modifiez main.tf avec le contenu suivant:
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" }
Là encore, exécutez la commande suivante pour appliquer les modifications:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
En cas de réussite, my-first-database sera disponible sous l'instance:
5. Modifier une instance
Comme indiqué dans la section précédente, toutes les propriétés des instances ne sont pas modifiables. Toutefois, vous pouvez augmenter ou diminuer le nombre de nœuds pour ajuster les ressources utilisées par l'instance. L'instance créée comportait trois nœuds. En modifiant le fichier main.tf, nous allons faire passer le nombre de nœuds à cinq:
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" }
L'étape suivante consiste à appliquer les modifications:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Une fois l'opération réussie, l'instance utilisera cinq nœuds.
6. Supprimer une base de données
Vous pouvez supprimer définitivement une base de données lorsque vous n'en avez plus besoin. Il suffit de supprimer la base de données de main.tf et d'appliquer les modifications.
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.
Une fois l'opération terminée, la base de données sera définitivement supprimée.
7. Supprimer une instance
Vous pouvez supprimer définitivement une instance lorsque vous n'en avez plus besoin. Il suffit de supprimer l'instance de main.tf et d'appliquer les modifications.
provider "google" { project = "PROJECT_ID" }
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Une fois l'opération terminée, l'instance sera définitivement supprimée.
8. Félicitations !
Vous avez créé, modifié et supprimé des ressources Cloud Spanner à l'aide de Terraform.
Points abordés
- Utiliser le fournisseur Terraform pour Google Cloud
- Créer des instances et des bases de données Cloud Spanner avec Terraform
- Modifier des ressources Cloud Spanner à l'aide de Terraform
- Supprimer des ressources Cloud Spanner à l'aide de Terraform
En savoir plus
- Consultez la documentation Google Cloud Spanner.
- Découvrez la ressource Terraform de Google Cloud Spanner.
- Découvrez comment définir des règles IAM pour les instances et les bases de données.