# Amazon ElastiCache

Amazon ElastiCache es un servicio de caché y almacenamiento de datos en memoria completamente administrado por Amazon Web Services (AWS). El servicio mejora el rendimiento de las aplicaciones web al recuperar información de cachés en memoria administrados, en lugar de depender completamente de bases de datos más lentas basadas en disco. ElastiCache admite dos motores de almacenamiento en caché en memoria de código abierto: Memcached y Redis (también llamado "ElastiCache para Redis").
Como servicio web que se ejecuta en la nube informática, Amazon ElastiCache está diseñado para simplificar la configuración, el funcionamiento y el escalado de las implementaciones de Memcached y Redis. Los procesos de administración complejos, como la aplicación de parches de software, la copia de seguridad y la restauración de conjuntos de datos y la adición o eliminación dinámica de capacidades, se gestionan automáticamente. El escalado de los recursos de ElastiCache se puede realizar mediante una única llamada a la API.
Amazon ElastiCache se lanzó por primera vez el 22 de agosto de 2011, compatible con memcached. A esto le siguió el soporte para instancias reservadas el 5 de abril de 2012 y Redis el 4 de septiembre de 2013.

## Usos

Como servicio de base de datos administrado con varios motores compatibles, Amazon ElastiCache tiene una amplia gama de usos, que incluyen

### Aceleración del rendimiento

Las limitaciones de la base de datos suelen ser un cuello de botella para el rendimiento de la aplicación. Al colocar Amazon ElastiCache entre una aplicación y su nivel de base de datos, se pueden acelerar las operaciones de la base de datos.

### Reducción de costo

El uso de ElastiCache para la aceleración del rendimiento de la base de datos puede reducir significativamente la infraestructura necesaria para respaldar la base de datos. En muchos casos, los ahorros de costos superan los costos de caché. Expedia pudo usar ElastiCache para reducir la capacidad aprovisionada de DynamoDB en un 90%, reduciendo el costo total de la base de datos en 6 veces.

### Procesamiento de datos de series temporales

Con el motor de Redis, ElastiCache puede procesar rápidamente datos de series de tiempo, seleccionando rápidamente los registros o eventos más nuevos o más antiguos dentro del rango de un punto en el tiempo.

### Tablas de clasificación

Las tablas de clasificación son una forma efectiva de mostrarle rápidamente a un usuario cuál es su posición actual dentro de un sistema gamificado. Para sistemas con una gran cantidad de jugadores, calcular y publicar los rangos de los jugadores puede ser un desafío. El uso de Amazon ElastiCache con el motor de Redis puede habilitar la alta velocidad a escala para las tablas de clasificación.

### Limitación de tasa

Algunas API solo permiten un número limitado de solicitudes por período de tiempo. El motor de Amazon ElastiCache para Redis puede usar contadores incrementales y otras herramientas para acelerar el acceso a la API para cumplir con las restricciones.

### Métricas clave de rendimiento

* Métricas de clientes (mide el volumen de conexiones y solicitudes de clientes): número de conexiones de clientes actuales a la memoria caché, comandos Get y Set recibidos por la memoria caché
* Rendimiento de caché: aciertos, errores, retraso de replicación, latencia
* Métricas de memoria: uso de memoria, desalojos, cantidad de memoria libre disponible en el host, uso de intercambio, índice de fragmentación de memoria
* Otras métricas a nivel de host: uso de la CPU, número de bytes leídos de la red por el host, número de bytes escritos en la red por el host

## Limitaciones

Como todo servicio de AWS, ElastiCache está diseñado para acceder exclusivamente desde AWS, aunque es posible conectar el servicio a aplicaciones y bases de datos que no están alojadas en AWS.

## Alternativas

Otros proveedores brindan servicios de caché de datos en la nube comparables a Amazon ElastiCache, incluidos Azure Cache for Redis, Redis Ltd (compañía detrás de código abierto Redis y Redis Enterprise), Redis To Go, IBM Compose, Oracle Application Container Cloud Service y Rackspace ObjectRocket .