Escala una instancia

Puedes escalar una instancia de AlloyDB para ajustar la capacidad y el rendimiento de tu clúster y satisfacer las demandas cambiantes de la carga de trabajo. El escalamiento ayuda a administrar los costos y facilita el manejo de los picos de tráfico.

Puedes escalar las instancias de AlloyDB de varias maneras, como se resume a continuación.

Tipo de ajuste Método Automatización Instancias principales Instancias de grupo de lectura
Vertical Cambio de tipo de máquina Manual Admitido Admitido
Horizontal Cambia el recuento de nodos Manual y automático No compatible Admitido

Antes de comenzar

  • El proyecto Google Cloud que usas debe estar habilitado para acceder a AlloyDB.
  • Debes tener uno de estos roles de IAM en el proyecto Google Cloud que estás usando:
    • roles/alloydb.admin (el rol de IAM predefinido de administrador de AlloyDB)
    • roles/owner (el rol de IAM básico de propietario)
    • roles/editor (el rol básico de IAM de Editor)

    Si no tienes ninguno de estos roles, comunícate con el administrador de tu organización para solicitar acceso.

Ajuste de escala manual

En esta sección, se describen los métodos manuales para escalar tus instancias de AlloyDB. Por ejemplo, puedes escalar verticalmente una instancia cambiando su tipo de máquina y escalar horizontalmente una instancia de grupo de lectura cambiando su recuento de nodos.

Cómo escalar el tipo de máquina de una instancia

Puedes escalar verticalmente las instancias principales y de grupos de lectura cambiando el tipo de máquina de la instancia, lo que modifica su CPU virtual y RAM.

Console

  1. En la consola de Google Cloud , ve a la página Clústeres.

    Ir a los clústeres

  2. Haz clic en un clúster en la columna Nombre del recurso.

  3. En la página Descripción general, ve a la sección Instancias en tu clúster y haz clic en Editar instancia principal o Editar grupo de lectura.

  4. Selecciona una de las siguientes series de máquinas:

    • C4A: Es la serie de máquinas basadas en Google Axion, disponible en versión preliminar.
    • N2: Es la serie de máquinas predeterminada basada en x86.
  5. Selecciona un tipo de máquina.

    • C4A admite 1, 4, 8, 16, 32, 48, 64 y 72 tipos o formas de máquinas.
    • N2 admite 2, 4, 8, 16, 32, 64, 96 y 128 tipos o formas de máquinas.

      Para obtener más información sobre el uso de la serie de máquinas basadas en Axion C4A, incluido el tipo de máquina con 1 CPU virtual, consulta Consideraciones para usar la serie de máquinas basadas en Axion C4A.

  6. Haz clic en Actualizar instancia o Actualizar grupo de lectura.

gcloud

Para usar gcloud CLI, puedes instalar y, luego, inicializar Google Cloud CLI, o bien usar Cloud Shell.

Usa el comando gcloud alloydb instances update para cambiar el tipo de máquina de la instancia principal.

gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID

