Leer sobre el autoescalado de grupos

El autoescalado de grupos de lectura añade o elimina automáticamente nodos de grupos de lectura en el grupo de lectura en función de las necesidades de carga de trabajo de tu aplicación.

Puedes controlar el autoescalado del grupo de lectura limitando el uso medio de CPU en el grupo de lectura o limitando el número de conexiones de cliente que pueden acceder al grupo de lectura. Para ello, puedes usar una de estas dos métricas de destino:

  • Uso medio de CPU: te permite definir el uso medio de CPU en el que quieres que funcione el grupo de lectura. El grupo de lectura se amplía o se reduce automáticamente en función del uso de CPU de la carga de trabajo de tu aplicación.
  • Promedio de conexiones de base de datos: te permite especificar el número medio de conexiones de base de datos de clientes que debe atender cada nodo. El grupo de lectura se amplía o se reduce automáticamente en función del número de conexiones de clientes.

Para aplicar estas métricas objetivo, también debe definir un número mínimo y máximo de nodos del grupo de lectura.

Para habilitar el autoescalado del grupo de lectura, puedes configurar una o ambas métricas de destino en la instancia. Si ambas métricas están activas, Cloud SQL aplica el número máximo de nodos del pool de lectura indicado por ambas métricas.

En la siguiente tabla se indican los límites de cada métrica objetivo:

Nombre de la métrica objetivo Límites Métrica pública relacionada
Uso medio de CPU Entre 0,1 y 0,9. La utilización media de la CPU (cloudsql.googleapis.com/database/cpu/utilization) en los nodos del grupo de lectura del grupo de lectura.
Conexiones de bases de datos medias Entre 10 y 100.000. Nota: El valor máximo aceptable se corresponde con el valor máximo definido por la marca de base de datos max_connections. Representa el promedio de conexiones de clientes de bases de datos (cloudsql.googleapis.com/database/network/connections) en los nodos del grupo de lectura.

Cuando se cumplen las condiciones para cambiar el tamaño del grupo de lectura, las operaciones de escalado automático del grupo de lectura se pueden ver en la Google Cloud consola. Todas las demás operaciones en el grupo de lectura y en la instancia principal se bloquean hasta que se complete el ajuste automático de escala del grupo de lectura.

Leer las características del autoescalado de grupos

Se aplican las siguientes características:

  • Las operaciones de reducción solo eliminan un nodo a la vez.
  • Las operaciones de escalado horizontal añaden en paralelo tantos nodos como sean necesarios.
  • De forma predeterminada, se aplican las operaciones de reducción y ampliación. Puedes bloquear las operaciones de reducción manualmente (disableScaleIn).
  • De forma predeterminada, se aplica un periodo de enfriamiento de 600 segundos entre operaciones de autoescalado de grupos de lectura sucesivas. Se requiere un periodo de enfriamiento mínimo de 60 segundos, tanto si se aumenta como si se reduce la escala.
  • Al definir una métrica objetivo, también debe definir el número mínimo (minNodeCount) y máximo (maxNodeCount) de nodos del grupo de lectura que quiere usar. Si habilitas el autoescalado en un grupo de lectura, el tamaño actual del grupo de lectura debe estar dentro del intervalo que hayas definido.

Limitaciones

Se aplican las siguientes limitaciones:

  • El autoescalado de grupos de lectura admite un máximo de 10 operaciones de autoescalado cada 24 horas.
  • Si quieres crear un nuevo grupo de lectura o escalar uno que ya tengas, debes esperar a que se completen las operaciones de creación y escalado anteriores. Esto se aplica a las operaciones asociadas al grupo de lectura, así como a otros grupos de lectura asociados a la misma instancia principal. Si intentas ejecutar operaciones simultáneas, es posible que recibas el siguiente mensaje de error:
    Operation failed because another operation was already in progress.
    

Antes de empezar

Crear un grupo de lectura con el autoescalado habilitado

