Configurer le pool de connexions géré

Cette page explique comment activer, configurer et surveiller le regroupement de connexions géré dans vos instances Cloud SQL.

Le pooling de connexions géré vous permet de faire évoluer vos charges de travail en optimisant l'utilisation des ressources et la latence de connexion de vos instances à l'aide du pooling. Pour en savoir plus sur le pooling de connexions géré et son utilisation pour vos instances, consultez Présentation du pooling de connexions géré.

Avant de commencer

  • Vérifiez que votre instance répond à toutes les exigences pour utiliser le regroupement de connexions géré.
  • Si vous utilisez la gcloud CLI, vérifiez que votre version de la gcloud CLI est 515.0.0 ou ultérieure.

Activer le pooling de connexions géré

Vous pouvez activer le pooling de connexions géré pour une instance au moment de sa création ou modifier une instance existante pour l'activer.

Activer le pooling de connexions géré pour une nouvelle instance

Pour créer une instance avec la mise en pool des connexions gérées activée, consultez Créer des instances. Vous ne pouvez activer le regroupement de connexions géré pour une nouvelle instance qu'à l'aide de la gcloud CLI ou de l'API Cloud SQL.

Activer le pooling de connexions géré pour une instance existante

Pour activer le pooling de connexions géré pour une instance existante, procédez comme suit :

Console

  1. Dans la console Cloud de Confiance , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Recherchez l'instance pour laquelle vous souhaitez activer le pooling de connexions géré. Pour ouvrir la page de présentation de l'instance, cliquez sur son nom.

  3. Cliquez sur Modifier.

  4. Sous Personnaliser votre instance, développez Connexions.

  5. Pour activer le pooling de connexions géré, cochez la case Activer le pool de connexions géré.

  6. Cliquez sur Enregistrer.

gcloud

Utilisez la commande gcloud sql instances pour activer le pooling de connexions géré.

  gcloud sql instances patch INSTANCE_NAME \
  --enable-connection-pooling

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance Cloud SQL.

REST v1

Exécutez la commande suivante et définissez connectionPoolingEnabled :

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

  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": true
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Exécutez la commande suivante et définissez connectionPoolingEnabled :

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

  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": true
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Utilisez la ressource Terraform suivante :

# This example shows creating an instance with Managed Connection Pooling enabled and custom flags set.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_enable" {
  name                = "mysql-instance-managed-connection-pooling-enable"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      connection_pooling_enabled = true
    }
  }
}

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

Après avoir activé le regroupement de connexions géré, vous pouvez le personnaliser pour répondre aux besoins de votre instance à l'aide d'options de configuration avancées. Ces options de configuration sont appelées "options de pool de connexions géré". Pour en savoir plus sur les options de configuration avancées, leurs valeurs par défaut et leurs plages, consultez Options de configuration avancées.

Pour modifier les options de configuration avancées de la mise en pool des connexions gérées pour une instance, procédez comme suit :

Console

  1. Dans la console Cloud de Confiance , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Recherchez l'instance pour laquelle vous souhaitez activer le pooling de connexions géré. Pour ouvrir la page de présentation de l'instance, cliquez sur son nom.

  3. Cliquez sur Modifier.

  4. Sous Personnaliser votre instance, développez Connexions.

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

    Modifiez les options de pooling avancées que vous souhaitez mettre à jour.

  6. Cliquez sur Enregistrer.

gcloud

Utilisez la commande gcloud sql instances pour modifier les options de configuration.

  gcloud sql instances patch INSTANCE_NAME \
  --connection-pool-flags=CONFIGURATION_NAME=CONFIGURATION_VALUE

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance Cloud SQL.
  • CONFIGURATION_NAME : nom de l'option de configuration. Pour obtenir la liste de toutes les options de configuration avancées, consultez Options de configuration avancées.
  • CONFIGURATION_VALUE : nouvelle valeur de l'option de configuration sélectionnée.

REST v1

