Ajuste de escala automático del grupo de lectura

El ajuste de escala automático del grupo de lectura agrega o quita automáticamente nodos del grupo de lectura en el grupo de lectura según las necesidades de carga de trabajo de tu aplicación.

Puedes controlar el ajuste automático de escala del grupo de lectura limitando el uso promedio de CPU en el grupo de lectura o limitando la cantidad de conexiones de clientes que tienen acceso al grupo de lectura, con una de las dos métricas objetivo:

  • Uso promedio de CPU: Te permite establecer el uso promedio de CPU con el que deseas que opere el grupo de lectura. El grupo de lectura se ajusta automáticamente según el uso de CPU de la carga de trabajo de tu aplicación.
  • Promedio de conexiones de base de datos: Te permite especificar la cantidad promedio de conexiones de base de datos del cliente que debe atender cada nodo. El grupo de lectura se ajusta automáticamente según la cantidad de conexiones de clientes.

Para aplicar estas métricas objetivo, también debes establecer un recuento mínimo y máximo de nodos del grupo de lectura.

Para habilitar el ajuste de escala automático del grupo de lectura, puedes configurar una o ambas de estas métricas de destino en la instancia. Si ambas métricas están activas, Cloud SQL aplica el recuento máximo de nodos del grupo de lectura indicado por ambas métricas.

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

Nombre de la métrica objetivo Límites Métrica pública relacionada
Uso de CPU promedio Entre 0.1 y 0.9 El uso promedio de CPU (cloudsql.googleapis.com/database/cpu/utilization) en todos los nodos del grupo de lectura.
Conexiones promedio a la base de datos Entre 10 y 100,000. Nota: El valor máximo aceptable se correlaciona con el valor máximo establecido por la marca de base de datos max_connections. Representa un promedio de las conexiones de clientes de la base de datos (cloudsql.googleapis.com/database/network/connections) en todos los nodos del grupo de lectura.

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

Características del ajuste de escala automático del grupo de lectura

Se aplican las siguientes características:

  • Las operaciones de reducción de escala quitan solo un nodo a la vez.
  • Las operaciones de expansión horizontal agregan, en paralelo, tantos nodos como sean necesarios.
  • De forma predeterminada, se aplican las operaciones de reducción y aumento del escalamiento. De manera opcional, puedes bloquear las operaciones de reducción manual de escala (disableScaleIn).
  • De forma predeterminada, se aplica un período de inactividad de 600 segundos entre las operaciones sucesivas de ajuste de escala automático del grupo de lectura. Se requiere un período de inactividad mínimo de 60 segundos, ya sea que se aumente o disminuya la escala.
  • Cuando estableces una métrica objetivo, también debes definir la cantidad mínima (minNodeCount) y máxima (maxNodeCount) de nodos del grupo de lectura que deseas usar. Si habilitas el ajuste de escala automático en un grupo de lectura existente, el tamaño actual del grupo de lectura debe estar dentro del rango que establezcas.

Limitaciones

Se aplica la siguiente limitación:

  • El ajuste de escala automático del grupo de lectura admite un máximo de 10 operaciones de ajuste de escala automático cada 24 horas.
  • Si quieres crear un grupo de lectura nuevo o escalar uno existente, debes esperar a que se completen las operaciones de creación y escalamiento anteriores. Esto se aplica a las operaciones asociadas con el grupo de lectura, así como a otros grupos de lectura asociados con 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 comenzar

Crea un grupo de lectura con el ajuste de escala automático habilitado

Si especificas un valor objetivo de 0.50 para AVERAGE_CPU_UTILIZATION, se agregarán o quitarán nodos del grupo de lectura para mantener el uso promedio de CPU en todo el grupo de lectura en 0.50 o menos.

gcloud

Para crear un grupo de lectura con el ajuste de escala automático 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
  

Reemplaza lo siguiente:

  • READ_POOL_NAME: Es el nombre que deseas asignar al grupo de lectura.
  • MACHINE_TIER: Es el nivel de máquina que deseas usar, como db-perf-optimized-N-2.
  • NODE_COUNT: Es la cantidad de nodos del grupo de lectura con la que deseas comenzar.
  • DATABASE_VERSION: Es la versión de la base de datos que deseas usar, como POSTGRES_16.
  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal que deseas usar.
  • REGION: Es la región que deseas usar, como us-east1.
  • NETWORK_NAME: Es el nombre de la red que deseas usar.
  • MAX_NODE_COUNT: Es la cantidad máxima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 5.
  • MIN_NODE_COUNT: Es la cantidad mínima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 1.
  • TARGET_METRIC_1: Es la métrica objetivo que deseas usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: Es el valor que deseas asignar a la métrica objetivo que indicaste anteriormente. Por ejemplo, para la métrica objetivo AVERAGE_CPU_UTILIZATION, puedes asignar el valor 0.50.