Si especificas un valor objetivo de 0,50 para AVERAGE_CPU_UTILIZATION, se añadirán o se quitarán nodos del pool de lectura para mantener la utilización media de la CPU en el pool de lectura en 0,50 o menos.

gcloud

Para crear un grupo de lectura con el autoescalado habilitado, ejecuta el siguiente comando:

  gcloud sql instances create READ_POOL_NAME \
  --tier=MACHINE_TIER --edition=ENTERPRISE_PLUS \
  --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT \
  --database-version=DATABASE_VERSION \
  --master-instance-name=PRIMARY_INSTANCE_NAME \
  --region=REGION --network=NETWORK_NAME \
  --no-assign-ip \
  --auto-scale-enabled \
  --auto-scale-max-node-count=MAX_NODE_COUNT \
  --auto-scale-min-node-count=MIN_NODE_COUNT \
  --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
  

Haz los cambios siguientes:

  • READ_POOL_NAME: el nombre que quieras asignar al grupo de lectura.
  • MACHINE_TIER: el nivel de máquina que quieras usar, como db-perf-optimized-N-2.
  • NODE_COUNT: el número de nodos del grupo de lectura con el que quieres empezar.
  • DATABASE_VERSION: la versión de la base de datos que quieras usar, como POSTGRES_16.
  • PRIMARY_INSTANCE_NAME: el nombre de la instancia principal que quieras usar.
  • REGION: la región que quieras usar, como us-east1.
  • NETWORK_NAME: el nombre de la red que quieras usar.
  • MAX_NODE_COUNT: el número máximo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 5.
  • MIN_NODE_COUNT: el número mínimo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 1.
  • TARGET_METRIC_1: la métrica objetivo que quieras usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: el valor que quiere asignar a la métrica de destino que ha indicado anteriormente. Por ejemplo, en la métrica objetivo AVERAGE_CPU_UTILIZATION, puede asignar el valor 0.50.

Terraform

Para crear un grupo de lectura con el autoescalado habilitado, usa un recurso de Terraform.

En el siguiente ejemplo se incluyen recursos para la instancia principal y el grupo de lectura.


resource "google_sql_database_instance" "primary" {
  name             = "mysql-primary"
  database_version = "MYSQL_8_4"
  region           = "europe-west4"

  instance_type = "CLOUD_SQL_INSTANCE"

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"

    backup_configuration {
      enabled            = true
      binary_log_enabled = true
    }

    ip_configuration {
      ipv4_enabled = true
    }
  }
}

resource "google_sql_database_instance" "replica" {
  name             = "mysql-replica"
  database_version = "MYSQL_8_4"
  region           = "europe-west4"

  master_instance_name = google_sql_database_instance.primary.name
  instance_type        = "READ_POOL_INSTANCE"
  node_count           = 2

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"

    ip_configuration {
      ipv4_enabled = true
    }
    read_pool_auto_scale_config {
      enabled                    = true
      disable_scale_in           = false
      max_node_count             = 20
      min_node_count             = 2
      scale_in_cooldown_seconds  = 600
      scale_out_cooldown_seconds = 600
      target_metrics {
        metric       = "AVERAGE_CPU_UTILIZATION"
        target_value = 0.5
      }
    }
  }
}

Aplica los cambios

Para aplicar la configuración de Terraform en un Google Cloud proyecto, sigue los pasos que se indican en las siguientes secciones.

Preparar Cloud Shell

  1. Abre Cloud Shell.
  2. Define el Google Cloud proyecto predeterminado en el que quieras aplicar tus configuraciones de Terraform.

    Solo tienes que ejecutar este comando una vez por proyecto y puedes hacerlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión .tf. Por ejemplo, main.tf. En este tutorial, nos referiremos al archivo como main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.

    Copia el código de ejemplo en el archivo main.tf que acabas de crear.

    También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

  3. Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
    terraform init

    Si quieres usar la versión más reciente del proveedor de Google, incluye la opción -upgrade:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
    terraform plan

    Haz las correcciones necesarias en la configuración.

  2. Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply

    Espera hasta que Terraform muestre el mensaje "Apply complete!".

  3. Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para comprobar que Terraform los ha creado o actualizado.

