Configurer le regroupement de connexions géré

Cette page explique comment activer, vous connecter et surveiller le pool de connexions géré dans AlloyDB pour PostgreSQL. Le regroupement de connexions géré est un modèle de conception qui optimise la gestion des connexions de base de données en maintenant un pool de connexions préétablies. Ce pool de connexions est ensuite réutilisé par l'application au lieu d'ouvrir et de fermer des connexions pour chaque opération de base de données, ce qui améliore les performances et l'utilisation des ressources.

Grâce au regroupement de connexions géré, vous pouvez faire évoluer vos charges de travail de base de données en optimisant l'utilisation des ressources et la latence de connexion pour vos instances AlloyDB. Le regroupement de connexions géré attribue dynamiquement des connexions de serveur aux requêtes entrantes lorsque cela est possible à l'aide du regroupement et du multiplexage. Cette approche améliore les performances, en particulier pour les connexions à grande échelle, en absorbant les pics de connexion soudains et en réutilisant les connexions à la base de données existantes. Au lieu de se connecter à une base de données spécifique, lorsqu'elle utilise le regroupement de connexions géré, une application se connecte à un pooleur, ce qui réduit les temps de connexion et offre une évolutivité pour vos charges de travail de lecture.

Bien que vous puissiez utiliser le pool de connexions géré pour n'importe quelle charge de travail transactionnelle, il est le mieux adapté aux applications qui contiennent plus de connexions de courte durée ou qui peuvent connaître une augmentation soudaine des connexions.

Avant de commencer

Vous devez vous connecter à votre instance à l'aide d'une connexion directe. Le regroupement de connexions géré n'est pas compatible avec la connexion au proxy d'authentification AlloyDB ni aux connecteurs de langage AlloyDB.

Rôles requis

Pour obtenir l'autorisation dont vous avez besoin pour activer et utiliser le pool de connexions géré, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Cloud AlloyDB (roles/alloydb.admin) sur l'instance AlloyDB. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation alloydb.instances.update, qui est nécessaire pour activer et utiliser le pool de connexions géré.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Options de configuration avancées

Le pool de connexions géré AlloyDB est compatible avec les options de configuration de pool avancées suivantes. Vous pouvez personnaliser le pool de connexions géré pour répondre aux besoins de votre instance à l'aide de ces options de configuration. Vous pouvez définir ces configurations au niveau de l'instance à l'aide de la console Google Cloud, de gcloud CLI ou de l'API AlloyDB.

Nom de la configuration Description
Mode de connexion
(connection-pooling-pool-mode)
Pour le mode de connexion, vous pouvez sélectionner "Transaction" (par défaut) ou "Session".

Transaction (transaction) :
Regroupe les connexions au niveau de la transaction. Une connexion de serveur est attribuée à un client lors d'une transaction. Une fois la transaction terminée, la connexion au serveur est remise dans le pool.

Session (session) :
Regroupe les connexions au niveau de la session. Une connexion de serveur est attribuée au client pendant toute la durée de sa connexion. Une fois le client déconnecté, la connexion du serveur est remise dans le pool.
Taille maximale du pool
(connection-pooling-max-pool-size)
Taille maximale du pool de connexions. La valeur par défaut est de 50 connexions.
Taille minimale du pool
(connection-pooling-min-pool-size)
Taille minimale du pool de connexions. La valeur par défaut est de 0 connexions.
Délai(s) d'inactivité des connexions client
(connection-pooling-client-connection-idle-timeout)
Durée pendant laquelle une connexion client reste inactive avant d'expirer. Cette valeur peut être comprise entre 0 et 2 147 483 secondes, et la valeur par défaut est de 0 seconde. Vous ne pouvez configurer ce paramètre qu'à l'aide de la console Google Cloud.
Délai(s) d'inactivité des connexions au serveur
(connection-pooling-server-connection-idle-timeout)
Durée pendant laquelle une connexion au serveur reste inactive avant d'expirer. Cette valeur peut varier de 0 à 2 147 483 secondes, et la valeur par défaut est de 600 secondes.
Délai(s) d'attente avant expiration des requêtes
(connection-pooling-query-wait-timeout)
Durée d'attente d'une requête avant son expiration. Cette valeur peut varier de 0 à 2 147 483 secondes, et la valeur par défaut est de 120 secondes.
Nombre maximal d'instructions préparées :
(connection-pooling-max-prepared-statements)
Nombre maximal de commandes d'instructions préparées envoyées en mode pool de transactions. La valeur par défaut est 0.
Ignorer les paramètres de démarrage
(connection-pooling-ignore-startup-parameters)
Les paramètres que vous souhaitez ignorer, qui ne sont pas suivis dans les paquets de démarrage par défaut.
Durée de vie des serveurs
(connection-pooling-server-lifetime)
Durée maximale pendant laquelle une connexion au serveur est inutilisée avant que le regroupement de connexions géré ne la ferme. La valeur par défaut est de 3 600 secondes. Vous ne pouvez configurer ce paramètre qu'à l'aide de la console Google Cloud.