Terraform

Para crear un grupo de lectura con el ajuste de escala automático 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
      }
    }
  }
}

Aplique los cambios

Para aplicar tu configuración de Terraform en un proyecto de Google Cloud , completa los pasos de las siguientes secciones.

Prepara Cloud Shell

  1. Inicia Cloud Shell
  2. Establece el proyecto Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

Prepara 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 dentro de ese directorio. El nombre del archivo debe tener la extensión .tf, por ejemplo, main.tf. En este instructivo, el archivo se denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.

    Copia el código de muestra en el main.tf recién creado.

    De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.

  3. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo debes hacerlo una vez por directorio.
    terraform init

    De manera opcional, incluye la opción -upgrade para usar la última versión del proveedor de Google:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
    terraform plan

    Corrige la configuración según sea necesario.

  2. Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe yes cuando se te solicite:
    terraform apply

    Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.

  3. Abre tu proyecto Google Cloud para ver los resultados. En la consola de Google Cloud , navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.

Borra los cambios

Para borrar tus cambios, haz lo siguiente:

  1. Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento deletion_protection en false.
    deletion_protection =  "false"
  2. Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa yes cuando se te solicite:
    terraform apply
  1. Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa yes cuando se te solicite:

    terraform destroy

REST v1

Para crear un grupo de lectura con el ajuste de escala automático habilitado, usa una solicitud POST con el método instances:insert.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • READ_POOL_NAME: Es el nombre que deseas asignar al grupo de lectura.
  • REGION: Es la región en la que deseas que resida la instancia, como us-central1.
  • PRIMARY_INSTANCE_ID: Es el ID de la instancia principal que deseas usar.
  • PROJECT_ID: Es el ID del proyecto en el que deseas que se ubique el grupo de lectura, como my-project-name.
  • DATABASE_VERSION: Es la versión de la base de datos que deseas usar, como MYSQL_8_0_37.
  • MACHINE_TIER: Es el nivel de máquina que deseas usar, como db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: Es el nombre de la red que deseas usar.
  • MAX_NODE_COUNT: Es la cantidad máxima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: Es la cantidad mínima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 2.
  • TARGET_METRIC_1: Es la métrica objetivo que deseas usar, como AVERAGE_CPU_UTILIZATION o AVERAGE_DB_CONNECTIONS. Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: Es el valor que deseas asignar a la métrica objetivo que indicaste anteriormente. Por ejemplo, para la métrica objetivo AVERAGE_CPU_UTILIZATION, puedes asignar el valor 0.50.
  • NODE_COUNT: Es la cantidad de nodos del grupo de lectura con la que deseas comenzar, 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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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 ajuste de escala automático habilitado, usa una solicitud POST con el método instances:insert.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • READ_POOL_NAME: Es el nombre que deseas asignar al grupo de lectura.
  • REGION: Es la región en la que deseas que resida la instancia, como us-central1.
  • PRIMARY_INSTANCE_ID: Es el ID de la instancia principal que deseas usar.
  • PROJECT_ID: Es el ID del proyecto en el que deseas que se ubique el grupo de lectura, como my-project-name.
  • DATABASE_VERSION: Es la versión de la base de datos que deseas usar, como MYSQL_8_0_37.
  • MACHINE_TIER: Es el nivel de máquina que deseas usar, como db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: Es el nombre de la red que deseas usar.
  • MAX_NODE_COUNT: Es la cantidad máxima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: Es la cantidad mínima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 2.
  • TARGET_METRIC_1: Es la métrica objetivo que deseas usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: Es el valor que deseas asignar a la métrica objetivo que indicaste anteriormente. En este ejemplo, para la métrica objetivo AVERAGE_CPU_UTILIZATION, asigna el valor 0.50.
  • NODE_COUNT: Es la cantidad de nodos del grupo de lectura con la que deseas comenzar, 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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

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

Habilita el ajuste de escala automático del grupo de lectura en un grupo de lectura existente

Si ya creaste un grupo de lectura, puedes habilitar el ajuste de escala automático indicando la configuración que deseas usar.

Por ejemplo, si especificas un valor objetivo de 50 para AVERAGE_DB_CONNECTIONS, se agregarán o quitarán nodos del grupo de lectura para mantener las conexiones de base de datos promedio en todo el grupo en 50 o menos.

gcloud

