Características de Amazon MemoryDB
Amazon MemoryDB es un servicio de base de datos en memoria duradero y compatible con Redis OSS que ofrece un rendimiento ultrarrápido. Está especialmente diseñado para aplicaciones modernas con arquitecturas de microservicios.
Amazon MemoryDB es compatible con Redis OSS, lo cual permite a los clientes crear aplicaciones rápidamente con las mismas estructuras de datos flexibles y sencillas, las API y los comandos de Redis OSS que se utilizan en la actualidad. Con Amazon MemoryDB, todos sus datos se almacenan en la memoria, lo que le permite lograr una latencia de lectura de microsegundos y una latencia de escritura de milisegundos de un solo dígito y un alto rendimiento. Amazon MemoryDB también almacena datos de forma duradera en varias zonas de disponibilidad (AZ) mediante un registro transaccional distribuido para permitir una rápida conmutación por error, recuperación de bases de datos y reinicios de nodos. Amazon MemoryDB ofrece rendimiento en memoria y durabilidad Multi-AZ, y puede utilizarse como base de datos primaria de alto rendimiento para sus aplicaciones de microservicios, lo que permite eliminar la necesidad de administrar por separado la memoria en caché y una base de datos duradera.
Compatibilidad con Redis OSS
Redis OSS es un almacén en memoria de datos de pares clave-valor rápido y de código abierto. Los desarrolladores utilizan Redis OSS para obtener tiempos de respuesta inferiores al milisegundo, lo que permite que se procesen millones de solicitudes por segundo para aplicaciones en tiempo real del sector, como videojuegos, tecnología publicitaria, servicios financieros, sanidad e IoT.
Redis OSS ofrece API, comandos y estructuras de datos flexibles, como secuencias, conjuntos y listas, para crear aplicaciones ágiles y versátiles. MemoryDB mantiene la compatibilidad con Redis OSS y admite el mismo conjunto de tipos de datos, parámetros y comandos de Redis OSS que ya conoce. Esto significa que el código, las aplicaciones, los controladores y las herramientas que ya utiliza con Redis OSS pueden utilizarse con MemoryDB para que pueda crear aplicaciones rápidamente.
Rendimiento ultrarrápido
MemoryDB almacena todo su conjunto de datos en la memoria para ofrecer una latencia de lectura de microsegundos, una latencia de escritura de milisegundos de un solo dígito y un alto nivel de rendimiento. Puede gestionar más de 13 billones de solicitudes por día y admite picos de 160 millones de solicitudes por segundo. Los desarrolladores que utilizan arquitecturas de microservicios requieren un rendimiento extremadamente alto, ya que estas aplicaciones pueden implicar interacciones con muchos componentes de los servicios por cada interacción del usuario o llamada a la API. MemoryDB proporciona una latencia extremadamente baja para ofrecer rendimiento en tiempo real a los usuarios finales.
Amazon MemoryDB incluye la multiplexación mejorada de E/S, que ofrece optimizaciones significativas en el rendimiento y la latencia a escala. La multiplexación de E/S mejorada es ideal para las cargas de trabajo vinculadas al rendimiento con varias conexiones de clientes y sus beneficios escalan según el nivel de simultaneidad de cargas de trabajo. Por ejemplo, al utilizar el nodo r6g.4xlarge y ejecutar 5200 clientes simultáneos, puede lograr un aumento de hasta un 46 % en el rendimiento (operaciones de lectura y escritura por segundo) y una disminución de hasta un 21 % en la latencia de P99, en comparación con la versión 6 de MemoryDB compatible con Redis OSS. Para estos tipos de cargas de trabajo, el procesamiento de E/S de red de un nodo puede convertirse en un factor limitante en la capacidad de escalar.
Con la multiplexación mejorada de E/S, cada subproceso de E/S dedicado canaliza comandos de varios clientes al motor de Redis OSS y saca partido de la capacidad de Redis OSS para procesar comandos en lotes de manera eficiente, tal como se muestra en el diagrama siguiente:
La multiplexación mejorada de E/S está disponible automáticamente cuando se usa Redis OSS 7 sin costo adicional. No se requieren cambios en la configuración de aplicaciones o servicios para usar la multiplexación mejorada de E/S de MemoryDB.
Para obtener más información, consulte la documentación.
Durabilidad Multi-AZ
Además de almacenar todo el conjunto de datos en la memoria, MemoryDB utiliza un registro transaccional distribuido para proporcionar durabilidad, consistencia y capacidad de recuperación de los datos. MemoryDB almacena los datos en varias zonas de disponibilidad para que pueda lograr una recuperación y un reinicio rápidos de la base de datos. Puede utilizar MemoryDB como el único servicio principal de base de datos para sus cargas de trabajo que requieren baja latencia y alto nivel de rendimiento, en lugar de administrar por separado una caché para la velocidad y una base de datos relacional o no relacional adicional para la fiabilidad.
Escalabilidad
Puede escalar su clúster de MemoryDB para satisfacer las demandas cambiantes de la aplicación de forma horizontal, por medio de la incorporación o la eliminación de nodos, o de forma vertical, por medio de tipos de nodos más grandes o más pequeños. MemoryDB admite el escalado de la escritura mediante la fragmentación y el escalado de la lectura mediante la adición de réplicas. Su clúster continúa en línea y admite operaciones de lectura y escritura durante las operaciones de ajuste de tamaño.
Administración total
Facilidad de uso
Comenzar a utilizar MemoryDB es sencillo. Solo tiene que lanzar un clúster de MemoryDB nuevo con la consola de administración de AWS o con la AWS CLI o el SDK. Las instancias de base de datos de MemoryDB están preconfiguradas con los parámetros y los ajustes adecuados para el tipo de nodo seleccionado. Puede iniciar el clúster y conectar su aplicación en cuestión de minutos sin realizar configuraciones adicionales.
Monitoreo y métricas
MemoryDB provee métricas de Amazon CloudWatch para sus instancias de base de datos. Puede utilizar la consola de administración de AWS para ver más de 35 métricas operativas clave del clúster, que incluyen la computación, la memoria, el almacenamiento, el rendimiento y las conexiones activas, entre otras.
Parches de software automáticos
MemoryDB mantiene sus clústeres al día de forma automática con las actualizaciones nuevas. Puede actualizar fácilmente sus clústeres a las últimas versiones de Redis OSS.
Seguridad
Redes
MemoryDB se ejecuta en Amazon VPC, lo que le permite aislar la base de datos en su propia red virtual y conectarse a la infraestructura de TI en las instalaciones con VPN con IPsec cifradas estándar del sector. Además, con la configuración de la VPC de MemoryDB, puede establecer los parámetros del firewall y controlar el acceso de red a las instancias de base de datos.
Cifrado
Con MemoryDB, los datos en reposo se cifran con claves que usted crea y controla mediante AWS Key Management Service (KMS). Además, los clústeres creados con los tipos de nodos de AWS Graviton2 incluyen un cifrado DRAM de 256 bits de funcionamiento continuo. MemoryDB admite el cifrado en tránsito mediante la seguridad de la capa de transporte (TLS).
Permisos de la API
Mediante el uso de las características de AWS Identity and Access Management (IAM) integradas con Amazon MemoryDB, puede controlar las acciones que sus usuarios y grupos de AWS IAM pueden realizar en los recursos de Amazon MemoryDB. Por ejemplo, puede configurar las reglas de IAM para poder garantizar que determinados usuarios únicamente tengan acceso de solo lectura, mientras que el administrador pueda crear, modificar y eliminar recursos. Para obtener más información acerca de los permisos a nivel de API, consulte Using AWS IAM Policies for Amazon MemoryDB (Cómo usar las políticas de AWS IAM en Amazon MemoryDB).
Autenticación y autorización
MemoryDB utiliza las listas de control de acceso (ACL) de Redis OSS para controlar tanto la autenticación como la autorización de su clúster. Las ACL le permiten definir diferentes permisos para diferentes usuarios en el mismo clúster.
Integración con Kubernetes
AWS Controllers for Kubernetes (ACK) para Amazon MemoryDB permite definir y utilizar los recursos de MemoryDB directamente desde el clúster de Kubernetes. Esto permite aprovechar MemoryDB para admitir las aplicaciones de Kubernetes sin necesidad de definir los recursos de MemoryDB fuera del clúster o ejecutar y administrar las capacidades de la base de datos en memoria dentro del clúster. Puede descargar la imagen de contenedor de MemoryDB ACK desde Amazon ECR y consultar la documentación para llevar a cabo la instalación. También puede visitar el blog para obtener información más detallada.
Nota: ACK para Amazon MemoryDB ya está disponible para el público general. Envíenos sus comentarios a nuestra página de GitHub.
Compatibilidad con JSON
Amazon MemoryDB ofrece compatibilidad nativa para documentos de notación de objetos JavaScript (JSON), además de las estructuras de datos incluidas en Redis OSS, sin costo adicional. Puede simplificar el desarrollo de aplicaciones mediante el uso de los comandos integrados diseñados y optimizados para los documentos JSON. MemoryDB admite actualizaciones parciales de documentos JSON, así como búsqueda y filtrado eficientes mediante el lenguaje de consulta JSONPath. La compatibilidad con JSON está disponible cuando se utiliza Redis OSS 6.2 y superior. Para obtener más información, consulte la documentación de MemoryDB.
Búsqueda vectorial
Desde el 26 de junio de 2024, Amazon MemoryDB ofrece el rendimiento de búsqueda vectorial más rápido con las tasas de recuperación más altas entre las bases de datos vectoriales más populares de AWS. Con la búsqueda vectorial para MemoryDB, puede almacenar millones de incrustaciones vectoriales, realizar búsquedas vectoriales de un solo dígito en milisegundos y actualizar las latencias con una recuperación de más del 99 % con los niveles más altos de rendimiento.
Los vectores son representaciones numéricas de datos no estructurados, como texto, imágenes y videos, creadas a partir de modelos de machine learning (ML) que ayudan a capturar el significado semántico de los datos subyacentes. MemoryDB permite que los modelos de ML e inteligencia artificial (IA) generativa funcionen con los datos almacenados en MemoryDB en tiempo real sin tener que moverlos. Con MemoryDB, puede almacenar, indexar, recuperar y buscar incrustaciones vectoriales en las estructuras de datos de Redis OSS. Puede almacenar incrustaciones vectoriales de modelos de IA/MNL, como los de Amazon Bedrock y Amazon SageMaker, en su base de datos de MemoryDB. Lea nuestra documentación para obtener más información sobre la búsqueda vectorial en MemoryDB.
La búsqueda vectorial de MemoryDB es adecuada para casos de uso en los que el rendimiento máximo es el criterio de selección más importante. Puede utilizar la búsqueda vectorial para impulsar aplicaciones de ML e IA generativa en tiempo real en casos prácticos como la retrieval augmented generation (RAG, generación aumentada por recuperación) para bots de chat, la detección de anomalías (fraudes), los motores de recomendaciones en tiempo real y la recuperación de documentos.
Optimización de costos
MemoryDB ofrece niveles de datos cómo una forma más económica de escalar sus clústeres hasta cientos de terabytes de capacidad. Los niveles de datos brindan una opción de precio-rendimiento para MemoryDB al utilizar unidades de estado sólido (SSD) de menor costo en cada nodo de clúster, además de almacenar datos en memoria. Es ideal para cargas de trabajo que acceden a hasta un 20 % de sus conjuntos de datos generales de manera habitual, y para aplicaciones que puedan tolerar una latencia adicional al acceder a datos ubicados en la SSD.
Cuando se utilizan clústeres con niveles de datos, MemoryDB está diseñado para mover, de forma transparente y automática, los elementos utilizados hace más tiempo de la memoria a las SSD basadas en NVMe adjuntas localmente una vez que la capacidad de memoria disponible se haya consumido. Cuando accede a un elemento almacenado en SSD, MemoryDB lo devuelve a la memoria antes de entregar la solicitud. La organización de niveles de datos de MemoryDB está disponible en los nodos R6gd basados en Graviton2. Los nodos R6gd tienen casi cinco veces más de capacidad total (memoria + SSD) y pueden ayudarlo a lograr ahorros de costo de almacenamiento de alrededor del 60 % cuando se ejecutan con un uso máximo en comparación con los nodos R6g (solo memoria). Al asumir valores de cadena de 500 bytes, normalmente puede esperar una latencia adicional de 450 µs para solicitudes de lectura de datos almacenados en el SSD, en comparación con solicitudes de lectura de datos almacenados en la memoria.
MemoryDB cuenta con nodos reservados que le permiten ahorrar hasta un 55 % en comparación con los precios de los nodos bajo demanda a cambio de un compromiso de uso durante un período de uno o tres años. Los nodos reservados son complementarios a los nodos bajo demanda de MemoryDB y ofrecen flexibilidad a las empresas para ayudar a reducir los costos. MemoryDB ofrece tres opciones de pago para los nodos reservados (Sin pago inicial, Pago inicial parcial y Pago inicial total) a los fines de equilibrar el importe del pago inicial con el precio por hora real.
Los nodos reservados de MemoryDB ofrecen flexibilidad de tamaño dentro de una familia de nodos y una región de AWS. Esto significa que la tarifa de nodos reservados con descuento se aplicará automáticamente al uso de todos los tamaños en la misma familia de nodos. La capacidad de flexibilidad de tamaño reduce el tiempo que tendrá que dedicar a administrar sus nodos reservados y, dado que ya no está sujeto a un tamaño de nodo de base de datos específico, podrá aprovechar al máximo su descuento incluso si su base de datos necesita actualizaciones.
Conozca las opciones de precios de MemoryDB.
Descubra cómo configurar su primer clúster de MemoryDB.
Consulte la guía del usuario de MemoryDB para empezar.