Reemplaza lo siguiente:

  • INSTANCE_ID: ID de la instancia que se actualizará.

  • CPU_COUNT: Es la cantidad de CPU virtuales de N2 que deseas para la instancia. N2 es el valor predeterminado. Los valores válidos incluyen lo siguiente:

    • 2: 2 CPU virtuales, 16 GB de RAM
    • 4: 4 CPUs virtuales y 32 GB de RAM
    • 8: 8 CPU virtuales y 64 GB de RAM
    • 16: 16 CPU virtuales, 128 GB de RAM
    • 32: 32 CPU virtuales y 256 GB de RAM
    • 64: 64 CPU virtuales y 512 GB de RAM
    • 96: 96 CPU virtuales, 768 GB de RAM
    • 128: 128 CPU virtuales y 864 GB de RAM

  • MACHINE_TYPE: Este parámetro es opcional cuando implementas máquinas N2. Para implementar la serie de máquinas basadas en Axion C4A (versión preliminar) o migrar entre máquinas C4A y N2, elige este parámetro con los siguientes valores.

    Cuando usas MACHINE_TYPE y CPU_COUNT juntos, los valores de CPU_COUNT y MACHINE_TYPE deben coincidir. De lo contrario, recibirás un error.

    Para la serie de máquinas basadas en Axion C4A, elige el tipo de máquina con los siguientes valores:

    • c4a-highmem-1
    • c4a-highmem-4-lssd
    • c4a-highmem-8-lssd
    • c4a-highmem-16-lssd
    • c4a-highmem-32-lssd
    • c4a-highmem-48-lssd
    • c4a-highmem-64-lssd
    • c4a-highmem-72-lssd

    Para implementar C4A con 4 CPU virtuales o más, usa el sufijo lssd para habilitar la caché ultrarrápida.

    Para obtener más información sobre el uso de la serie de máquinas C4A basadas en Axion, incluido el tipo de máquina con 1 CPU virtual, consulta Consideraciones para usar la serie de máquinas C4A basadas en Axion.

    Para la serie de máquinas N2 basadas en x86, usa los siguientes valores:

    • N2-highmem-2
    • N2-highmem-4
    • N2-highmem-8
    • N2-highmem-16
    • N2-highmem-32
    • N2-highmem-64
    • N2-highmem-96
    • N2-highmem-128
  • REGION_ID: Es la región en la que se coloca la instancia.

  • CLUSTER_ID: Es el ID del clúster en el que se coloca la instancia.

  • PROJECT_ID: Es el ID del proyecto en el que se coloca el clúster.

Si el comando devuelve un mensaje de error que incluye la frase invalid cluster state MAINTENANCE, significa que el clúster está en mantenimiento de rutina. Esto inhabilita temporalmente la reconfiguración de la instancia. Vuelve a ejecutar el comando después de que el clúster vuelva al estado READY. Para verificar el estado del clúster, consulta Cómo ver los detalles del clúster.

Acelera las actualizaciones del tipo de máquina

Para actualizar el tipo de máquina más rápido, usa la opción FORCE_APPLY con el comando gcloud beta alloydb instances update.

 gcloud beta alloydb instances update INSTANCE_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID
  --update-mode=FORCE_APPLY
  • La instancia experimenta aproximadamente un minuto de inactividad.

  • El tipo de máquina de una instancia cambia después de 10 a 15 minutos.

Cómo escalar el recuento de nodos de una instancia de grupo de lectura

AlloyDB te permite escalar la cantidad de nodos en una instancia de grupo de lectura sin tiempo de inactividad a nivel de la instancia. Cuando aumentas la cantidad de nodos, las conexiones de los clientes no se ven afectadas.

Cuando disminuyes la cantidad de nodos, los clientes conectados a un nodo que se está cerrando pueden volver a conectarse a los otros nodos a través del extremo de la instancia.

Console

  1. En la consola de Google Cloud , ve a la página Clústeres.

    Ir a los clústeres

  2. Haz clic en un clúster en la columna Nombre del recurso.

  3. En la página Descripción general, ve a la sección Instancias en tu clúster y haz clic en Editar grupo de lectura.

  4. En el campo Cantidad de nodos, ingresa una cantidad de nodos.

  5. Haz clic en Actualizar grupo de lectura.

gcloud

Para usar gcloud CLI, puedes instalar y, luego, inicializar Google Cloud CLI, o bien usar Cloud Shell.

Usa el comando gcloud alloydb instances update para cambiar la cantidad de nodos en una instancia de grupo de lectura.

gcloud alloydb instances update INSTANCE_ID \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID
  • INSTANCE_ID: Es el ID de la instancia del grupo de lectura.

  • NODE_COUNT: Es la cantidad de nodos en la instancia del grupo de lectura. Especifica un número del 1 al 20, inclusive. Ten en cuenta que no puedes tener más de 20 nodos en todas las instancias de grupos de lectura de un clúster.

  • REGION_ID: Es la región en la que se encuentra la instancia.

  • CLUSTER_ID: Es el ID del clúster en el que se encuentra la instancia.

  • PROJECT_ID: Es el ID del proyecto en el que se encuentra el clúster.

