Escala una instancia

Puedes escalar una instancia de AlloyDB para ajustar la capacidad y el rendimiento de tu clúster para 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 instancias de AlloyDB de varias maneras, como se resume a continuación.

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

Antes de comenzar

  • El Google Cloud proyecto que usas debe estar habilitado para acceder a AlloyDB.
  • Debes tener uno de estos roles de IAM en el Google Cloud proyecto que usas:
    • 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 de IAM básico 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.

Escala el tipo de máquina de una instancia

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

Console

  1. En la Google Cloud consola de, 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 (serie de máquinas basadas en Google Axion)
    • N2 (serie de máquinas basadas en x86). Esta es la serie de máquinas predeterminada.
    • C4 (serie de máquinas basadas en x86)
    • Z3 (serie de máquinas basadas en Intel Xeon)
  5. Elige un tipo de máquina.

    • C4A admite 1, 2, 4, 8, 16, 32, 48, 64 y 72 CPU virtuales.
    • N2 admite 2, 4, 8, 16, 32, 64, 96 y 128 CPU virtuales.
    • C4 admite 4, 8, 16, 24, 32, 48, 96, 144, 192 y 288 CPU virtuales.
    • Z3 admite 8, 14, 16, 22, 32, 44 y 88 CPU virtuales.

    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 de 1 CPU virtual, consulta Consideraciones cuando se usa 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 tú puedes usar Cloud Shell.

Usa el gcloud alloydb instances update comando 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: El ID de la instancia que deseas actualizar.

  • CPU_COUNT: La cantidad de CPU virtuales N2 que deseas para la instancia. N2 es la configuración predeterminada. Los valores válidos incluyen lo siguiente:

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

  • MACHINE_TYPE: Opcional. Selecciona de una lista de tipos de máquinas compatibles, como n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Para obtener más información, consulta Elige un tipo de máquina de AlloyDB.

    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.

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

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

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

Si el comando muestra 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 a un estado READY. Para verificar el estado del clúster, consulta Visualiza 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 tiempo de inactividad.

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

Escala 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 el recuento de nodos, las conexiones de cliente no se ven afectadas.

Cuando disminuyes el recuento de nodos, los clientes conectados a un nodo que se está cerrando pueden volver a conectarse a los otros nodos mediante el extremo de la instancia.

Console

  1. En la Google Cloud consola de, 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 Recuento de nodos, ingresa un recuento de nodos.

  5. Haz clic en Actualizar grupo de lectura.

gcloud

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

Usa el gcloud alloydb instances update comando 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: El ID de la instancia de grupo de lectura.

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

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

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

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

Si el comando muestra 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 a un estado READY. Para verificar el estado del clúster, consulta Visualiza los detalles del clúster.

Ajusta la escala automática 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 de uso y disminuir los gastos.

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

  • Basada en el uso de CPU: Escala la cantidad de nodos según un uso de CPU objetivo.
  • Basada en la programación: Escala 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 caché para nodos nuevos: Cuando el escalador automático agrega nodos nuevos, puede tardar unos minutos en que calienten sus cachés y alcancen el máximo rendimiento de la consulta.

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

Puedes habilitar y configurar el ajuste de escala automático cuando creas una instancia de grupo de lectura con una política basada en 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 uso de CPU objetivo, ejecuta el siguiente comando:

gcloud beta 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 \
    {--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}

Reemplaza lo siguiente:

  • INSTANCE_ID: El ID de la instancia de grupo de lectura.

  • READ_POOL: Especifica el tipo de instancia.

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

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

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

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

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

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

  • CPU_COUNT: La cantidad de CPU virtuales N2 que deseas para la instancia. Se debe especificar --cpu-count o --machine-type.

  • MACHINE_TYPE: Selecciona de una lista de tipos de máquinas compatibles, como n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Para obtener más información, consulta Elige un tipo de máquina de AlloyDB.

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 beta 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"
    {--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}

Reemplaza lo siguiente:

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

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

  • CRON_EXPRESSION: El programa en formato cron que especifica la hora de inicio del evento de escalamiento.

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

  • TIME_ZONE: Una zona horaria opcional para el programa. Por ejemplo, America/Los_Angeles.

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

  • DESCRIPTION: Una descripción de texto opcional para el programa.

  • CPU_COUNT: La cantidad de CPU virtuales N2 que deseas para la instancia. Se debe especificar --cpu-count o --machine-type.

  • MACHINE_TYPE: Selecciona de una lista de tipos de máquinas compatibles, como n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Para obtener más información, consulta Elige un tipo de máquina de AlloyDB.

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

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

gcloud beta 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"
    {--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}

Reemplaza TARGET_CPU_USAGE por el uso de CPU objetivo para tu instancia de 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 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 de 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 para actualizar una política existente, usa el comando gcloud beta alloydb instances update. Por ejemplo, para actualizar el uso de CPU objetivo, ejecuta lo siguiente:

gcloud beta 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 tu instancia de grupo de lectura, expresado como un valor decimal entre 0.0 y 1.0.

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

gcloud beta 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 escalamiento 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 un programa nuevo con este 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 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 de semana entre las 8 a.m. y las 5 p.m.

Si es un día de semana al mediodía y el uso de CPU es del 80%, la política basada en CPU podría recomendar escalar hasta cuatro nodos, mientras que la política basada en la programación recomienda tres. El escalador automático escala 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 beta alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --no-enable-autoscaler