Par défaut, le pool de connexions géré lance des connexions au serveur AlloyDB. Lorsqu'une connexion client est établie et authentifiée, le pool de connexions géré peut créer une ou plusieurs connexions de serveur afin que la taille du pool corresponde à la configuration choisie. Une connexion de serveur disponible est ensuite attribuée à la connexion client. Les connexions au serveur sont maintenues jusqu'à ce qu'elles soient fermées explicitement ou qu'elles restent inactives pendant plus de temps que la période de délai avant expiration des connexions au serveur.

Activer le regroupement de connexions géré

Vous pouvez activer le pool de connexions géré pour toutes les instances existantes ou nouvelles.

Activer pour une nouvelle instance principale

Pour créer une instance principale avec le pooling de connexions géré activé, consultez la section Créer une instance principale. Vous pouvez activer le pool de connexions géré pour une instance à l'aide de la console Google Cloud, de la Google Cloud CLI ou de l'API AlloyDB.

Activer pour une nouvelle instance de pool de lecture

Pour créer une instance de pool de lecture avec le pooling de connexions géré activé, consultez la section Créer une instance de pool de lecture. Vous pouvez activer le pool de connexions géré pour une instance à l'aide de la console Google Cloud, de la Google Cloud CLI ou de l'API AlloyDB.

Activer pour une instance existante

Vous pouvez activer le pool de connexions géré pour une instance existante à l'aide de la console Google Cloud, de Google Cloud CLI ou de l'API AlloyDB.

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Vue d'ensemble, accédez à Instances de votre cluster.

  4. Cliquez sur Modifier le principal ou Modifier le pool de lecture.

  5. Sous Pool de connexions géré, cochez la case Activer le pool de connexions géré.

  6. Facultatif: Pour configurer les options de pool de connexion géré, cliquez sur Options de pool avancées.

    Vous pouvez personnaliser les options de pool de connexions géré pour répondre aux besoins de votre instance. Pour en savoir plus, consultez la section Options de configuration avancées.

  7. Cliquez sur Enregistrer les modifications.

gcloud

Pour activer le pool de connexions géré pour une instance de pool principal ou de pool de lecture existante, utilisez la commande gcloud alpha alloydb instances update suivante:

gcloud alpha alloydb instances update INSTANCE_ID \
  --project=PROJECT_ID \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --enable-connection-pooling

Remplacez les éléments suivants :

  • INSTANCE_ID: ID de l'instance AlloyDB pour laquelle vous souhaitez activer le pool de connexions géré.
  • PROJECT_ID : ID du projet.
  • REGION_ID: ID de la région.
  • CLUSTER_ID: ID du cluster.

Une fois que vous avez activé le pool de connexions géré, vous pouvez personnaliser les options de pool de connexions géré pour répondre aux besoins de votre instance en définissant les options de configuration avancées. Pour en savoir plus sur la configuration des options de configuration, consultez Modifier le pool de connexions géré pour une instance.

REST

Pour activer le pool de connexions géré pour une instance de pool principal ou de pool de lecture existante, utilisez la commande suivante et définissez connectionPoolConfig:

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet.
  • LOCATION_ID: ID de la région du cluster.
  • CLUSTER_ID: ID du cluster. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des tirets.
  • INSTANCE_ID : ID de l'instance

Méthode HTTP et URL :

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "connectionPoolConfig": {
    "enabled": true
  }
}

Se connecter au pool de connexions géré

La connexion au pool de connexions géré est identique aux connexions directes à la base de données, sauf sur un port différent. Le regroupement de connexions géré écoute sur le port 6432. Tout utilisateur ajouté à l'instance AlloyDB peut se connecter à l'aide du pool de connexions géré.

Se connecter à l'aide de l'authentification intégrée

L'exemple de commande connecte votre instance AlloyDB au pool de connexions géré à l'aide de l'authentification intégrée.

psql postgresql://USERNAME:PASSWORD@IP_ADDRESS:6432/postgres

Se connecter à l'aide de connexions SSL

Le mode SSL de l'instance s'applique également à toutes les connexions au pool de connexions géré. Par défaut, seules les connexions SSL sont acceptées. Pour autoriser les connexions non chiffrées, utilisez la commande gcloud alloydb instances update suivante pour définir le mode SSL de l'instance sur ALLOW_UNENCRYPTED_AND_ENCRYPTED.

gcloud alloydb instances update INSTANCE_ID \
  --project=PROJECT_ID \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED

