Gérer des bases de données

Le bac à sable GDC fournit le service de base de données pour tester et gérer les clusters de bases de données.

Créer une base de données

Pour créer et gérer un cluster de bases de données, consultez Créer et gérer un cluster de bases de données.

Moteurs de base de données disponibles

Le bac à sable GDC n'est compatible qu'avec PostgreSQL et AlloyDB.

Utilisez la console GDC ou Distributed Cloud CLI pour créer des clusters de bases de données :

Console

  1. Dans le menu principal, sélectionnez Service de base de données.
  2. Cliquez sur Créer un cluster de bases de données.
  3. Dans la boîte de dialogue Choisir un moteur de base de données, sélectionnez un moteur de base de données.

  4. Dans la boîte de dialogue Configurer votre cluster, spécifiez l'ID du cluster, le mot de passe et la version de la base de données. Vous pouvez activer les sauvegardes et configurer la période de conservation des sauvegardes.

  5. Dans la boîte de dialogue Configurer votre instance principale, spécifiez la capacité de processeur, de mémoire et de stockage de l'instance principale du cluster de bases de données. Nous vous recommandons de choisir une quantité de mémoire suffisante pour accueillir votre table la plus volumineuse.

  6. Cliquez sur Créer. La création du cluster de bases de données peut prendre quelques minutes. Vérifiez l'état du cluster sur la page Présentation du cluster. L'état passe de Création à Prêt lorsque le cluster est prêt.

gdcloud

  1. Avant d'utiliser Distributed Cloud CLI, installez-la et initialisez-la. Ensuite, authentifiez-vous auprès de votre organisation.

  2. Exécutez la commande suivante pour créer un cluster de bases de données :

    gdcloud database clusters create CLUSTER_NAME \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    Remplacez les variables suivantes :

    • CLUSTER_NAME par le nom du nouveau cluster.
    • DB_VERSION par la chaîne de version du nouveau cluster. Par exemple, POSTGRESQL_13 ou ALLOYDBOMNI_15
    • ADMIN_PASSWORD avec le mot de passe administrateur du nouveau cluster.
  3. Pour en savoir plus sur la configuration des ressources de processeur, de mémoire et de stockage pour le cluster de bases de données, sur la configuration des sauvegardes, sur l'activation de la haute disponibilité et sur les autres options disponibles, exécutez la commande suivante :

    gdcloud database clusters create --help
    

API

  1. Créez un fichier db-cluster-create.yaml avec le contenu

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DBCLUSTER_NAME
      namespace: USER_PROJECT
    type: Opaque
    data:
      DBCLUSTER_NAME: "BASE64_PASSWORD"
    ---
    apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
    kind: DBCluster
    metadata:
      name: DBCLUSTER_NAME
      namespace: USER_PROJECT
    spec:
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DBCLUSTER_NAME
        version: "DB_VERSION"
        resources:
          memory: DB_MEMORY
          cpu: DB_CPU
          disks:
          - name: DataDisk
            size: DB_DATA_DISK
    

    Remplacez les variables suivantes :

    • DBCLUSTER_NAME, nom du cluster de bases de données.
    • USER_PROJECT : nom du projet utilisateur dans lequel le cluster de bases de données sera créé.
    • BASE64_PASSWORD, encodage en base64 du mot de passe administrateur de la base de données.
    • DBENGINE_NAME, nom du moteur de base de données. Il s'agit de l'une des valeurs suivantes : alloydbomni ou postgresql.
    • DB_VERSION, la version du moteur de base de données
    • DB_MEMORY : quantité de mémoire allouée au cluster de bases de données (par exemple, 5Gi).
    • DB_CPU : nombre de processeurs alloués au cluster de bases de données (par exemple, 2).
    • DB_DATA_DISK, quantité d'espace allouée au cluster de bases de données (par exemple, 10 Gi).
  2. kubectl --kubeconfig MANAGEMENT_API apply -f db-cluster-create.yaml
    

Se connecter à la base de données

Par défaut, un cluster de bases de données n'autorise la connexion qu'à partir du cluster d'utilisateur et du même projet.

Pour activer les connexions à tous les clusters de bases de données de votre projet depuis un autre projet, consultez Activer les connexions inter-projets.

Pour vous connecter à la base de données à partir d'adresses IP en dehors de votre organisation GDC Sandbox, suivez les instructions de la section Se connecter à un cluster de bases de données pour activer les connexions externes.

Vous pouvez utiliser sshuttle pour vous connecter à votre base de données avec un client de base de données local tel que psql :

  1. Accédez à la section Connectivité de la page Service de base de données pour le cluster de bases de données. Cette page comprend les éléments suivants :

    • Mot de passe du compte administrateur (nom d'utilisateur : dbsadmin)
    • Nom d'hôte et numéro de port du point de terminaison principal du cluster de bases de données
    • Une commande psql pour se connecter au cluster (pour les clusters de bases de données PostgreSQL et AlloyDB Omni)
    • Lien permettant de télécharger le certificat de l'autorité de certification du cluster de bases de données
  2. Téléchargez le certificat de l'autorité de certification depuis la console GDC, dans la section Connectivité de la page Service de base de données de votre cluster de bases de données.

  3. Configurez votre client pour qu'il utilise le certificat CA afin de valider la base de données. Pour les clients psql, définissez la variable d'environnement PGSSLROOTCERT sur le chemin d'accès au fichier de certificat et la variable d'environnement PGSSLMODE sur votre préférence :

        export PGSSLROOTCERT=path/to/accounts_cert.pem
        export PGSSLMODE="verify-full"
    
  4. Initiez un tunnel sécurisé. Si vous avez une instance sshuttle en cours d'exécution, comme décrit dans Se connecter à votre instance, mettez fin à ce processus.

        sshuttle -r zone1-org-1-data@GDC_SANDBOX_INSTANCE_NAME --no-latency-control \
        --ssh-cmd 'gcloud compute ssh --project PROJECT_NAME --zone ZONE --tunnel-through-iap' \
        10.200.0.0/16 --dns
    

    Remplacez les éléments suivants par les valeurs fournies par l'équipe du bac à sable GDC :

    • GDC_SANDBOX_INSTANCE_NAME : nom de votre instance GDC Sandbox.
    • PROJECT_NAME : projet contenant votre environnement bac à sable GDC.
    • ZONE : zone contenant votre environnement bac à sable GDC.
  5. Pendant que le tunnel est actif, exécutez la commande à l'aide de psql dans un autre terminal.

        PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

    Remplacez les variables suivantes :

    • DB_PASSWORD : mot de passe de l'interface utilisateur de la console.
    • DB_HOSTNAME : nom d'hôte de la base de données depuis la console.
    • DB_PORT : numéro de port de la base de données depuis la console.
    • DB_USERNAME : nom d'utilisateur de la base de données depuis la console.