Configurer le pool de connexions géré

Cette page explique comment configurer le pooling de connexions géré pour vos instances Cloud SQL.

Avant de commencer

  • Assurez-vous que votre instance répond à toutes les exigences pour utiliser le pooling de connexions géré.
  • Si vous utilisez gcloud CLI, exécutez la commande gcloud beta et vérifiez que votre version de gcloud CLI est 515.0.0 ou ultérieure.

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

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

Pour créer une instance avec le pooling de connexions géré activé, consultez Créer des instances. Vous pouvez activer le pooling de connexions géré pour une instance à l'aide de gcloud CLI ou de l'API Cloud SQL.

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

Vous pouvez activer le pool de connexions géré pour une instance existante à l'aide de la consoleGoogle Cloud , de gcloud CLI ou de l'API Cloud SQL. Vous devez activer le regroupement de connexions géré avant de modifier les options du regroupement de connexions géré.

Console

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

    Accéder à la page Instances Cloud SQL

  2. Recherchez l'instance pour laquelle vous souhaitez activer le pool de connexions géré. Pour ouvrir la page "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 pool de connexions géré, cochez la case Activer le pool de connexions géré.

  6. Cliquez sur Enregistrer.

gcloud

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

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

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance Cloud SQL pour laquelle vous souhaitez activer le pool de connexions géré.

REST v1

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

Avant d'utiliser les données de requête ci-dessous, 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

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

Avant d'utiliser les données de requête ci-dessous, 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

Pour activer le pooling de connexions géré pour une instance existante, 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

Une fois le regroupement de connexions géré activé, vous pouvez le personnaliser à l'aide des options de configuration disponibles. Ces options de configuration sont appelées indicateurs de pool de pool de connexions géré. Les configurations ajoutées au regroupement de connexions géré sont appliquées à tous les poolers utilisés par l'instance. Pour en savoir plus sur les options de configuration disponibles, leurs valeurs par défaut et leurs plages, consultez Options de configuration disponibles.

Pour modifier les options de configuration du pool de connexions géré disponibles pour une instance, procédez comme suit :

Console

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

    Accéder à la page Instances Cloud SQL

  2. Recherchez l'instance pour laquelle vous souhaitez activer le pool de connexions géré. Pour ouvrir la page "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 avancées de regroupement.

    Modifiez les options de mise en commun disponibles que vous souhaitez mettre à jour.

  6. Cliquez sur Enregistrer.

gcloud

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

  gcloud beta 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 pour laquelle vous souhaitez modifier le pooling de connexions géré.
  • CONFIGURATION_NAME : nom de l'option de configuration que vous souhaitez modifier. Pour obtenir la liste de toutes les options de configuration disponibles, consultez Options de configuration disponibles.
  • CONFIGURATION_VALUE : nouvelle valeur de l'option de configuration que vous avez sélectionnée.

REST v1

Pour modifier les configurations disponibles du pooling de connexions géré, 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
  • 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 disponibles du pooling de connexions géré, 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
  • 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 disponibles 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 consoleGoogle Cloud , de gcloud CLI ou de l'API Cloud SQL.

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

Console

  1. Dans la console Google Cloud , 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 pool de connexions géré. Pour ouvrir la page "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 regroupement de connexions géré, décochez la case Activer le regroupement de connexions géré.

  6. Cliquez sur Enregistrer.

gcloud

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

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

Remplacez les éléments suivants :

  • PROJECT_ID : nom de l'instance Cloud SQL pour laquelle vous souhaitez désactiver le pool de connexions géré.

REST v1

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

Avant d'utiliser les données de requête ci-dessous, 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 pool de connexions géré pour une instance, utilisez la commande suivante et définissez connectionPoolingEnabled :

Avant d'utiliser les données de requête ci-dessous, 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 Google Cloud , de 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 Google Cloud , 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 pool de connexions géré. Pour ouvrir la page "Présentation" de l'instance, cliquez sur son nom.

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

gcloud

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

Remplacez les éléments suivants :

  • PROJECT_ID : nom de l'instance Cloud SQL pour laquelle vous souhaitez afficher l'état du pool de connexions géré.

    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 ci-dessous, 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 ci-dessous, 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 pool de connexions géré sur vos instances Cloud SQL à l'aide des métriques suivantes :

Nom de la métrique Description
fils de discussion Suit le 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 dans la file d'attente du regroupement.
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 Google Cloud , consultez Afficher les métriques sur la page de présentation de l'instance Cloud SQL.

Étapes suivantes