arrow_back

Utiliser Cloud SQL avec Terraform

Utiliser Cloud SQL avec Terraform

1 heure 5 crédits

GSP234

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier pratique, vous allez apprendre à créer des instances Cloud SQL avec Terraform, puis à configurer le proxy Cloud SQL et à tester la connexion avec un client MySQL.

Objectifs

Au cours de cet atelier, vous allez apprendre à réaliser les opérations suivantes :

  • Créer une instance Cloud SQL
  • Installer le proxy Cloud SQL
  • Tester la connectivité avec le client MySQL à l'aide de Cloud Shell

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Cloud SQL

Cloud SQL est un service de base de données entièrement géré qui facilite la configuration, la maintenance, la gestion et l'administration de vos bases de données relationnelles sur Google Cloud. Vous pouvez utiliser Cloud SQL avec MySQL ou PostgreSQL.

Tâche 1 : Télécharger les fichiers nécessaires

  1. Créez un répertoire et extrayez les scripts Terraform requis à partir du bucket Cloud Storage en exécutant les commandes suivantes :
mkdir sql-with-terraform cd sql-with-terraform gsutil cp -r gs://spls/gsp234/gsp234.zip .
  1. Décompressez le contenu téléchargé :
unzip gsp234.zip

Tâche 2 : Comprendre le code

  • Examinez le contenu du fichier main.tf :
cat main.tf

Exemple de résultat :