Para habilitar el grupo de lectura con ajuste de escala automático en un grupo de lectura existente, 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
  

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia asociada al grupo de lectura que deseas modificar.
  • MAX_NODE_COUNT: Es la cantidad máxima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: Es la cantidad mínima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 2.
  • COOLDOWN_SECONDS_SCALE_OUT: Opcional: Es el tiempo de espera o de inactividad en segundos entre la creación o eliminación de nodos del grupo de lectura, como 180. Se requiere un período de inactividad mínimo de 60 segundos. El valor predeterminado es 600 segundos.
  • COOLDOWN_SECONDS_SCALE_IN: Opcional: Es el tiempo de espera o de inactividad en segundos entre la creación o eliminación de nodos del grupo de lectura, como 180. Se requiere un período de inactividad mínimo de 60 segundos. El valor predeterminado es 600 segundos.
  • TARGET_METRIC_1: Es la métrica objetivo que deseas usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: Es el valor que deseas asignar a la métrica objetivo que indicaste anteriormente. En este ejemplo, para la métrica objetivo AVERAGE_DB_CONNECTIONS, asigna el valor 50.

REST v1

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

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID o el número del proyecto del proyecto Google Cloud que contiene la instancia.
  • INSTANCE_ID: Es el ID de la instancia asociada con el grupo de lectura.
  • MAX_NODE_COUNT: Es la cantidad máxima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: Es la cantidad mínima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 2.
  • COOLDOWN_SECONDS: Opcional: Es el tiempo de espera o de inactividad en segundos entre la creación o eliminación de nodos del grupo de lectura, como 180.
  • SCALE_IN_DISABLED: Opcional: Te permite inhabilitar el comportamiento de reducción de la escala del grupo de lectura. Para inhabilitar la reducción de la capacidad del grupo de lectura, establece el valor en true.
  • TARGET_METRIC_1: Es la métrica objetivo que deseas usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: Es el valor que deseas asignar a la métrica objetivo que indicaste anteriormente. En este ejemplo, para la métrica objetivo AVERAGE_DB_CONNECTIONS, asigna el valor 50.

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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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 existente con ajuste de escala automático, usa el método PATCH.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID o el número del proyecto del proyecto Google Cloud que contiene la instancia.
  • INSTANCE_ID: Es el ID de la instancia asociada con el grupo de lectura.
  • MAX_NODE_COUNT: Es la cantidad máxima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 10.
  • MIN_NODE_COUNT: Es la cantidad mínima de nodos del grupo de lectura que deseas que use el grupo de lectura, como 2.
  • COOLDOWN_SECONDS: Opcional: Es el tiempo de espera o de inactividad en segundos entre la creación o eliminación de nodos del grupo de lectura, como 180.
  • SCALE_IN_DISABLED: Opcional: Te permite inhabilitar el comportamiento de reducción de la escala del grupo de lectura. Para inhabilitar la reducción de la capacidad del grupo de lectura, establece el valor en true.
  • TARGET_METRIC_1: Es la métrica objetivo que deseas usar, como las siguientes:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Debes definir al menos una de las dos métricas disponibles.
  • VALUE_1: Es el valor que deseas asignar a la métrica objetivo que indicaste anteriormente. En este ejemplo, para la métrica objetivo AVERAGE_DB_CONNECTIONS, asigna el valor 50.

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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

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

Inhabilita el ajuste de escala automático del grupo de lectura en un grupo de lectura

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

gcloud

Para inhabilitar el ajuste de escala automático del grupo de lectura, ejecuta el siguiente comando.

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

Reemplaza lo siguiente:

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

REST v1

Para inhabilitar el ajuste de escala automático del grupo de lectura, usa el método PATCH.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID o el número del proyecto del proyecto Google Cloud que contiene la instancia.
  • INSTANCE_ID: Es el ID de la instancia asociada con el 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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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 ajuste de escala automático del grupo de lectura, usa el método PATCH.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID o el número del proyecto del proyecto Google Cloud que contiene la instancia.
  • INSTANCE_ID: Es el ID de la instancia asociada con el 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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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 las estadísticas del sistema para ver las métricas pertinentes de tu grupo de lectura.

Para AVERAGE_CPU_UTILIZATION, consulta el gráfico de la métrica clave Uso de CPU.

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

Supervisa las operaciones de ajuste de escala automático del grupo de lectura

Cuando se cumplen las condiciones para activar un evento de ajuste de escala automático del grupo de lectura, se ejecuta una operación UPDATE en la instancia. Puedes ver esta operación desde la consola de Google Cloud .

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

Mientras se ejecuta la operación de ajuste de escala 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 el cambio en el recuento de nodos:

  gcloud sql instances describe READ_POOL_NAME
  | grep nodeCount
  

Reemplaza lo siguiente:

  • READ_POOL_NAME: Es el nombre del grupo de lectura para el que deseas obtener información.

Registros de auditoría de eventos del sistema

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

¿Qué sigue?