Se connecter à une instance à l'aide d'un point de terminaison d'écriture

Présentation

Cette page explique comment utiliser un point de terminaison d'écriture pour se connecter à une instance Cloud SQL à partir de clients de votre réseau de cloud privé virtuel (VPC) à l'aide de l'accès aux services privés (PSA).

Un point de terminaison d'écriture est un nom de service de nom de domaine (DNS) mondial qui pointe automatiquement vers l'adresse IP de l'instance principale actuelle. En cas d'opération de basculement ou de commutation d'instance répliquée, ce point de terminaison d'écriture redirige automatiquement les connexions entrantes vers la nouvelle instance principale. Vous pouvez utiliser le point de terminaison d'écriture dans une chaîne de connexion SQL à l'instance Cloud SQL au lieu d'une adresse IP. En utilisant un point de terminaison d'écriture, vous pouvez éviter d'avoir à modifier la connexion de l'application lorsque vous effectuez une opération de basculement ou de commutation d'instance répliquée pour la reprise après sinistre ou un exercice de reprise après sinistre.

Chaque instance Cloud SQL éligible dispose d'un point de terminaison d'écriture intégré unique dont le nom, la création et la mise à jour sont gérés par Cloud SQL. L'exemple suivant illustre son format :

  103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
  

Le point de terminaison d'écriture se termine toujours par le suffixe .global.sql-psa.goog.. Vous ne pouvez pas modifier le nom ni le format de ce point de terminaison d'écriture géré par Cloud SQL.

Vous pouvez utiliser le point de terminaison d'écriture pour toutes les opérations d'écriture sur l'instance principale, y compris les insertions, les mises à jour, les suppressions et les modifications LDD. Vous pouvez également utiliser le point de terminaison d'écriture pour les opérations de lecture, telles que les requêtes. L'adresse IP privée vers laquelle pointe le point de terminaison d'écriture est automatiquement modifiée par Cloud SQL lorsque vous effectuez une opération de basculement d'instance répliquée ou de commutation pour promouvoir une instance répliquée en tant que nouvelle instance principale.

Générer le point de terminaison d'écriture

Si vous créez une instance Cloud SQL, Cloud SQL crée automatiquement le point de terminaison d'écriture lorsque les conditions préalables suivantes sont remplies :

  • Les API suivantes doivent être activées dans le projet Google Cloud où réside votre instance Cloud SQL :

    Si vous n'activez pas l'API Cloud DNS dans le projet, vous ne pourrez pas créer la zone DNS d'appairage, ce qui rendra les noms DNS inutilisables.

    Une fois la zone DNS d'appairage créée, il est important de ne pas la modifier. Toute modification, y compris la suppression, rendra le DNS inutilisable pour la connexion à la base de données.

  • L'instance Cloud SQL doit être de l'édition Cloud SQL Enterprise Plus.
  • L'instance Cloud SQL doit être configurée pour utiliser une adresse IP privée avec l'accès aux services privés (PSA) activé.
  • Cette fonctionnalité nécessite des instances sur la nouvelle architecture réseau. Dans la plupart des cas, les nouvelles instances sont créées avec la nouvelle architecture. Pour le vérifier, consultez l'architecture réseau de votre instance.

Lorsque vous mettez à niveau une instance Cloud SQL Enterprise existante vers une instance Cloud SQL Enterprise Plus, Cloud SQL génère automatiquement le point de terminaison d'écriture si les conditions préalables listées précédemment sont remplies. Si votre instance existante utilise l'ancienne architecture réseau, vous devez d'abord la mettre à niveau vers la nouvelle architecture réseau pour obtenir le point de terminaison d'écriture.

Si vous disposez déjà d'une instance Cloud SQL Enterprise Plus sans point de terminaison d'écriture et que vous souhaitez que Cloud SQL génère automatiquement un point de terminaison d'écriture, créez une instance répliquée qui gère la reprise après sinistre avancée.

Afficher le point de terminaison d'écriture

gcloud

Pour trouver le point de terminaison d'écriture, utilisez la commande gcloud CLI suivante :

      gcloud sql instances describe INSTANCE_NAME \
      | grep psaWriteEndpoint
    

Effectuez les remplacements suivants :

INSTANCE_NAME : nom de l'instance Cloud SQL.

Les points de terminaison d'écriture se terminent toujours par le suffixe .global.sql-psa.goog., comme dans l'exemple suivant :

  103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
  

Si vous ne voyez pas le point de terminaison d'écriture pour une instance éligible, consultez la section Dépannage.

Se connecter à une instance Cloud SQL à l'aide d'un point de terminaison d'écriture

mysql

Pour connecter un client mysql à une instance Cloud SQL à l'aide du point de terminaison d'écriture, exécutez la commande suivante :

    mysql -u root -h WRITE_ENDPOINT -p
  

Effectuez les remplacements suivants :

WRITE_ENDPOINT : nom DNS ou point de terminaison d'écriture. Cette valeur alphanumérique se termine toujours par le suffixe .global.sql-psa.goog.. Par exemple, 103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog..

Connecter des clients de base de données à des instances de base de données à l'aide d'un point de terminaison d'écriture via une connexion SSL/TLS

mysql