... resource "google_sql_database_instance" "master" { name = "example-mysql-${random_id.name.hex}" project = var.project region = var.region database_version = var.database_version master_instance_name = var.master_instance_name settings { tier = var.tier activation_policy = var.activation_policy authorized_gae_applications = var.authorized_gae_applications disk_autoresize = var.disk_autoresize dynamic "backup_configuration" { for_each = [var.backup_configuration] content { binary_log_enabled = lookup(backup_configuration.value, "binary_log_enabled", null) enabled = lookup(backup_configuration.value, "enabled", null) start_time = lookup(backup_configuration.value, "start_time", null) } } dynamic "ip_configuration" { for_each = [var.ip_configuration] content { ipv4_enabled = lookup(ip_configuration.value, "ipv4_enabled", true) private_network = lookup(ip_configuration.value, "private_network", null) require_ssl = lookup(ip_configuration.value, "require_ssl", null) dynamic "authorized_networks" { for_each = lookup(ip_configuration.value, "authorized_networks", []) content { expiration_time = lookup(authorized_networks.value, "expiration_time", null) name = lookup(authorized_networks.value, "name", null) value = lookup(authorized_networks.value, "value", null) } } } } ...

Ensuite, modifiez le fichier variables.tf de façon à utiliser l'ID du projet et la région alloués à cet atelier.

  1. Cliquez sur Ouvrir l'éditeur dans Cloud Shell.
  2. Ouvrez le fichier variables.tf et modifiez les variables project and region avec les valeurs présentées ci-dessous :
  • project :
  • region :

Lorsque vous avez terminé, enregistrez le fichier modifié.

Tâche 3 : Exécuter Terraform

La commande terraform init permet d'initialiser un répertoire de travail contenant les fichiers de configuration Terraform.

Cette commande exécute plusieurs étapes d'initialisation en vue de préparer le répertoire de travail à utiliser. Vous pouvez exécuter cette commande à plusieurs reprises pour actualiser le répertoire en fonction des modifications apportées à la configuration.

  1. Exécutez terraform init :
terraform init

La commande terraform plan est une commande facultative, mais recommandée, qui permet de créer un plan d'exécution. Terraform procède à une actualisation (sauf si cette fonctionnalité a été explicitement désactivée), puis détermine les actions requises pour obtenir l'état spécifié dans les fichiers de configuration.

Cette commande vous permet de vérifier facilement si le plan d'exécution d'un ensemble de modifications répond à vos attentes sans modifier les ressources réelles ni l'état. Par exemple, vous pouvez exécuter terraform plan avant de valider une modification du contrôle des versions pour vous assurer que vous obtiendrez le résultat souhaité.

  1. Exécutez terraform plan :
terraform plan -out=tfplan

Vous pouvez utiliser l'argument -out facultatif pour enregistrer le plan généré dans un fichier en vue de l'exécuter ultérieurement à l'aide de la commande terraform apply.

La commande terraform apply permet d'appliquer les modifications nécessaires pour obtenir la configuration souhaitée, ou la série d'actions prédéterminées générée par un plan d'exécution créé avec la commande terraform plan.

  1. Appliquez le plan Terraform que vous venez de créer :
terraform apply tfplan

Cette opération prend un certain temps. Quand elle sera terminée, vous verrez un résultat comme celui-ci :

Apply complete! Resources: 5 added, 0 changed, 0 destroyed. The state of your infrastructure has been saved to the path below. This state is required to modify and destroy your infrastructure, so keep it safe. To inspect the complete state use the `terraform show` command. State path: terraform.tfstate Outputs: generated_user_password = instance_address = 35.232.204.44 instance_address_time_to_retire = instance_name = example-mysql-6808 self_link = https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/example-mysql-6808

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour vérifier la tâche exécutée.

Créer une instance Cloud SQL à l'aide d'un script Terraform

Tâche 4 : Proxy Cloud SQL

Caractéristiques du proxy

Avec le proxy Cloud SQL, vous bénéficiez d'un accès sécurisé aux instances Cloud SQL de deuxième génération, sans avoir besoin d'ajouter des adresses IP à la liste d'autorisation ni de configurer SSL.

L'accès à l'instance Cloud SQL à l'aide du proxy Cloud SQL offre les avantages suivants :

  • Connexions sécurisées : le proxy chiffre automatiquement le trafic vers et depuis la base de données à l'aide de TLS 1.2 avec un algorithme de chiffrement AES 128 bits. Les certificats SSL permettent de valider les identités du client et du serveur.
  • Gestion simplifiée des connexions : le proxy gère l'authentification auprès de Cloud SQL. Ainsi, il n'est plus nécessaire de fournir des adresses IP statiques.
Remarque : Vous n'avez pas besoin d'utiliser le proxy ni de configurer SSL pour vous connecter à Cloud SQL à partir de l'environnement App Engine standard ou flexible. Ces connexions utilisent automatiquement une mise en œuvre de proxy "intégrée".

Fonctionnement du proxy Cloud SQL

Le proxy Cloud SQL fonctionne avec un client local, appelé proxy, qui s'exécute dans l'environnement local. Pour communiquer avec le proxy, votre application utilise le protocole standard de votre base de données. Le proxy se sert d'un tunnel sécurisé pour communiquer avec son processus associé, exécuté sur le serveur.

Le diagramme suivant illustre la manière dont le proxy se connecte à Cloud SQL :

Diagramme de connexion au proxy, qui comprend le code tierce et Cloud SQL dans Cloud SQL et dans la machine cliente.

Tâche 5 : Installer le proxy Cloud SQL

  1. Téléchargez le proxy :
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
  1. Rendez le proxy exécutable :
chmod +x cloud_sql_proxy

Vous pouvez installer le proxy n'importe où dans votre environnement. L'emplacement des binaires du proxy n'a pas d'incidence sur l'endroit d'où celui-ci écoute les données de votre application.

Options de démarrage du proxy

Lorsque vous démarrez le proxy, vous lui fournissez les informations suivantes :

  • À quelles instances Cloud SQL établir des connexions
  • Où écouter les données provenant de l'application à envoyer à Cloud SQL
  • Où trouver les identifiants pour authentifier l'application auprès de Cloud SQL

Les options de démarrage du proxy que vous spécifiez déterminent si le proxy écoute un port TCP ou un socket Unix. Dans le cas d'un socket Unix, le proxy crée celui-ci à l'emplacement de votre choix, généralement dans le répertoire /cloudsql/. Dans le cas d'un port TCP, le proxy écoute localhost par défaut.

Tâche 6 : Tester la connexion à la base de données

  1. Commencez par exécuter le proxy Cloud SQL pour l'instance Cloud SQL :
export GOOGLE_PROJECT=$(gcloud config get-value project) MYSQL_DB_NAME=$(terraform output -json | jq -r '.instance_name.value') MYSQL_CONN_NAME="${GOOGLE_PROJECT}:{{{project_0.default_region|REGION}}}:${MYSQL_DB_NAME}"
  1. Exécutez la commande suivante :
./cloud_sql_proxy -instances=${MYSQL_CONN_NAME}=tcp:3306

À présent, vous allez ouvrir un nouvel onglet Cloud Shell en cliquant sur l'icône Plus (+). Vous utiliserez ce shell pour vous connecter au proxy Cloud SQL.

  1. Accédez au répertoire sql-with-terraform :
cd ~/sql-with-terraform
  1. Obtenez le mot de passe généré pour MYSQL :
echo MYSQL_PASSWORD=$(terraform output -json | jq -r '.generated_user_password.value')
  1. Testez la connexion MySQL :
mysql -udefault -p --host 127.0.0.1 default
  1. Lorsque vous y êtes invité, saisissez la valeur de la chaîne MYSQL_PASSWORD figurant dans le résultat ci-dessus, puis appuyez sur Entrée.

  2. Vous devriez alors accéder à la ligne de commande MYSQL. Quittez MYSQL en appuyant sur Ctrl+D.

Si vous revenez au premier onglet Cloud Shell, vous y verrez les journaux associés aux connexions établies avec le proxy Cloud SQL.

Tâche 7 : Tester vos connaissances

Voici quelques questions à choix multiples qui vous permettront de mieux maîtriser les concepts abordés lors de cet atelier. Répondez-y du mieux que vous le pouvez.

Félicitations !

Dans cet atelier, vous avez utilisé Terraform pour créer une instance Cloud SQL et configurer le proxy Cloud SQL. Vous avez ensuite testé la connexion entre les deux avec un client MySQL.

Terminer votre quête

Cet atelier d'auto-formation fait partie des quêtes Managing Cloud Infrastructure with Terraform et Cloud SQL. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez une quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à la quête Managing Cloud Infrastructure with Terraform ou Cloud SQL pour obtenir immédiatement les crédits associés à cet atelier. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.

Atelier suivant

Continuez votre apprentissage en suivant l'atelier Utiliser une passerelle NAT avec Kubernetes Engine, ou consultez nos suggestions de ressources :

Étapes suivantes et informations supplémentaires

Découvrez comment gérer des projets Google Cloud avec Terraform.

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière modification du manuel : 26 octobre 2023

Dernier test de l'atelier : 30 octobre 2023

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.