Eliminar los cambios

Para eliminar los cambios, sigue estos pasos:

  1. Para inhabilitar la protección contra eliminación, en el archivo de configuración de Terraform, asigna el valor false al argumento deletion_protection.
    deletion_protection =  "false"
  2. Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply
  1. Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce yes en la petición:

    terraform destroy

REST v1

Para crear un grupo de lectura con el autoescalado habilitado, usa una solicitud POST con el método instances:insert.

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

  • READ_POOL_NAME: el nombre que quieras asignar al grupo de lectura.
  • REGION: la región en la que quieres que se encuentre la instancia, como us-central1.
  • PRIMARY_INSTANCE_ID: el ID de la instancia principal que quieras usar.
  • PROJECT_ID: el ID del proyecto en el que quieres que se encuentre el grupo de lectura, como my-project-name.
  • DATABASE_VERSION: la versión de la base de datos que quieras usar, como MYSQL_8_0_37.
  • MACHINE_TIER: el nivel de máquina que quieras usar, como db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: el nombre de la red que quieras usar.
  • MAX_NODE_COUNT: el número máximo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: el número mínimo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 2.
  • TARGET_METRIC_1: la métrica objetivo que quieras usar, como AVERAGE_CPU_UTILIZATION o AVERAGE_DB_CONNECTIONS. Debe definir al menos una de las dos métricas disponibles.
  • VALUE_1: el valor que quiere asignar a la métrica de destino que ha indicado anteriormente. Por ejemplo, en la métrica objetivo AVERAGE_CPU_UTILIZATION puede asignar el valor 0.50.
  • NODE_COUNT: el número de nodos del grupo de lectura con el que quieres empezar, como 3.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Cuerpo JSON de la solicitud:

{
  "name":"READ_POOL_NAME",
  "region":"REGION",
  "masterInstanceName":"PRIMARY_INSTANCE_ID",
  "project":"PROJECT_ID",
  "databaseVersion":"DATABASE_VERSION",
  "settings":{
    "tier":"MACHINE_TIER",
    "edition":"ENTERPRISE_PLUS",
    "ipConfiguration":{
      "privateNetwork":"FULL_NETWORK_NAME",
      "ipv4Enabled": false
    },
    "readPoolAutoScaleConfig":{
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "targetMetrics": [
        {
          "metric":"TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  },
  "instanceType":"READ_POOL_INSTANCE",
  "nodeCount": NODE_COUNT
}

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/PRIMARY_INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "PRIMARY_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Para crear un grupo de lectura con el autoescalado habilitado, usa una solicitud POST con el método instances:insert.

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

  • READ_POOL_NAME: el nombre que quieras asignar al grupo de lectura.
  • REGION: la región en la que quieres que se encuentre la instancia, como us-central1.
  • PRIMARY_INSTANCE_ID: el ID de la instancia principal que quieras usar.
  • PROJECT_ID: el ID del proyecto en el que quieres que se encuentre el grupo de lectura, como my-project-name.
  • DATABASE_VERSION: la versión de la base de datos que quieras usar, como MYSQL_8_0_37.
  • MACHINE_TIER: el nivel de máquina que quieras usar, como db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: el nombre de la red que quieras usar.
  • MAX_NODE_COUNT: el número máximo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: el número mínimo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 2.
  • TARGET_METRIC_1: la métrica objetivo que quieras usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: el valor que quiere asignar a la métrica de destino que ha indicado anteriormente. En este ejemplo, asigna el valor 0.50 a la métrica de destino AVERAGE_CPU_UTILIZATION.
  • NODE_COUNT: el número de nodos del grupo de lectura con el que quieres empezar, como 3.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "name":"READ_POOL_NAME",
  "region":"REGION",
  "masterInstanceName":"PRIMARY_INSTANCE_ID",
  "project":"PROJECT_ID",
  "databaseVersion":"DATABASE_VERSION",
  "settings":{
    "tier":"MACHINE_TIER",
    "edition":"ENTERPRISE_PLUS",
    "ipConfiguration":{
      "privateNetwork":"FULL_NETWORK_NAME",
      "ipv4Enabled": false
    },
    "readPoolAutoScaleConfig":{
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "targetMetrics": [
        {
          "metric":"TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  },
  "instanceType":"READ_POOL_INSTANCE",
  "nodeCount": NODE_COUNT
}

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/v1beta4/projects/PROJECT_ID/instances/PRIMARTY_INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "PRIMARTY_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Habilitar el autoescalado de grupos de lectura en un grupo de lectura

Si ya has creado un grupo de lectura, puedes habilitar el autoescalado indicando la configuración que quieras usar.

Por ejemplo, si especifica un valor objetivo de 50 para AVERAGE_DB_CONNECTIONS, se añadirán o quitarán nodos del grupo de lectura para mantener el promedio de conexiones de base de datos en el grupo en 50 o menos.

gcloud

Para habilitar el grupo de lectura con autoescalado en un grupo de lectura ya creado, ejecuta el siguiente comando.

  gcloud sql instances patch INSTANCE
  --auto-scale-enabled
  --auto-scale-max-node-count=MAX_NODE_COUNT
  --auto-scale-min-node-count=MIN_NODE_COUNT
  --auto-scale-out-cooldown-seconds=COOLDOWN_SECONDS_SCALE_OUT
  --auto-scale-in-cooldown-seconds=COOLDOWN_SECONDS_SCALE_IN
  --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
  

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia asociada al grupo de lectura que quieras modificar.
  • MAX_NODE_COUNT: el número máximo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: el número mínimo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 2.
  • COOLDOWN_SECONDS_SCALE_OUT: Opcional: tiempo de inactividad o de espera en segundos entre la creación o la eliminación de nodos del grupo de lectura, como 180. Se requiere un periodo de enfriamiento mínimo de 60 segundos. El valor predeterminado es 600 segundos.
  • COOLDOWN_SECONDS_SCALE_IN: Opcional: tiempo de inactividad o de espera en segundos entre la creación o la eliminación de nodos del grupo de lectura, como 180. Se requiere un periodo de enfriamiento mínimo de 60 segundos. El valor predeterminado es 600 segundos.
  • TARGET_METRIC_1: la métrica objetivo que quieras usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: el valor que quiere asignar a la métrica de destino que ha indicado anteriormente. En este ejemplo, asigna el valor 50 a la métrica de destino AVERAGE_DB_CONNECTIONS.

REST v1

Para habilitar un grupo de lectura con el ajuste automático de escala, usa el método PATCH.

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

  • PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
  • INSTANCE_ID: el ID de la instancia asociada al grupo de lectura.
  • MAX_NODE_COUNT: el número máximo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: el número mínimo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 2.
  • COOLDOWN_SECONDS: Opcional: tiempo de inactividad o de espera en segundos entre la creación o la eliminación de nodos del grupo de lectura, como 180.
  • SCALE_IN_DISABLED: opcional, te permite inhabilitar el comportamiento de escalado horizontal del grupo de lectura. Para inhabilitar la reducción de la escala del grupo de lectura, asigna el valor true.
  • TARGET_METRIC_1: la métrica objetivo que quieras usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: el valor que quiere asignar a la métrica de destino que ha indicado anteriormente. En este ejemplo, asigna el valor 50 a la métrica de destino AVERAGE_DB_CONNECTIONS.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "settings": {
    "readPoolAutoScaleConfig": {
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "scaleOutCooldownSeconds": COOLDOWN_SECONDS,
      "disableScaleIn": SCALE_IN_DISABLED,
      "targetMetrics": [
        {
          "metric": "TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  }
}

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": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "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 un grupo de lectura con el ajuste automático de escala, usa el método PATCH.

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

  • PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
  • INSTANCE_ID: el ID de la instancia asociada al grupo de lectura.
  • MAX_NODE_COUNT: el número máximo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: el número mínimo de nodos del grupo de lectura que quieres que use el grupo de lectura, como 2.
  • COOLDOWN_SECONDS: Opcional: tiempo de inactividad o de espera en segundos entre la creación o la eliminación de nodos del grupo de lectura, como 180.
  • SCALE_IN_DISABLED: opcional, te permite inhabilitar el comportamiento de escalado horizontal del grupo de lectura. Para inhabilitar la reducción de la escala del grupo de lectura, asigna el valor true.
  • TARGET_METRIC_1: la métrica objetivo que quieras usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: el valor que quiere asignar a la métrica de destino que ha indicado anteriormente. En este ejemplo, asigna el valor 50 a la métrica de destino AVERAGE_DB_CONNECTIONS.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "settings": {
    "readPoolAutoScaleConfig": {
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "scaleOutCooldownSeconds": COOLDOWN_SECONDS,
      "disableScaleIn": SCALE_IN_DISABLED,
      "targetMetrics": [
        {
          "metric": "TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  }
}

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/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Inhabilitar el autoescalado de un grupo de lectura

Sigue estos pasos para inhabilitar el escalado automático del grupo de lectura.

gcloud

Para inhabilitar el autoescalado del grupo de lectura, ejecuta el siguiente comando.

  gcloud sql instances patch INSTANCE_NAME
  --no-auto-scale-enabled
  

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia asociada al grupo de lectura que quieras modificar.

REST v1

Para inhabilitar el autoescalado del grupo de lectura, usa el método PATCH.

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

  • PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
  • INSTANCE_ID: el ID de la instancia asociada al grupo de lectura.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "settings":{
    "readPoolAutoScaleConfig":{
      "enabled": 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": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "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 el autoescalado del grupo de lectura, usa el método PATCH.

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

  • PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
  • INSTANCE_ID: el ID de la instancia asociada al grupo de lectura.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "settings":{
    "readPoolAutoScaleConfig":{
      "enabled": 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/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Ver métricas

Usa estadísticas del sistema para ver métricas relevantes de tu grupo de lectura.

En el caso de AVERAGE_CPU_UTILIZATION, consulta el gráfico de métricas clave Uso de CPU.

En el caso de AVERAGE_DB_CONNECTIONS, consulta el gráfico de métricas clave Conexiones totales.

Monitorizar las operaciones de autoescalado del grupo de lectura

Cuando se cumplen las condiciones para activar un evento de autoescalado de un pool de lectura, se ejecuta una operación UPDATE en la instancia. Puedes ver esta operación en la consola de Google Cloud .

Las operaciones de autoescalado de grupos de lectura pueden tardar 10 minutos o más en aplicarse a la instancia. Las conexiones que ya tengas no se transferirán a los nodos del nuevo grupo de lectura, por lo que solo las nuevas conexiones se verán afectadas por el ajuste de escala automático del grupo de lectura.

Mientras se ejecuta la operación de escalado automático en el grupo de lectura, debes esperar a que finalice antes de ejecutar otras actualizaciones en el grupo de lectura o en la instancia principal. Si intentas ejecutar solicitudes simultáneas, es posible que recibas el siguiente mensaje de error:

  Operation failed because another operation was already in progress.
  

Puedes inspeccionar tu instancia de grupo de lectura y ver cómo cambia el número de nodos:

  gcloud sql instances describe READ_POOL_NAME
  | grep nodeCount
  

Haz los cambios siguientes:

  • READ_POOL_NAME: el nombre del grupo de lectura del que quieres obtener información.

Registros de auditoría de los eventos del sistema

También puedes ver el mensaje del registro de auditoría del evento del sistema asociado al método cloudsql.instances.readPoolAutoScale, que contiene el recuento de nodos antiguo y el nuevo.

Siguientes pasos