Configurar la agrupación de conexiones gestionadas

En esta página se describe cómo habilitar, configurar y monitorizar la agrupación de conexiones gestionada en las instancias de Cloud SQL.

La agrupación de conexiones gestionada te permite escalar tus cargas de trabajo optimizando la utilización de recursos y la latencia de conexión de tus instancias mediante la agrupación. Para obtener información detallada sobre la agrupación de conexiones gestionada y cómo usarla en tus instancias, consulta la descripción general de la agrupación de conexiones gestionada.

Antes de empezar

  • Confirma que tu instancia cumple todos los requisitos para usar la agrupación de conexiones gestionada.
  • Si usas gcloud CLI, confirma que tu versión de gcloud CLI es 515.0.0 o una posterior.

Habilitar la agrupación de conexiones gestionada

Puedes habilitar la agrupación de conexiones gestionada en una instancia en el momento de la creación o editar una instancia para habilitarla.

Habilitar la agrupación de conexiones gestionadas en una instancia nueva

Para crear una instancia con la función de agrupación de conexiones gestionada habilitada, consulta Crear instancias. Solo puedes habilitar la agrupación de conexiones gestionada para una instancia nueva mediante la CLI de gcloud o la API de Cloud SQL.

Habilitar la agrupación de conexiones gestionada en una instancia

Puedes habilitar la agrupación de conexiones gestionada en una instancia que ya tengas mediante laGoogle Cloud consola, la CLI de gcloud o la API de Cloud SQL. Debes habilitar el grupo de conexiones gestionadas antes de modificar las opciones del grupo de conexiones gestionadas.

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la instancia en la que quieras habilitar la agrupación de conexiones gestionada. Para abrir la página Información general de la instancia, haz clic en su nombre.

  3. Haz clic en Editar.

  4. En Personalizar tu instancia, amplía Conexiones.

  5. Para habilitar la agrupación de conexiones gestionadas, marca la casilla Habilitar agrupación de conexiones gestionadas.

  6. Haz clic en Guardar.

gcloud

Usa el comando gcloud sql instances para habilitar la agrupación de conexiones gestionada.

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

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia de Cloud SQL en la que quieres habilitar la agrupación de conexiones gestionada.

REST v1

Para habilitar la agrupación de conexiones gestionadas en una instancia, usa el siguiente comando y define connectionPoolingEnabled:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_ID: el ID de instancia

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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

Para habilitar la agrupación de conexiones gestionadas en una instancia, usa el siguiente comando y define connectionPoolingEnabled:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_ID: el ID de instancia

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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

Para habilitar la agrupación de conexiones gestionada en una instancia, usa el siguiente recurso de Terraform:

# 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
    }
  }
}

Modificar la agrupación de conexiones gestionada de una instancia

Una vez que hayas habilitado la agrupación de conexiones gestionada, podrás personalizarla para que se adapte a las necesidades de tu instancia mediante opciones de configuración avanzadas. Estas opciones de configuración se denominan "flags de grupo de conexiones gestionadas". Para obtener más información sobre las opciones de configuración disponibles, sus valores predeterminados y sus intervalos, consulta Opciones de configuración avanzadas.

Para modificar las opciones de configuración de la agrupación de conexiones gestionadas disponibles de una instancia, siga estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la instancia en la que quieras habilitar la agrupación de conexiones gestionada. Para abrir la página Información general de la instancia, haz clic en su nombre.

  3. Haz clic en Editar.

  4. En Personalizar tu instancia, amplía Conexiones.

  5. En Grupo de conexiones gestionado, despliega Opciones avanzadas de agrupación.

    Modifica las opciones de agrupación disponibles que quieras actualizar.

  6. Haz clic en Guardar.

gcloud

Usa el comando gcloud sql instances para modificar las opciones de configuración.

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

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia de Cloud SQL para la que quieres modificar la agrupación de conexiones gestionada.
  • CONFIGURATION_NAME: el nombre de la opción de configuración que quieras modificar. Para ver una lista de todas las opciones de configuración disponibles, consulta Opciones de configuración avanzada.
  • CONFIGURATION_VALUE: el nuevo valor de la opción de configuración que ha seleccionado.

REST v1