Pour connecter des clients de base de données à des instances à l'aide d'un point de terminaison d'écriture sur une connexion SSL/TLS, exécutez la commande suivante :

  mysql -uroot -pcloudsql -h 103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog. \
    --ssl-ca=SERVER_CA_SSL \
    --ssl-cert=SSL_CERT \
    --ssl-key=SSL_KEY \
    --ssl-verify-server-cert
  

Effectuez les remplacements suivants :

  • SERVER_CA_SSL : nom du fichier SSL de l'autorité de certification du serveur. Exemple :server-ca.pem
  • SSL_CERT : nom du certificat SSL pour le client. Exemple : client-cert.pem.
  • SSL_KEY : nom de la clé SSL du client. Exemple : client-key.pem.

Limites

  • Les points de terminaison d'écriture ne sont pas disponibles pour la création d'instances Cloud SQL Enterprise.
  • Les points de terminaison d'écriture ne sont pas disponibles pour les instances avec adresse IP publique uniquement ni pour les instances Private Service Connect uniquement.
  • Les points de terminaison d'écriture ne sont pas disponibles pour une utilisation avec le proxy d'authentification Cloud SQL ni les connecteurs de langage.

Dépannage

Les sections suivantes décrivent l'architecture des points de terminaison d'écriture et abordent les problèmes de dépannage courants.

Architecture d'un point de terminaison d'écriture

Lorsque vous créez une instance éligible, un point de terminaison d'écriture est généré par défaut.

Pour créer un point de terminaison d'écriture, Cloud SQL effectue la configuration suivante :

  • Crée une zone DNS privée dans le réseau VPC du producteur de services Cloud SQL.
  • Crée une zone DNS d'appairage dans le réseau VPC du client.
  • Crée un enregistrement DNS dans la zone DNS privée du réseau du producteur de services.

Le schéma suivant illustre le fonctionnement de ce processus :

Schéma montrant comment l'appairage de VPC permet l'appairage de zones DNS entre des projets.
Figure 1. Schéma montrant comment l'appairage de VPC permet l'appairage de zones DNS entre un réseau producteur de services et un réseau client.

Problèmes de résolution DNS

Si la résolution DNS ne fonctionne pas, vérifiez chacun des éléments suivants :

  1. Assurez-vous de remplir toutes les conditions préalables.
  2. Assurez-vous que les clients pour lesquels la résolution est attendue se trouvent sur le même réseau que celui auquel l'instance Cloud SQL est associée. Pour le vérifier, exécutez la commande gcloud compute instances list :
    gcloud compute instances list \
       --format="table( name, zone.basename(), networkInterfaces[].network )" \
       --project=PROJECT_NAME

    Remplacez PROJECT_NAME par le nom du projet dans lequel réside le réseau consommateur DNS.

  3. Vérifiez que la zone d'appairage existe. Pour ce faire, exécutez la commande gcloud dns managed-zones list :
    gcloud dns managed-zones list \
        --project=PROJECT_NAME

    Remplacez PROJECT_NAME par le nom du projet dans lequel réside le réseau consommateur DNS.

  4. Si la zone d'appairage n'existe pas, vous pouvez résoudre le problème à l'aide de la commande gcloud beta sql instances patch :
    gcloud beta sql instances patch INSTANCE_NAME --reconcile-psa-networking

    Remplacez INSTANCE_NAME par le nom de votre instance Cloud SQL.

La nouvelle instance ne possède pas de point de terminaison d'écriture

Si une instance nouvellement créée ne contient pas de point de terminaison d'écriture, vérifiez chacun des éléments suivants :

  1. Assurez-vous d'avoir rempli toutes les conditions préalables.
  2. Assurez-vous qu'il ne reste pas de zone DNS d'appairage avec le nom DNS sql-psa.goog..

    Une zone DNS d'appairage est une zone DNS restante si le réseau associé à la zone DNS n'a pas d'appairage VPC avec l'ID de projet pair de la zone DNS d'appairage.

    S'il reste une zone DNS d'appairage avec le suffixe sql-psa.goog., supprimez-la.

    Pour vérifier s'il reste des zones DNS d'appairage, utilisez la commande gcloud dns managed-zones list :

    gcloud dns managed-zones list \
       --project=PROJECT_NAME

    Remplacez PROJECT_NAME par le nom du projet dans lequel réside le réseau consommateur DNS.

    Si une zone DNS existe avec le suffixe sql-psa.goog., supprimez-la après avoir vérifié que la zone DNS d'appairage est une zone DNS restante.

    Pour supprimer une zone DNS, utilisez la commande gcloud dns managed-zones delete :

    gcloud dns managed-zones delete ZONE_NAME

    Remplacez ZONE_NAME par le nom de la zone DNS associée aux points de terminaison d'écriture. Les valeurs sont alphanumériques et utilisent le format suivant : cloud-sql-psa-dns-1234567890.

  3. Vous pouvez corriger un point de terminaison d'écriture manquant pour une instance éligible à l'aide de la commande gcloud beta sql instances patch :
    gcloud beta sql instances patch INSTANCE_NAME --reconcile-psa-networking

    Remplacez INSTANCE_NAME par le nom de votre instance Cloud SQL.

Étapes suivantes