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
, qui est nécessaire pour activer et utiliser le pool de connexions géré.
alloydb.instances.update
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
Accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
Sur la page Vue d'ensemble, accédez à Instances de votre cluster.
Cliquez sur Modifier le principal ou Modifier le pool de lecture.
Sous Pool de connexions géré, cochez la case Activer le pool de connexions géré.
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.
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
Accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
Sur la page Vue d'ensemble, accédez à Instances de votre cluster.
Cliquez sur Modifier l'instance ou Modifier le pool de lecture pour l'instance que vous souhaitez modifier.
Sous Pool de connexions géré, développez Options de pool avancées.
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
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 desession
outransaction
.--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 desession
outransaction
.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
Accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
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
Accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
Sur la page Vue d'ensemble, accédez à Instances de votre cluster.
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é.
Sous Pool de connexions géré, décochez la case Activer le pool de connexions géré.
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:
|
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:
|
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