Auto Scaling de los clústeres Valkey y Redis OSS - Amazon ElastiCache

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Auto Scaling de los clústeres Valkey y Redis OSS

Requisitos previos

ElastiCache Auto Scaling se limita a lo siguiente:

  • Clústeres Valkey o Redis OSS (modo de clúster activado) que ejecutan Valkey 7.2 o versiones posteriores del motor Redis 6.0 OSS

  • Clústeres de datos por niveles (modo de clúster activado) que ejecutan Valkey 7.2 o versiones posteriores del motor Redis 7.0.7 OSS

  • Tamaños de instancia: grandes, 2 XLarge XLarge

  • Familias de tipos de instancia: R7g, R6g, R6gd, R5, M7g, M6g, M5, C7gn

  • Auto Scaling in no ElastiCache es compatible con los clústeres que se ejecutan en almacenes de datos globales, Outposts o Zonas Locales.

Gestión automática de la capacidad con ElastiCache Auto Scaling con Valkey o Redis OSS

ElastiCache el escalado automático con Valkey o Redis OSS es la capacidad de aumentar o disminuir automáticamente los fragmentos o réplicas deseados en su servicio. ElastiCache ElastiCache aprovecha el servicio Application Auto Scaling para proporcionar esta funcionalidad. Para obtener más información, consulte Auto Scaling de aplicaciones. Para utilizar el escalado automático, debe definir y aplicar una política de escalado que utilice CloudWatch las métricas y los valores objetivo que usted asigne. ElastiCache el escalado automático utiliza la política para aumentar o disminuir la cantidad de instancias en respuesta a las cargas de trabajo reales.

Puede utilizarla AWS Management Console para aplicar una política de escalado basada en una métrica predefinida. Se define una predefined metric en una enumeración, de manera que puede especificarla por el nombre en el código o utilizarla en la AWS Management Console. Las métricas personalizadas no se pueden seleccionar utilizando la AWS Management Console. Como alternativa, puede utilizar el Auto Scaling AWS CLI o la aplicación Auto Scaling API para aplicar una política de escalado basada en una métrica predefinida o personalizada.

ElastiCache con Valkey o Redis, OSS admite el escalado para las siguientes dimensiones:

  • Particiones: agregar/eliminar de forma automática particiones en el clúster de forma similar al cambio de particiones manual en línea. En este caso, el escalado ElastiCache automático activa el escalado en tu nombre.

  • Réplicas: agregar/eliminar de forma automática réplicas en el clúster de manera similar a las operaciones manuales de aumento/reducción de réplicas. ElastiCache con el escalado OSS automático de Valkey o Redis, se añaden o eliminan réplicas de manera uniforme en todos los fragmentos del clúster.

ElastiCache con Valkey o RedisOSS, admite los siguientes tipos de políticas de escalado automático:

Imagen de ElastiCache autoescalado para Valkey o Redis OSS

Los siguientes pasos resumen el proceso de escalado OSS automático ElastiCache con Valkey o Redis, como se muestra en el diagrama anterior:

  1. Usted crea una política ElastiCache de escalado automático para su grupo de replicación.

  2. ElastiCache el escalado automático con Valkey o Redis OSS crea un par de CloudWatch alarmas en tu nombre. Cada par representa los límites superiores e inferiores de las métricas. Estas CloudWatch alarmas se activan cuando la utilización real del clúster se desvía de la utilización objetivo durante un período prolongado. Puede ver las alarmas en la consola.

  3. Si el valor de la métrica configurada supera su uso objetivo (o cae por debajo del objetivo) durante un período de tiempo específico, CloudWatch activa una alarma que invoca el escalado automático para evaluar su política de escalado.

  4. ElastiCache con el escalado OSS automático de Valkey o Redis, emite una solicitud de modificación para ajustar la capacidad del clúster.

  5. ElastiCache con Valkey o Redis OSS procesa la solicitud de modificación, aumentando (o disminuyendo) de forma dinámica la capacidad de los fragmentos o réplicas del clúster para que se acerque a su uso objetivo.

