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.
  • Confirma que tu instancia usa la nueva arquitectura de red de Cloud SQL. Si tu instancia sigue usando la arquitectura de red antigua, cámbiala a la nueva.

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 beta sql instances para habilitar la agrupación de conexiones gestionada.

  gcloud beta 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:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_enable" {
  name                = "postgres-instance-managed-connection-pooling-enable"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  deletion_protection = false

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

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". Las configuraciones añadidas a la agrupación de conexiones gestionada se aplican a todos los agrupadores de conexiones que utiliza la instancia. 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 beta sql instances para modificar las opciones de configuración.

  gcloud beta 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:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_modify" {
  name                = "postgres-instance-managed-connection-pooling-modify"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  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 the value of an existing 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 beta sql instances para inhabilitar la agrupación de conexiones gestionadas.

  gcloud beta 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:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_disable" {
  name                = "postgres-instance-managed-connection-pooling-disable"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  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 beta 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": "POSTGRES_13",
  "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": "POSTGRES_13",
  "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
num_pools El número total de grupos de conexiones por base de datos.
client_connection Registra el número de conexiones según el estado de la conexión del cliente. Los estados incluidos en esta métrica son los siguientes:
  • active: el número de conexiones activas por base de datos, incluidos los clientes inactivos que no tienen ninguna solicitud de consulta pendiente.
  • waiting: número de clientes que esperan una conexión de servidor por base de datos.
server_connections Hace un seguimiento del número de conexiones del servidor según el estado de la conexión del servidor. Los estados incluidos en esta métrica son:
  • active: número de conexiones activas por base de datos.
  • waiting: número de conexiones de servidor inactivas por base de datos.
client_connections_avg_wait_time Tiempo medio que han pasado todos los clientes en estado de espera de 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