Si el comando devuelve un mensaje de error que incluye la frase invalid cluster state MAINTENANCE, significa que el clúster está en mantenimiento de rutina. Esto inhabilita temporalmente la reconfiguración de la instancia. Vuelve a ejecutar el comando después de que el clúster vuelva al estado READY. Para verificar el estado del clúster, consulta Cómo ver los detalles del clúster.

Ajusta automáticamente la escala de una instancia de grupo de lectura

El ajuste de escala automático del grupo de lectura de AlloyDB te permite cambiar de forma automática y adaptativa la cantidad de nodos de lectura según el uso de recursos en tiempo real. Esto te ayuda a controlar los cambios en el uso y a reducir los gastos.

Puedes configurar el ajuste de escala automático con las siguientes políticas:

  • Basado en el uso de CPU: Ajusta la cantidad de nodos según un objetivo de uso de CPU.
  • Basado en la programación: Ajusta la cantidad de nodos a un recuento mínimo durante un período especificado.

Puedes usar estas políticas juntas. Cuando hay varias políticas activas, el escalador automático selecciona la que recomienda la mayor cantidad de nodos.

Limitaciones

El escalador automático del grupo de lectura tiene las siguientes limitaciones:

  • Distribución de carga para conexiones de larga duración: Para establecer una distribución uniforme del tráfico y usar por completo la capacidad agregada del ajuste de escala automático, te recomendamos que crees conexiones de cliente nuevas. El escalador automático no finaliza las conexiones existentes de larga duración cuando agrega nodos nuevos, por lo que el tráfico de esas conexiones no se enruta a los nodos recién agregados.
  • Calentamiento de la caché para nodos nuevos: Cuando el escalador automático agrega nodos nuevos, es posible que tarden unos minutos en calentar sus cachés y alcanzar el máximo rendimiento de las consultas.
  • Comportamiento con consultas grandes: Es posible que los ajustes de ajuste de escala automático se pospongan durante la ejecución de consultas de lectura muy grandes.

Habilita el ajuste de escala automático en una instancia nueva del grupo de lectura

Puedes habilitar y configurar el ajuste de escala automático cuando creas una instancia de grupo de lectura con una política basada en la CPU, una política basada en la programación o ambas.

Crea una instancia de grupo de lectura con una política basada en CPU

Para crear una instancia de grupo de lectura con una política de ajuste de escala automático basada en un objetivo de uso de CPU, ejecuta el siguiente comando:

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-target-cpu-usage=TARGET_CPU_USAGE

Reemplaza lo siguiente:

  • INSTANCE_ID: Es el ID de la instancia del grupo de lectura.

  • READ_POOL: Especifica el tipo de instancia.

  • NODE_COUNT: Es la cantidad de nodos en la instancia del grupo de lectura. Especifica un número del 1 al 20, inclusive. Ten en cuenta que no puedes tener más de 20 nodos en todas las instancias del grupo de lectura de un clúster.

  • REGION_ID: es la región en la que se coloca la instancia.

  • CLUSTER_ID: Es el ID del clúster en el que se coloca la instancia.

  • PROJECT_ID: Es el ID del proyecto en el que se coloca el clúster.

  • MAX_NODE_COUNT: Es la cantidad máxima de nodos que puede crear el escalador automático en la instancia del grupo de lectura. La cantidad total de nodos en todas las instancias de grupos de lectura de un solo clúster no puede superar los 20.

  • TARGET_CPU_USAGE: Es el uso de CPU objetivo para la instancia del grupo de lectura, expresado como un valor decimal entre 0.0 y 1.0. Por ejemplo, 0.7 para el 70%.

Crea una instancia de grupo de lectura con una política basada en la programación

Para crear una instancia de grupo de lectura con una política de ajuste de escala automático basada en la programación que defina una cantidad mínima de nodos para un período específico, ejecuta el siguiente comando:

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-set-schedule=SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-time-zone=TIME_ZONE \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
    --autoscaler-schedule-description="DESCRIPTION"