Para entender cómo funciona OSS Auto Scaling ElastiCache con Valkey o Redis, supongamos que tiene un clúster denominado. UsersCluster Al supervisar las CloudWatch métricasUsersCluster, se determinan los fragmentos máximos que necesita el clúster cuando el tráfico está en su punto máximo y los fragmentos mínimos cuando el tráfico está en su punto más bajo. También decide un valor objetivo de CPU utilización para el UsersCluster clúster. ElastiCache el escalado automático utiliza su algoritmo de seguimiento de objetivos para garantizar que las particiones aprovisionadas se ajusten según sea necesario, de UsersCluster modo que la utilización se mantenga en el valor objetivo o cerca de él.

nota

El escalado puede llevar un tiempo considerable y requerir recursos de clúster adicionales para que los fragmentos se reequilibren. ElastiCache con Valkey o Redis, OSS Auto Scaling modifica la configuración de los recursos solo cuando la carga de trabajo real permanece elevada (o reducida) durante un período prolongado de varios minutos. El algoritmo de seguimiento de objetivos de escalado automático busca mantener la utilización del objetivo en el valor elegido o cerca de él a largo plazo.

IAMPermisos necesarios para Auto Scaling

ElastiCache Auto Scaling con Valkey o Redis es posible gracias a una combinación de OSS Auto Scaling ElastiCache CloudWatch, y Application Auto Scaling. APIs Los clústeres se crean y actualizan con ElastiCache (RedisOSS), las alarmas se crean con CloudWatch y las políticas de escalado se crean con Application Auto Scaling. Además de IAM los permisos estándar para crear y actualizar clústeres, el IAM usuario que accede a la configuración de ElastiCache Auto Scaling debe tener los permisos adecuados para los servicios que admiten el escalado dinámico. IAMlos usuarios deben tener permisos para usar las acciones que se muestran en el siguiente ejemplo de política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration", "elasticache:IncreaseReplicaCount", "elasticache:DecreaseReplicaCount", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheParameters", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": "arn:aws:iam::123456789012:role/autoscaling-roles-for-cluster" } ] }

Rol vinculado al servicio

El servicio de escalado OSS automático ElastiCache con Valkey o Redis también necesita permiso para describir sus clústeres y CloudWatch alarmas, y permisos para modificar su capacidad ElastiCache objetivo en su nombre. Si habilita Auto Scaling para su clúster, se crea un rol vinculado al servicio denominado. AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG Esta función vinculada al servicio otorga permiso de escalado ElastiCache automático para describir las alarmas de sus políticas, monitorear la capacidad actual de la flota y modificar la capacidad de la flota. La función vinculada al servicio es la función predeterminada para el escalado ElastiCache automático. Para obtener más información, consulte Funciones vinculadas a servicios para el escalado OSS automático ElastiCache (Redis) en la Guía del usuario de Application Auto Scaling.

Prácticas recomendadas de Auto Scaling