Modifier le regroupement de connexions géré pour une instance

Une fois que vous avez activé le pool de connexions géré, vous pouvez personnaliser les options de pool de connexions géré pour répondre aux besoins de votre instance à l'aide des options de configuration avancées. Ces options de configuration sont appelées indicateurs de pool de connexions gérés. Pour en savoir plus sur les options de configuration, leurs valeurs par défaut et leurs plages, consultez la section Options de configuration avancées.

Vous pouvez modifier les options de configuration du pool de connexions géré pour une instance existante à l'aide de la console Google Cloud, de Google Cloud CLI ou de l'API AlloyDB.

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Vue d'ensemble, accédez à Instances de votre cluster.

  4. Cliquez sur Modifier l'instance ou Modifier le pool de lecture pour l'instance que vous souhaitez modifier.

  5. Sous Pool de connexions géré, développez Options de pool avancées.

  6. Modifiez les options de pool avancées que vous souhaitez mettre à jour. Vous pouvez modifier les options suivantes:

    • Mode de connexion
    • Taille maximale du pool
    • Taille minimale du regroupement
    • Nombre maximal de connexions client
    • Délai(s) d'inactivité des connexions client
    • Délai(s) d'inactivité des connexions au serveur
    • Délai(s) d'attente avant expiration des requêtes
    • Nombre maximal d'instructions préparées
    • Ignorer les paramètres de démarrage
    • Durée(s) de vie des serveurs
  7. Cliquez sur Mettre à jour l'instance.

gcloud

Pour modifier les options de configuration du pool de connexions géré pour une instance existante, utilisez la commande gcloud alpha alloydb instances update suivante:

  gcloud alpha alloydb instances update INSTANCE_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    { \
      --connection-pooling-pool-mode=CONNECTION_MODE \
      | --connection-pooling-max-pool-size=MAX_POOL_SIZE \
      | --connection-pooling-min-pool-size=MIN_POOL_SIZE \
      | --connection-pooling-max-client-connections=MAX_CLIENT_CONNECTION \
      | --connection-pooling-server-idle-timeout=SERVER_IDLE_TIMEOUT_PERIOD \
      | --connection-pooling-query-wait-timeout=QUERY_WAIT_TIMEOUT_PERIOD \
      | --connection-pooling-ignore-startup-parameters=IGNORE_STARTUP_PARAMETERS \
    }

Remplacez les éléments suivants :

  • INSTANCE_ID: nom de l'instance AlloyDB pour laquelle vous souhaitez désactiver le pool de connexions géré.
  • PROJECT_ID : ID du projet.
  • REGION_ID: ID de la région.
  • CLUSTER_ID: ID du cluster.
  • Vous pouvez configurer les options suivantes :

    • --connection-pooling-pool-mode. Il doit s'agir de session ou transaction.
    • --connection-pooling-max-pool-size
    • --connection-pooling-min-pool-size
    • --connection-pooling-max-client-connections
    • --connection-pooling-server-idle-timeout
    • --connection-pooling-query-wait-timeout
    • --connection-pooling-ignore-startup-parameters

REST

Pour modifier les options de configuration de la mise en pool de connexions gérée pour une instance de pool de lecture existante, utilisez la commande suivante et définissez connectionPoolConfig:

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet.
  • LOCATION_ID: ID de la région du cluster.
  • CLUSTER_ID: ID du cluster que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.
  • INSTANCE_ID: ID de l'instance que vous créez.
  • Vous pouvez configurer les options suivantes :

    • POOL_MODE. Il doit s'agir de session ou transaction.
    • MAX_POOL_SIZE
    • MIN_POOL_SIZE
    • MAX_CLIENT_CONNECTION
    • SERVER_IDLE_TIMEOUT
    • QUERY_WAIT_TIMEOUT
    • IGNORE_STARTUP_PARAMETERS

Méthode HTTP et URL :

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "connectionPoolConfig": {
    "enabled": true,
    "flags": {
      "pool_mode": "POOL_MODE",
      "max_pool_size": "MAX_POOL_SIZE",
      "min_pool_size": "MIN_POOL_SIZE",
      "max_client_connection": "MAX_CLIENT_CONNECTION",
      "server_idle_timeout": "SERVER_IDLE_TIMEOUT",
      "query_wait_timeout": "QUERY_WAIT_TIMEOUT",
      "ignore_startup_parameters": "IGNORE_STARTUP_PARAMETERS"
    },
  }
}

Afficher l'état du pool de connexions géré pour une instance

Vous pouvez afficher l'état du pool de connexions géré pour une instance à l'aide de la console Google Cloud, de Google Cloud CLI ou de l'API AlloyDB.

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Vue d'ensemble, recherchez l'instance pour laquelle vous souhaitez afficher l'état du pooling de connexions géré. Le champ Pool de connexions géré indique s'il est activé ou désactivé.