Reemplaza lo siguiente:

  • MAX_NODE_COUNT: Es la cantidad máxima de nodos que puede crear el escalador automático en la instancia del grupo de lectura. La cantidad total de nodos en todas las instancias de grupos de lectura de un solo clúster no puede superar los 20.

  • SCHEDULE_NAME: Es un nombre único para el programa de escalamiento.

  • CRON_EXPRESSION: Es el programa en formato cron que especifica la hora de inicio del evento de ajuste de escala.

  • DURATION_SECONDS: Es la duración en segundos durante la que el programa permanece activo después de que se inicia. Después de este período, la instancia se reduce a la cantidad de nodos que determinan otras políticas o su configuración original.

  • TIME_ZONE: Es una zona horaria opcional para la programación. Por ejemplo, America/Los_Angeles

  • MIN_NODE_COUNT: Es la cantidad mínima de nodos a la que el escalador automático ajusta la escala de la instancia del grupo de lectura mientras el programa está activo.

  • DESCRIPTION: Es una descripción de texto opcional para la programación.

Crea una instancia de grupo de lectura con políticas basadas en la CPU y la programación

Para crear una instancia de grupo de lectura con políticas de ajuste de escala automático basadas en la CPU y en la programación, ejecuta el siguiente comando:

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
    --autoscaler-set-schedule=SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-time-zone=TIME_ZONE \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
    --autoscaler-schedule-description="DESCRIPTION"

Reemplaza TARGET_CPU_USAGE por el uso de CPU objetivo para tu instancia del grupo de lectura, expresado como un valor decimal entre 0.0 y 1.0.

Para obtener una descripción de los marcadores de posición que se usan en este comando, consulta las políticas Crea una instancia de grupo de lectura con una política basada en la CPU y Crea una instancia de grupo de lectura con una política basada en la programación.

Habilita o actualiza el ajuste de escala automático en una instancia de grupo de lectura existente

Puedes habilitar, inhabilitar o modificar la configuración del ajuste de escala automático en una instancia de grupo de lectura existente.

Para habilitar el ajuste de escala automático por primera vez en una instancia existente o actualizar una política existente, usa el comando gcloud alloydb instances update. Por ejemplo, para actualizar el uso de CPU objetivo, ejecuta el siguiente comando:

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGE

Reemplaza NEW_TARGET_CPU_USAGE por el nuevo uso de CPU objetivo que deseas establecer para la instancia del grupo de lectura, expresado como un valor decimal entre 0.0 y 1.0.

Para agregar un segundo programa a una configuración existente, ejecuta el comando de actualización con un nombre de programa nuevo. Si el nombre del programa ya existe, el comando actualiza el programa existente. De lo contrario, crea una programación nueva.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --autoscaler-set-schedule=NEW_SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT

Reemplaza NEW_SCHEDULE_NAME por el nombre único del programa de ajuste de escala nuevo o actualizado. Si el nombre proporcionado coincide con un programa existente, el comando actualiza la configuración de ese programa. Si el nombre no existe, el comando crea una programación nueva con ese nombre.

Cómo se evalúan las políticas de ajuste de escala automático

Cuando hay varias políticas de ajuste de escala automático activas, el escalador automático evalúa cada política y elige la que recomienda la mayor cantidad de nodos.

Por ejemplo, considera una configuración con dos políticas:

  • Una política basada en la CPU con un objetivo de uso del 60%.
  • Una política basada en la programación que requiere un mínimo de tres nodos los días hábiles entre las 8 a.m. y las 5 p.m.

Si es un día laborable al mediodía y el uso de CPU es del 80%, la política basada en la CPU podría recomendar escalar verticalmente hasta cuatro nodos, mientras que la política basada en la programación recomienda tres. El escalador automático ajusta la instancia a cuatro nodos.

Inhabilita el ajuste de escala automático

Para inhabilitar el ajuste de escala automático, usa la marca no-enable-autoscaler. Esto restablece el grupo de lectura a su recuento de nodos original antes de que se habilitara el ajuste de escala automático.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --no-enable-autoscaler