Antes de registrarse en Auto Scaling, recomendamos lo siguiente:

  1. Utilice solo una métrica de seguimiento: identifique si su clúster tiene CPU cargas de trabajo intensivas en datos y utilice la métrica predefinida correspondiente para definir la política de escalado.

    • MotorCPU: ElastiCachePrimaryEngineCPUUtilization (dimensión de fragmento) o ElastiCacheReplicaEngineCPUUtilization (dimensión de réplica)

    • Uso de bases de datos: ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage Esta política de escalado funciona mejor si la política maxmemory está configurada como noeviction en el clúster.

    Le recomendamos que evite tener varias políticas por dimensión en el clúster. ElastiCache con Valkey o Redis OSS Auto, el escalado automático ampliará el objetivo escalable si alguna política de seguimiento de objetivos está lista para ampliarla, pero solo se ampliará si todas las políticas de seguimiento de objetivos (con la parte de escalamiento interno habilitada) están listas para ampliarse. Si varias políticas indican al destino escalable que se realice una reducción o escalado horizontal al mismo tiempo, se escala en función de la política que proporciona la mayor capacidad para la reducción o el escalado horizontal.

  2. Métricas personalizadas para el seguimiento de destinos: tenga cuidado al utilizar métricas personalizadas para el seguimiento de destinos, ya que el escalado automático es la característica más adecuada para el escalado horizontal en proporción a los cambios en las métricas elegidas para la política. Si esas métricas no cambian proporcionalmente a las acciones de escalado usadas para la creación de políticas, es posible que den lugar a acciones continuas de escalar horizontalmente o reducir horizontalmente que es posible que afecten a la disponibilidad o el costo.

    En el caso de los clústeres de datos por niveles (tipos de instancias de la familia r6gd), evite utilizar métricas basadas en memoria para escalar.

  3. Escalado programado: si identifica que su carga de trabajo es determinista (alcance alto/bajo en un momento específico), recomendamos utilizar el escalado programado y configurar su capacidad objetivo según la necesidad. El seguimiento de destino es el más adecuado para las cargas de trabajo no determinista y para que el clúster funcione con la métrica de destino requerida al escalar horizontalmente cuando necesite más recursos y reducir horizontalmente cuando necesite menos.

  4. Deshabilitar la reducción horizontal: el Auto Scaling del seguimiento de destino es el más adecuado para clústeres con aumento/disminución gradual de las cargas de trabajo, ya que los picos o la disminución de las métricas pueden desencadenar oscilaciones consecutivas de reducción o escalado horizontal. Para evitar tales oscilaciones, puede comenzar con la reducción horizontal deshabilitada y luego siempre puede reducir horizontalmente de forma manual según sus necesidades.

  5. Probar la aplicación: recomendamos que pruebe la aplicación con las cargas de trabajo mínimas y máximas estimadas a fin de determinar las particiones o réplicas mínimas y máximas necesarias para el clúster mientras crea políticas de escalado a fin de evitar problemas de disponibilidad. Auto Scaling puede escalar horizontalmente hasta el máximo y reducir horizontalmente en el umbral mínimo configurado para el destino.

  6. Definición del valor objetivo: puede analizar CloudWatch las métricas correspondientes a la utilización del clúster durante un período de cuatro semanas para determinar el umbral del valor objetivo. Si aún no se encuentra seguro de qué valor elegir, se recomienda comenzar con el valor mínimo admitido de métrica predefinida.

  7. AutoScaling on Target Tracking es ideal para clústeres con una distribución uniforme de las cargas de trabajo en todas las dimensiones de fragmentos o réplicas. Tener una distribución no uniforme puede conducir a:

    • Escalado cuando no es necesario debido a un pico/caída de la carga de trabajo en algunas particiones o réplicas en almacenamiento activo.

    • Falta de escalado cuando sí es necesario debido a que la carga de trabajo media general se encuentra próxima al objetivo aunque tenga particiones o réplicas en el almacenamiento activo.

nota

Al ampliar el clúster, ElastiCache replicará automáticamente las funciones cargadas en uno de los nodos existentes (seleccionadas al azar) en los nuevos nodos. Si su clúster tiene Valkey o Redis OSS 7.0 o superior y su aplicación usa Functions, le recomendamos que cargue todas las funciones en todos los fragmentos antes de ampliarlos para que el clúster no acabe con funciones diferentes en los distintos fragmentos.

Tras registrarte, ten en cuenta lo AutoScaling siguiente:

  • Existen limitaciones en las configuraciones compatibles con Auto Scaling, por lo que recomendamos no cambiar la configuración de un grupo de reproducción que se haya registrado para Auto Scaling. A continuación se muestran algunos ejemplos:

    • Modificación manual del tipo de instancias a tipos no admitidos.

    • Asociación del grupo de reproducción a un almacén de datos global.

    • Cambio del parámetro ReservedMemoryPercent.

    • Aumento/disminución manual de particiones/réplicas más allá de la capacidad mínima y máxima configurada durante la creación de políticas.