Características de Amazon MemoryDB

¿Por qué elegir MemoryDB?

Amazon MemoryDB es un servicio de base de datos en memoria duradero y compatible con Valkey y Redis OSS que ofrece un rendimiento ultrarrápido. Está especialmente diseñado para aplicaciones modernas con arquitecturas de microservicios.

MemoryDB es compatible con Valkey y Redis OSS, lo cual permite a los clientes crear aplicaciones rápidamente con las mismas estructuras de datos flexibles y sencillas, así como con las API y los comandos de Valkey y Redis OSS que se utilizan en la actualidad. Con MemoryDB, todos sus datos se almacenan en la memoria, lo que permite una latencia de lectura de microsegundos y una latencia de escritura de milisegundos de un solo dígito y un alto rendimiento. 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. MemoryDB ofrece rendimiento en memoria y durabilidad Multi-AZ y puede utilizarse como base de datos primaria de alto rendimiento para las 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 Valkey y Redis OSS

Valkey y Redis OSS son almacenes en memoria de datos de pares clave-valor rápidos y de código abierto. Los desarrolladores utilizan Valkey y 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. 

Valkey y Redis OSS ofrecen API, comandos y estructuras de datos flexibles, como secuencias, conjuntos y listas, para crear aplicaciones ágiles y versátiles. MemoryDB mantiene la compatibilidad con Valkey y Redis OSS y admite el mismo conjunto de tipos de datos, parámetros y comandos de Valkey y Redis OSS que ya conoce. Esto significa que el código, las aplicaciones, los controladores y las herramientas que ya utiliza con Valkey y 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. Con MemoryDB, accede a una latencia extremadamente baja para ofrecer rendimiento en tiempo real a los usuarios finales.

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 a los motores de Valkey y Redis OSS y saca partido de la capacidad de Valkey y Redis OSS para procesar comandos en lotes de manera eficiente.

Durabilidad Multi-AZ

Además de almacenar todo el conjunto de datos en la memoria, MemoryDB utiliza un registro transaccional distribuido para ofrecer durabilidad, coherencia 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.

Completamente administrado

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.

MemoryDB ofrece métricas de Amazon CloudWatch para sus instancias de base de datos. Puede utilizar la consola 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.

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 Valkey y Redis OSS.

Seguridad

MemoryDB se ejecuta en Amazon Virtual Private Cloud (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 de la industria. Además, con la configuración de la VPC en MemoryDB, puede establecer los parámetros del firewall y controlar el acceso de red a las instancias de base de datos.

Con MemoryDB, los datos en reposo se cifran con claves que usted crea y controla a través de AWS Key Management Service (AWS 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 es compatible con el cifrado en tránsito con la seguridad de la capa de transporte (TLS).

Con el uso de las características de AWS Identity and Access Management (IAM) integradas con MemoryDB, puede controlar las acciones que sus usuarios y grupos de IAM pueden realizar en los recursos de 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 sobre los permisos de nivel de API, consulte Using IAM Policies for MemoryDB.

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 habilitan la definición de distintos permisos para diferentes usuarios en el mismo clúster.

Integración con Kubernetes

Los Controladores de AWS para Kubernetes (ACK) para Amazon MemoryDB permiten 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 Elastic Container Registry (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 MemoryDB ya está disponible para el público general. Envíenos sus comentarios a nuestra página de GitHub.

 

Compatibilidad con JSON

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 Valkey y Redis OSS 6.2 y superior. Para obtener más información, consulte la documentación de MemoryDB.

Optimización de costos

MemoryDB ofrece niveles de datos como 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 las 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), los cuales permiten 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.