gcloud

Pour afficher l'état du pool de connexions géré pour une instance existante, utilisez la commande gcloud alpha alloydb instances describe suivante:

gcloud alpha alloydb instances describe INSTANCE_ID \
  --project=PROJECT_ID \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --format="value(connectionPoolConfig.enabled)"

Remplacez les éléments suivants :

  • INSTANCE_ID: nom de l'instance AlloyDB pour laquelle vous souhaitez modifier les options de pool de connexions géré.
  • PROJECT_ID : ID du projet.
  • REGION_ID: ID de la région.
  • CLUSTER_ID: ID du cluster.

Si le pool de connexions géré est activé, la réponse suivante est renvoyée:

True

REST

Pour afficher l'état du pool de connexions géré pour votre instance AlloyDB, utilisez la commande suivante et recherchez connectionPoolConfig:

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet.
  • LOCATION_ID: ID de la région du cluster.
  • CLUSTER_ID: ID du cluster que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.
  • INSTANCE_ID: ID de l'instance que vous créez.

Méthode HTTP et URL :

GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID

Désactiver le pool de connexions géré pour une instance existante

Vous pouvez désactiver le pool de connexions géré pour une instance existante à l'aide de la console Google Cloud, de Google Cloud CLI ou de l'API AlloyDB.

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Vue d'ensemble, accédez à Instances de votre cluster.

  4. Cliquez sur Modifier l'instance ou Modifier le pool de lecture pour l'instance pour laquelle vous souhaitez désactiver la connexion de pool de connexions géré.

  5. Sous Pool de connexions géré, décochez la case Activer le pool de connexions géré.

  6. Cliquez sur Mettre à jour l'instance.

gcloud

Pour désactiver le pool de connexions géré pour une instance existante, utilisez la commande gcloud alpha alloydb instances update suivante:

gcloud alpha alloydb instances update INSTANCE_ID \
  --project=PROJECT_ID \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --no-enable-connection-pooling

Remplacez les éléments suivants :

  • INSTANCE_ID: nom de l'instance AlloyDB pour laquelle vous souhaitez désactiver le pool de connexions géré.
  • PROJECT_ID : ID du projet.
  • REGION_ID: ID de la région.
  • CLUSTER_ID: ID du cluster.

REST

Pour désactiver le pool de connexions géré pour une instance de pool de lecture existante, utilisez la commande suivante et définissez connectionPoolConfig sur false:

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet.
  • LOCATION_ID: ID de la région du cluster.
  • CLUSTER_ID: ID du cluster que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.
  • INSTANCE_ID: ID de l'instance que vous créez.

Méthode HTTP et URL :

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "connectionPoolConfig": {
    "enabled": false
  }
}

Surveiller le regroupement de connexions géré

AlloyDB fournit les métriques suivantes pour vous aider à surveiller le fonctionnement du regroupement de connexions géré sur votre instance. Vous pouvez afficher ces métriques à l'aide de l'explorateur de métriques.

Nom de la métrique Description
Nombre de pools de connexions

/database/conn_pool/num_pools
Nombre total de pools de connexions par base de données.
Connexions client

/database/conn_pool/client_connections
Suit le nombre de connexions client regroupées par état de la connexion client par base de données. Les états inclus dans cette métrique sont les suivants:
  • active: nombre de connexions actives par base de données, y compris les clients inactifs qui n'ont aucune requête en attente.
  • waiting: nombre de clients en attente d'une connexion au serveur par base de données.
Connexions au serveur

/database/conn_pool/server_connections
Suit le nombre de connexions au serveur regroupées par état de la connexion au serveur par base de données. Les états inclus dans cette métrique sont les suivants:
  • active: nombre de connexions actives par base de données.
  • idle: nombre de connexions de serveur inactives par base de données.
Temps d'attente moyen

/database/conn_pool/client_connections_avg_wait_time
Temps moyen passé par tous les clients en état d'attente d'un serveur, en microsecondes par base de données.

Pour en savoir plus, consultez la section Métriques AlloyDB.

Limites

Les limites suivantes s'appliquent pendant la version Preview et sont susceptibles d'être modifiées ou supprimées à la sortie de la version GA ou après:

  • Le regroupement de connexions géré n'est pas compatible avec la connexion au proxy d'authentification AlloyDB ni aux connecteurs de langage AlloyDB.
  • Si vous utilisez le pool de connexions géré en mode pool de transactions, les fonctionnalités SQL suivantes ne sont pas prises en charge :
    • SET/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/DEALLOCATE
    • Tables temporaires PRESERVE/DELETE ROW
    • LOAD
    • Verrous d'avertissement au niveau de la session
    • Plans préparés au niveau du protocole