Escalado de ElastiCache - Amazon ElastiCache

Escalado de ElastiCache

Puede escalar la caché de ElastiCache para adaptarla a sus necesidades. Las cachés sin servidor y los clústeres basados en nodos ofrecen varias opciones de escalado.

Escalado de ElastiCache Serverless

ElastiCache Serverless acomoda automáticamente el tráfico de carga de trabajo a medida que aumenta o disminuye. En todas las cachés de ElastiCache Serverless, ElastiCache hace un seguimiento continuo del uso de recursos como la CPU, la memoria y la red. Cuando alguno de estos recursos está limitado, ElastiCache Serverless se escala horizontalmente añadiendo una nueva partición y redistribuyendo los datos en la nueva partición, sin que la aplicación sufra periodos de inactividad. Puede controlar los recursos que consume la memoria caché en CloudWatch supervisando la métrica BytesUsedForCache del almacenamiento de datos en la caché y la métrica ElastiCacheProcessingUnits (ECPU) para el uso computacional.

Establecimiento de límites de escalado para administrar los costes

A fin de controlar el coste de la caché, puede configurar un uso máximo del almacenamiento de datos en caché y de la métrica ECPU/segundo para su caché. Si lo hace, se asegurará de que el uso de la memoria caché nunca supere el máximo configurado.

Si establece un escalado máximo, es posible que su aplicación disminuya el rendimiento de la caché cuando esta alcance el máximo. Cuando establezca un máximo de almacenamiento de datos en caché y alcance dicho máximo, ElastiCache empezará a expulsar los datos de la caché que tengan un tiempo de vida (TTL) establecido, empleando para ello la lógica LRU. Si no hay datos que se puedan expulsar, las solicitudes para escribir datos adicionales recibirán un mensaje de error por memoria insuficiente (OOM). Cuando establezca un máximo de ECPU/segundo y el uso computacional de la carga de trabajo supere ese valor, ElastiCache empezará a limitar las solicitudes.

Si configura un límite máximo en BytesUsedForCache o ElastiCacheProcessingUnits, es muy recomendable que configure una alarma de CloudWatch con un valor inferior al límite máximo, para que se le notifique cuando la memoria caché esté funcionando cerca de esos límites. Le recomendamos configurar una alarma al 75 % del límite máximo que haya establecido. Consulte la documentación sobre cómo configurar alarmas de CloudWatch.

Escalado previo con ElastiCache sin servidor

Escalado previo de ElastiCache sin servidor

Con el escalado previo, también denominado precalentamiento, puede establecer los límites mínimos admitidos para la caché de ElastiCache. Puede establecer estos mínimos para las unidades de procesamiento de ElastiCache (ECPU) por segundo o para el almacenamiento de datos. Esto puede resultar útil para prepararse para los eventos de escalado previstos. Por ejemplo, si una empresa de videojuegos prevé multiplicar por cinco el número de inicios de sesión en el primer minuto de lanzamiento de su nuevo juego, puede preparar su caché para este importante aumento de uso.

Puede realizar el escalado previo mediante la consola, la CLI o la API de ElastiCache. ElastiCache sin servidor actualiza las ECPU/segundo disponibles en la caché en 60 minutos y envía una notificación de evento cuando se completa la actualización del límite mínimo.

Funcionamiento del escalado previo

Cuando el límite mínimo de ECPU/segundo o almacenamiento de datos se actualiza mediante la consola, la CLI o la API, ese nuevo límite está disponible en 1 hora. ElastiCache sin servidor admite 30 000 ECPU/segundo en una caché vacía y hasta 90 000 ECPU/segundo cuando se utiliza la característica Lectura desde réplica. ElastiCache sin servidor para Valkey 8.0 puede duplicar las solicitudes por segundo (RPS) admitidas cada 2 o 3 minutos, alcanzando 5 millones de RPS por caché desde cero en menos de 13 minutos, con una latencia de lectura constante de p50 de menos de un milisegundo. Si prevé que un próximo evento de escalado podría superar esta velocidad, le recomendamos que ajuste el número mínimo de ECPU/segundo al máximo de ECPU/segundo que tiene previsto al menos 60 minutos antes del pico. De lo contrario, es posible que la aplicación experimente una latencia elevada y se limiten las solicitudes.

Cuando se complete la actualización del límite mínimo, ElastiCache sin servidor empezará a medir las nuevas ECPU mínimas por segundo o el nuevo almacenamiento mínimo. Esto se realiza incluso si la aplicación no ejecuta las solicitudes en la caché o si el uso del almacenamiento de datos es inferior al mínimo. Cuando se reduce el límite mínimo con respecto a su configuración actual, la actualización es inmediata, por lo que ElastiCache sin servidor empezará a medir el nuevo límite mínimo inmediatamente.

nota
  • Al establecer un límite de uso mínimo, se le cobrará por ese límite incluso si su uso real es inferior. El uso del almacenamiento de datos o ECPU que supere el límite de uso mínimo se cobrará a la tarifa normal. Por ejemplo, si establece un límite de uso mínimo de 100 000 ECPU/segundo, se le cobrará al menos 1,224 USD por hora (utilizando los precios de la ECPU en us-east-1), incluso si su uso es inferior al mínimo establecido.

  • ElastiCache sin servidor admite el escalado mínimo solicitado de forma agregada en la caché. ElastiCache sin servidor también admite un máximo de 30 000 ECPU/segundo por ranura (90 000 ECPU/segundo cuando se utiliza Lectura desde réplica mediante conexiones READONLY). Como práctica recomendada, la aplicación debe garantizar que la distribución de claves entre las ranuras de Valkey o Redis OSS y el tráfico entre las claves sea lo más uniforme posible.

Establecimiento de límites de escalado mediante la consola y la AWS CLI

Establecimiento de límites de escalado mediante la consola de AWS

  1. Inicie sesión en la Consola de administración de AWS y abra la consola de ElastiCache en https://console.aws.amazon.com/elasticache/.

  2. En el panel de navegación, elija el motor que se ejecuta en la caché que desea modificar.

  3. Aparecerá una lista de las cachés que ejecutan el motor elegido.

  4. Elija la caché que desee modificar seleccionando el botón de opción (a la izquierda del nombre de la caché).

  5. Elija Actions (Acciones) y después Modify (Modificar).

  6. En Límites de uso, establezca los límites de Memoria o Computación adecuados.

  7. Haga clic en Vista previa de los cambios y seleccione Guardar los cambios.

Establecimiento de límites de escalado mediante la AWS CLI

Para cambiar los límites de escalado mediante la CLI, utilice la API modify-serverless-cache.

Linux:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'

Windows:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'

Eliminación de los límites de escalado mediante la CLI

Para eliminar los límites de escalado mediante la CLI, establezca los parámetros Límite máximo y Límite mínimo en 0.

Linux:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'

Windows:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'