Amazon ElastiCache es un servicio de almacenamiento en caché y almacenamiento de datos en memoria totalmente 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 basadas en disco más lentas. ElastiCache admite dos motores de almacenamiento en caché en memoria de código abierto: Memcached y Redis (también llamado "ElastiCache para Redis"). [2]
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 realización de copias de seguridad y la restauración de conjuntos de datos y la adición o eliminación dinámica de capacidades, se gestionan de forma automática. El escalado de los recursos de ElastiCache se puede realizar mediante una única llamada a la API . [3]
Amazon ElastiCache se lanzó por primera vez el 22 de agosto de 2011 [4] , con compatibilidad con Memcached. A esto le siguió la compatibilidad con instancias reservadas el 5 de abril de 2012 [5] y con Redis el 4 de septiembre de 2013. [6]
Como servicio de base de datos administrado con múltiples motores compatibles, Amazon ElastiCache tiene una amplia gama de usos, incluidos
Las limitaciones de las bases de datos suelen ser un obstáculo para el rendimiento de las aplicaciones. 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. [7]
El uso de ElastiCache para acelerar el rendimiento de la base de datos puede reducir significativamente la infraestructura necesaria para respaldar la base de datos. En muchos casos, el ahorro de costos supera los costos de caché. Expedia pudo usar ElastiCache para reducir la capacidad de DynamoDB aprovisionada en un 90 %, lo que redujo el costo total de la base de datos en 6 veces. [8] [9]
Utilizando el motor Redis, ElastiCache puede procesar rápidamente datos de series temporales , seleccionando rápidamente registros o eventos más nuevos o más antiguos dentro del rango de un punto en el tiempo. [10]
Las tablas de clasificación son una forma eficaz de mostrar rápidamente a un usuario dónde se encuentra actualmente dentro de un sistema gamificado. Para los sistemas con una gran cantidad de jugadores, calcular y publicar las clasificaciones de los jugadores puede ser un desafío. El uso de Amazon ElastiCache con el motor Redis puede permitir una alta velocidad a escala para las tablas de clasificación. [11]
Algunas API solo permiten una cantidad limitada de solicitudes por período de tiempo. El motor Amazon ElastiCache for Redis puede usar contadores incrementales y otras herramientas para limitar el acceso a la API y cumplir con las restricciones. [12]
Los programas pueden usar contadores incrementales para limitar las cantidades permitidas, como la cantidad máxima de estudiantes inscritos en un curso o garantizar que un juego tenga al menos 2 pero no más de 8 jugadores. El uso de contadores puede crear una condición de carrera en la que se permite una operación porque un contador no se actualizó de inmediato. El uso de las funciones de contador atómico de ElastiCache para Redis, donde una sola operación verifica e incrementa el valor del contador, evita las condiciones de carrera. [13]
ElastiCache para Redis admite patrones de publicación-suscripción , que permiten la creación de salas de chat y foros de mensajes donde los mensajes se distribuyen automáticamente a los usuarios interesados. [14]
Amazon ElastiCache puede utilizar nodos de caché bajo demanda o nodos de caché reservados.
Los nodos a pedido proporcionan capacidad de caché por hora, y los recursos en la nube de AWS se asignan cuando se aprovisiona un nodo de caché. El propietario puede retirar del servicio un nodo a pedido en cualquier momento. Cada mes, se le facturarán al propietario las horas utilizadas. [15]
Los nodos reservados requieren un compromiso de uno o tres años, que dedica recursos de caché al propietario. El costo por hora de los nodos reservados es significativamente menor que el costo por hora de los nodos a pedido. [16]
Una memoria caché eficiente puede aumentar significativamente el rendimiento de la aplicación y la velocidad de navegación del usuario. Amazon CloudWatch expone métricas de rendimiento de ElastiCache que se pueden rastrear. [17]
Muchas métricas de ElastiCache se pueden recopilar desde AWS a través de CloudWatch o directamente desde el motor de caché, ya sea Redis o Memcached, con una herramienta de monitoreo integrada con él: [18]
La consola de administración en línea es la forma más sencilla de monitorear ElastiCache con CloudWatch. Permite configurar alertas automáticas básicas y obtener una imagen visual de los cambios recientes en las métricas individuales.
Las métricas relacionadas con ElastiCache también se pueden recuperar mediante líneas de comandos. Se puede utilizar para verificaciones puntuales e investigaciones ad hoc.
La tercera forma de recopilar métricas de ElastiCache es a través de una herramienta de monitoreo dedicada que se integre con Amazon CloudWatch.
Los usuarios de Amazon ElastiCache incluyen Airbnb , [19] Expedia , [20] Zynga , [21] Tinder , [22] FanDuel , [23] y Mapbox [24]
Como servicio de AWS, ElastiCache está diseñado para ser accedido exclusivamente desde AWS, aunque es posible conectar el servicio a aplicaciones y bases de datos que no estén alojadas por AWS. [25]
Otros proveedores ofrecen servicios de caché de datos en la nube comparables a Amazon ElastiCache, incluidos Azure Cache for Redis, Redis Ltd (la empresa detrás de Redis y Redis Enterprise de código abierto), Redis To Go, IBM Compose , Oracle Application Container Cloud Service y Rackspace ObjectRocket .