Para modificar las configuraciones avanzadas de la agrupación de conexiones gestionada, usa el siguiente comando y define ConnectionPoolConfig:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_ID: el ID de instancia

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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

Para modificar las configuraciones avanzadas de la agrupación de conexiones gestionada, usa el siguiente comando y define ConnectionPoolConfig:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_ID: el ID de instancia

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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

Para modificar las configuraciones avanzadas de la agrupación de conexiones gestionada, usa el siguiente recurso de Terraform:

# 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"
      }
    }
  }
}

Inhabilitar la agrupación de conexiones gestionadas en una instancia

Puedes inhabilitar la agrupación de conexiones gestionada en una instancia que ya tengas mediante laGoogle Cloud consola, la CLI de gcloud o la API de Cloud SQL.

Para inhabilitar la agrupación de conexiones gestionadas en una instancia, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la instancia en la que quieras inhabilitar la agrupación de conexiones gestionada. Para abrir la página Información general de la instancia, haz clic en su nombre.

  3. Haz clic en Editar.

  4. En Personalizar tu instancia, amplía Conexiones.

  5. Para inhabilitar la agrupación de conexiones gestionadas, desmarca la casilla Habilitar la agrupación de conexiones gestionadas.

  6. Haz clic en Guardar.

gcloud

Usa el comando gcloud sql instances para inhabilitar la agrupación de conexiones gestionadas.

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

Haz los cambios siguientes:

  • PROJECT_ID: el nombre de la instancia de Cloud SQL para la que quieres inhabilitar el agrupamiento de conexiones gestionado.

REST v1

Para inhabilitar la agrupación de conexiones gestionada en una instancia, usa el siguiente comando y define connectionPoolingEnabled:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_ID: el ID de instancia

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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

Para inhabilitar la agrupación de conexiones gestionada en una instancia, usa el siguiente comando y define connectionPoolingEnabled:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_ID: el ID de instancia

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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

Para inhabilitar la agrupación de conexiones gestionada en una instancia, usa el siguiente recurso de Terraform:

# 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
    }
  }
}

Ver el estado de la agrupación de conexiones gestionadas de una instancia

Puedes ver el estado de la conexión agrupada gestionada de una instancia mediante la Google Cloud consola, la CLI de gcloud o la API Cloud SQL.

Para ver el estado de la agrupación de conexiones gestionada de una instancia de la edición Enterprise Plus de Cloud SQL, haz lo siguiente:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la instancia de la que quieras ver el estado de la agrupación de conexiones gestionada. Para abrir la página Información general de la instancia, haz clic en su nombre.

    En la sección Conexiones se indica si la agrupación de conexiones gestionadas está habilitada o inhabilitada.

gcloud

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

Haz los cambios siguientes:

  • PROJECT_ID: el nombre de la instancia de Cloud SQL cuyo estado de la agrupación de conexiones gestionada quieres ver.

    Si la agrupación de conexiones gestionadas está habilitada, se devuelve la siguiente respuesta:

    connectionPoolingEnabled: true

REST v1

Para ver el estado de la agrupación de conexiones gestionada de tu instancia de Cloud SQL, usa el siguiente comando y busca connectionPoolingEnabled:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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

Para ver el estado de la agrupación de conexiones gestionada de tu instancia de Cloud SQL, usa el siguiente comando y busca connectionPoolingEnabled:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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"
}

Monitorizar la agrupación de conexiones gestionada

Puedes monitorizar cómo se ejecuta la agrupación de conexiones gestionada en tus instancias de Cloud SQL mediante las siguientes métricas de agrupación de conexiones gestionada de Cloud SQL:

Nombre de la métrica Descripción
hilos Hace un seguimiento del número de subprocesos del grupo de conexiones por su estado. Los estados incluidos en esta métrica son los siguientes:
  • idle: número de subprocesos inactivos en el grupo.
  • active: número de subprocesos activos (no inactivos) del grupo.
pending_connection Número de conexiones que están activas en la cola de pooling.
avg_wait_time Tiempo medio que ha esperado la solicitud de conexión para un servidor.

Para obtener más información sobre estas métricas, consulta las métricas de Cloud SQL. Para ver estas métricas con la consola Google Cloud , consulta el artículo Ver métricas en la página de información general de la instancia de Cloud SQL.

Siguientes pasos