Puedes escalar una instancia de AlloyDB para ajustar la capacidad y el rendimiento de tu clúster y satisfacer las demandas cambiantes de las cargas de trabajo. El escalamiento ayuda a administrar los costos y facilita el manejo de los aumentos repentinos de tráfico.
Escalas de forma vertical (modificando la CPU virtual y la RAM) cambiando el tipo de máquina de una instancia principal o de un grupo de lectura. Para escalar horizontalmente, cambia la cantidad de nodos en una instancia de grupo de lectura. Puedes administrar el escalamiento vertical y horizontal con procesos manuales. También puedes administrar el escalamiento horizontal de forma automática habilitando el escalado automático del grupo de lectura.
Puedes escalar las instancias de AlloyDB de las siguientes maneras.
| Tipo de escalamiento | Método | Automatización | Instancias principales | Instancias de grupos 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 proyecto de Google Cloud que usas debe haber sido habilitado para acceder a AlloyDB.
- Debes tener uno de estos roles de IAM en el proyecto de Google Cloud que estás usando:
roles/alloydb.admin(el rol de IAM predefinido de administrador de AlloyDB)roles/owner(el rol básico de IAM 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 la organización para solicitar acceso.
Escala una instancia de forma 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 grupos de lectura cambiando el tipo de máquina de la instancia, lo que modifica su CPU virtual y RAM.
Console
En la consola de Google Cloud , ve a la página Clústeres.
Haz clic en un clúster en la columna Nombre del recurso.
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.
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)
Selecciona un tipo de máquina.
- C4A admite 1, 2, 4, 8, 16, 32, 48, 64 y 72 CPUs virtuales.
- N2 admite 2, 4, 8, 16, 32, 64, 96 y 128 CPUs virtuales.
- C4 admite 4, 8, 16, 24, 32, 48, 96, 144, 192 y 288 CPUs virtuales.
- Z3 admite 8, 14, 16, 22, 32, 44 y 88 CPUs virtuales.
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 cuando se usa la serie de máquinas C4A basadas en Axion.
Haz clic en Actualizar instancia o Actualizar grupo de lectura.
gcloud
Para usar gcloud CLI, puedes instalar e inicializar Google Cloud CLI, o bien puedes 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_IDReemplaza lo siguiente:
INSTANCE_ID: Es el ID de la instancia que estás actualizando.CPU_COUNT: Es la cantidad de CPUs virtuales 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 RAM4: 4 CPU virtuales, 32 GB de RAM8: 8 CPU virtuales, 64 GB de RAM16: 16 CPUs virtuales, 128 GB de RAM32: 32 CPU virtuales, 256 GB de RAM64: 64 CPU virtuales, 512 GB de RAM96: 96 CPUs virtuales, 768 GB de RAM128: 128 CPU virtuales, 864 GB de RAM
MACHINE_TYPE: Opcional Selecciona un tipo de máquina de una lista de tipos compatibles, comon2-highmem-4,c4-highmem-4-lssdoc4a-highmem-4-lssd. Para obtener más información, consulta Elige un tipo de máquina de AlloyDB.Cuando usas
MACHINE_TYPEyCPU_COUNTjuntos, los valores enCPU_COUNTyMACHINE_TYPEdeben coincidir; de lo contrario, se produce un error.REGION_ID: Es la región en la que se ubica 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, el clúster se encuentra 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 Visualiza los detalles del clúster.
Acelera las actualizaciones de 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_APPLYLa 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.
Terraform
Para cambiar el tipo de máquina de una instancia, actualiza el bloque machine_config en el recurso google_alloydb_instance.
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY" # or "READ_POOL"
machine_config {
cpu_count = 4
}
}
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 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 con el extremo de la instancia.
Console
En la consola de Google Cloud , ve a la página Clústeres.
Haz clic en un clúster en la columna Nombre del recurso.
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.
En el campo Recuento de nodos, ingresa un recuento de nodos.
Haz clic en Actualizar grupo de lectura.
gcloud
Para usar gcloud CLI, puedes instalar e inicializar Google Cloud CLI, o bien puedes 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_IDINSTANCE_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 del1al20, 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, el clúster se encuentra 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 Visualiza los detalles
del clúster.
Terraform
Para cambiar la cantidad de nodos en una instancia de grupo de lectura, actualiza el campo node_count en el bloque read_pool_config del recurso google_alloydb_instance.
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-read-pool-instance"
instance_type = "READ_POOL"
read_pool_config {
node_count = 3
}
}
Configura el ajuste de escala automático del grupo de lectura
El ajuste de escala automático del grupo de lectura de AlloyDB te permite cambiar de forma automática y adaptable 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 disminuir los gastos.
Puedes configurar el ajuste de escala automático con las siguientes políticas:
- Basado en el uso de CPU: escala la cantidad de nodos según un uso de CPU objetivo.
- Basado en programas: escala la cantidad de nodos a un recuento mínimo durante un período específico.
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 cierra las conexiones de larga duración existentes cuando agrega nodos nuevos, por lo que el tráfico de esas conexiones no se enruta a los nodos recién agregados.
- Preparación de la caché para nodos nuevos: Cuando el escalador automático agrega nodos nuevos, es posible que tarden unos minutos en preparar sus cachés y alcanzar el rendimiento máximo de las consultas.
Habilita el ajuste de escala automático del grupo de lectura en una instancia nueva de este grupo
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 un programa 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-cool-down-period-seconds=COOLDOWN_PERIOD \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}Reemplaza lo siguiente:
INSTANCE_ID: Es el ID de la instancia del grupo de lectura.NODE_COUNT: Es la cantidad mínima de nodos que el escalador automático puede crear en la instancia del grupo de lectura. Especifica un número del1al20, inclusive. No puedes tener más de 20 nodos en todas las instancias de grupo 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 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 el escalador automático puede crear 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.COOLDOWN_PERIOD: Es la cantidad de tiempo en segundos que AlloyDB espera antes de incluir el uso de recursos de la instancia del grupo de lectura en el algoritmo de ajuste de escala automático. El valor predeterminado es300segundos.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%.CPU_COUNT: Es la cantidad de CPUs virtuales N2 que deseas para la instancia. Se debe especificar--cpu-counto--machine-type.MACHINE_TYPE: Selecciona de una lista de tipos de máquinas compatibles, comon2-highmem-4,c4-highmem-4-lssdoc4a-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 programas
Para crear una instancia de grupo de lectura con una política de ajuste de escala automático basada en un programa 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-cool-down-period-seconds=COOLDOWN_PERIOD \
--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: Es la cantidad máxima de nodos que el escalador automático puede crear 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.COOLDOWN_PERIOD: Es la cantidad de tiempo en segundos que AlloyDB espera antes de incluir el uso de recursos de la instancia del grupo de lectura en el algoritmo de ajuste de escala automático. El valor predeterminado es300segundos.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 escalamiento.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 reduce la escala verticalmente a la cantidad de nodos que determinan otras políticas o su configuración original.TIME_ZONE: Es una zona horaria opcional para el programa. Por ejemplo,America/Los_AngelesMIN_NODE_COUNT: Es la cantidad mínima de nodos a la que el escalador automático escala la instancia del grupo de lectura mientras la programación está activa.DESCRIPTION: Es una descripción de texto opcional para el programa.CPU_COUNT: Es la cantidad de CPUs virtuales N2 que deseas para la instancia. Se debe especificar--cpu-counto--machine-type.MACHINE_TYPE: Selecciona de una lista de tipos de máquinas compatibles, comon2-highmem-4,c4-highmem-4-lssdoc4a-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 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 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-cool-down-period-seconds=COOLDOWN_PERIOD \
--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}Para obtener una descripción de los marcadores de posición que se usan en este comando, consulta 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 programas.
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 para actualizar una política existente, usa el comando gcloud beta alloydb instances update. Por ejemplo, para actualizar el uso de CPU objetivo, ejecuta el siguiente comando:
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGEReemplaza 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 un segundo programa a una configuración existente, ejecuta el comando de actualización con un nombre de programa 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 \
--enable-autoscaler \
--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_COUNTReemplaza NEW_SCHEDULE_NAME por el nombre único de la programación de escalamiento nueva o actualizada. 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 un programa 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 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 escala la instancia a cuatro nodos.
Escalado automático
Además del escalado automático de tu instancia de grupo de lectura, AlloyDB también escala automáticamente tu instancia cuando no necesitas tantos nodos de lectura para admitir tu flujo de trabajo. Cuando se produce la reducción de escala automática, AlloyDB reduce la cantidad de nodos al valor
que estableciste para el campo --read-pool-node-count.
Para determinar cuándo se debe reducir la escala de la instancia del grupo de lectura, AlloyDB espera hasta que el programa de ajuste de escala automático esté inactivo o el uso de CPU sea inferior al objetivo de uso durante 10 minutos.
Para obtener más información sobre la reducción de escala automática, consulta Comprende las decisiones del escalador automático.
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-autoscalerVisualiza el recuento de nodos con escalado automático
Puedes ver la cantidad de nodos a los que se escaló el escalador automático en una instancia.
Console
En la consola de Google Cloud , ve a la página Clústeres.
Haz clic en un clúster en la columna Nombre del recurso.
En el menú de navegación, haz clic en Estadísticas del sistema.
Selecciona una instancia de la lista desplegable Instancia.
Consulta la cantidad de nodos en Recuento de nodos activos.
gcloud
Para usar gcloud CLI, puedes instalar e inicializar Google Cloud CLI, o bien puedes usar Cloud Shell.
Usa el comando gcloud alloydb instances describe
para ver la lista de nodos de la instancia.
gcloud alloydb instances describe INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--view=FULL \
--format="yaml(nodes)"Reemplaza lo siguiente:
INSTANCE_ID: Es el ID de la instancia que estás actualizando.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 coloca la instancia.PROJECT_ID: Es el ID del proyecto en el que se encuentra el clúster.