Pour modifier les configurations avancées du pooling de connexions géré, utilisez la commande suivante et définissez ConnectionPoolConfig :

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

  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "settings": {
    "connectionPoolConfig": {
      "flags":
      [
        {
          "name": "CONFIGURATION_NAME",
          "value":"CONFIGURATION_VALUE"
        }
      ]
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Pour modifier les configurations avancées du pooling de connexions géré, utilisez la commande suivante et définissez ConnectionPoolConfig :

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

  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "settings": {
    "connectionPoolConfig": {
      "flags":
      [
        {
          "name": "CONFIGURATION_NAME",
          "value":"CONFIGURATION_VALUE"
        }
      ]
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Pour modifier les configurations avancées du pooling de connexions géré, utilisez la ressource Terraform suivante :

# This example shows modifying the flags of an existing Managed Connection Pooling configuration.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_modify" {
  name                = "mysql-instance-managed-connection-pooling-modify"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      connection_pooling_enabled = true
      flags {
        name  = "max_pool_size" # Modify or add the name and value of an flag
        value = "10"
      }
    }
  }
}

Désactiver le regroupement de connexions géré pour une instance

Vous pouvez désactiver le pooling de connexions géré pour une instance existante à l'aide de la consoleCloud de Confiance , de la gcloud CLI ou de l'API Cloud SQL.

Pour désactiver le regroupement de connexions géré pour une instance, procédez comme suit :

Console

  1. Dans la console Cloud de Confiance , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Recherchez l'instance pour laquelle vous souhaitez désactiver le pooling de connexions géré. Pour ouvrir la page de présentation de l'instance, cliquez sur son nom.

  3. Cliquez sur Modifier.

  4. Sous Personnaliser votre instance, développez Connexions.

  5. Pour désactiver le pooling de connexions géré, décochez la case Activer le pool de connexions géré.

  6. Cliquez sur Enregistrer.

gcloud

Utilisez la commande gcloud sql instances pour désactiver le pool de connexions géré.

  gcloud sql instances patch INSTANCE_NAME \
  --no-enable-connection-pooling

Remplacez les éléments suivants :

  • PROJECT_ID : nom de l'instance Cloud SQL.

REST v1

Pour désactiver le pooling de connexions géré pour une instance, utilisez la commande suivante et définissez connectionPoolingEnabled :

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

  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": false
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Pour désactiver le pooling de connexions géré pour une instance, utilisez la commande suivante et définissez connectionPoolingEnabled :

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

  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": false
    }
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Pour désactiver le pooling de connexions géré pour une instance, utilisez la ressource Terraform suivante :

# This example shows disabling Managed Connection Pooling on an existing instance.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_disable" {
  name                = "mysql-instance-managed-connection-pooling-disable"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      # Set to false to disable Managed Connection Pooling. You can also remove the block entirely.
      connection_pooling_enabled = false
    }
  }
}

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

Vous pouvez afficher l'état du pooling de connexions géré pour une instance à l'aide de la console Cloud de Confiance , de la gcloud CLI ou de l'API Cloud SQL.

Pour afficher l'état du pooling de connexions géré pour une instance Cloud SQL Enterprise Plus, procédez comme suit :

Console

  1. Dans la console Cloud de Confiance , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Recherchez l'instance pour laquelle vous souhaitez afficher l'état du pooling de connexions géré. Pour ouvrir la page de présentation de l'instance, cliquez sur son nom.

    La section Connexions indique si le regroupement de connexions géré est activé ou désactivé.

gcloud

Utilisez la commande gcloud sql instances describe pour afficher l'état du pooling de connexions géré pour une instance :

  gcloud sql instances describe INSTANCE_NAME
  --format="value(settings.connectionPoolConfig.connectionPoolingEnabled)"

Remplacez les éléments suivants :

  • PROJECT_ID : nom de l'instance Cloud SQL.

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

    connectionPoolingEnabled: true

REST v1

Pour afficher l'état du pooling de connexions géré pour votre instance Cloud SQL, utilisez la commande suivante et recherchez connectionPoolingEnabled :

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

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
  ...
  "createTime": "2023-06-14T18:48:34.975Z",
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
  "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID",
  "dnsName": "DNS_NAME"
}

REST v1beta4

Pour afficher l'état du pooling de connexions géré pour votre instance Cloud SQL, utilisez la commande suivante et recherchez connectionPoolingEnabled :

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

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
  ...
  "createTime": "2023-06-14T18:48:34.975Z",
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
  "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID",
  "dnsName": "DNS_NAME"
}

Surveiller le regroupement de connexions géré

Vous pouvez surveiller l'exécution du pooling de connexions géré sur vos instances Cloud SQL à l'aide des métriques de pooling de connexions géré Cloud SQL suivantes :

Nom de la métrique Description
threads Effectue le suivi du nombre de threads dans le pool de connexions en fonction de leur état. Les états inclus dans cette métrique sont les suivants :
  • idle : nombre de threads inactifs dans le pool.
  • active : nombre de threads actifs (non inactifs) dans le pool.
pending_connection Nombre de connexions actuellement en file d'attente dans la file d'attente de travail.
avg_wait_time Temps moyen passé par la requête de connexion en attente d'un serveur.

Pour en savoir plus sur ces métriques, consultez Métriques Cloud SQL. Pour afficher ces métriques à l'aide de la console Cloud de Confiance , consultez Afficher les métriques sur la page de présentation de l'instance Cloud SQL.

Étapes suivantes