Base de datos compatible con Apache Cassandra operada en Amazon Keyspaces - Primeros pasos con una base de datos de distribución amplia en serverless

Se opera de forma serverless una base de datos de columna ancha compatible con Apache Cassandra. Este artículo presenta la elección entre la capacidad bajo demanda y la aprovisionada y el diseño de la clave de partición.

Características de Keyspaces y diferencias con Cassandra

Keyspaces es un servicio de base de datos gestionado compatible con Apache Cassandra. Con CQL se crean tablas y se leen y escriben datos, y se pueden utilizar los controladores de Cassandra existentes (como DataStax Java Driver). Sin embargo, es necesario habilitar TLS al conectarse y, si se usa la autenticación de IAM, también se necesita una configuración adicional del plugin de autenticación SigV4. Dejan de ser necesarias la gestión de nodos, la aplicación de parches, el proceso de reparación y el ajuste de la compactación que requiere la operación de un clúster de Cassandra. Sin embargo, no todas las funciones de Cassandra son compatibles, y las funciones definidas por el usuario (UDF), las vistas materializadas, las funciones de agregación como SUM y AVG, entre otras, no son compatibles. Por otro lado, las escrituras condicionales con Lightweight Transactions (LWT) son totalmente compatibles. Antes de la migración, es necesario revisar la matriz de compatibilidad y verificar si las funciones de CQL que utiliza la aplicación son compatibles.

Modos de capacidad y diseño de particiones

El modo bajo demanda escala automáticamente según el volumen de solicitudes y no requiere una planificación previa de la capacidad. Es adecuado cuando los patrones de tráfico son difíciles de predecir y para entornos de desarrollo / pruebas. El modo aprovisionado permite especificar de antemano las unidades de capacidad de lectura/escritura y ajustarlas automáticamente con Auto Scaling. En entornos de producción con tráfico estable, el modo aprovisionado ofrece una mayor eficiencia de costes. El diseño de la clave de partición es tan importante como en Cassandra, y se elige una clave con alta cardinalidad que distribuya el acceso de manera uniforme. Como las particiones calientes provocan limitación (throttling), en los datos de series temporales se necesitan medidas como combinar un ID de bucket con la marca de tiempo en lugar de usar solo esta.

Seguridad y copias de seguridad

En Keyspaces, el cifrado en reposo está habilitado de forma predeterminada, y se puede elegir una clave administrada por AWS o una clave administrada por el cliente (KMS). Los datos en tránsito se cifran con TLS. El control de acceso se gestiona con políticas de IAM, y es posible configurar permisos detallados a nivel de tabla. Al habilitar la recuperación a un momento dado (PITR), se puede restaurar una tabla a cualquier segundo de los últimos 35 días. Esto es útil para recuperarse de eliminaciones de datos por error y de daños en los datos causados por errores de la aplicación. Por PITR se cobran cargos adicionales, pero se recomienda encarecidamente habilitarlo en entornos de producción.

Precios de Keyspaces

A continuación se indican los precios unitarios a fecha de agosto de 2026 / en la región de Tokio. El modo bajo demanda cuesta 0,1425 USD por cada millón de unidades de solicitud de lectura y 0,715 USD por cada millón de unidades de solicitud de escritura, y solo se factura la cantidad que realmente se lee y escribe. El modo aprovisionado es una facturación por horas de la capacidad reservada: 0,0001484 USD/hora por unidad de capacidad de lectura (RCU) y 0,000742 USD/hora por unidad de capacidad de escritura (WCU) (con un cálculo de 730 horas, unos 0,11 USD/mes por RCU y unos 0,54 USD/mes por WCU). El hecho de que el precio unitario de la escritura sea 5 veces el de la lectura es un elemento fácil de pasar por alto en el diseño de la capacidad. El almacenamiento cuesta 0,285 USD por GB al mes, y al habilitar PITR se suman 0,228 USD por GB al mes por los datos para la restauración. La eliminación automática con TTL también se factura aparte, a 0,315 USD por cada millón de eliminaciones. En comparación con DynamoDB, el planteamiento de la estructura de precios es parecido, y como a Keyspaces se accede con CQL, su ventaja es el bajo coste de migración (cambios en la aplicación) de las cargas de trabajo de Cassandra existentes. Además, durante los primeros 3 meses, 30 millones de unidades de solicitud de lectura y 30 millones de escritura al mes y 1 GB de almacenamiento están cubiertos por la capa gratuita.

Modelado de datos y diseño de consultas

En una base de datos de columna ancha como Keyspaces, el planteamiento del diseño es distinto del de las bases de datos relacionales. Lo básico es el enfoque «basado en consultas», en el que primero se deciden los patrones de consulta y luego se diseñan las tablas para adaptarse a ellos. La clave de partición, que determina cómo se distribuyen los datos, y las columnas de agrupación, que determinan el orden dentro de una partición, se diseñan según las búsquedas previstas. En muchos casos, la desnormalización, que mantiene juntos los datos necesarios, es más adecuada que la normalización. Como no se le dan bien las búsquedas posteriores con condiciones arbitrarias, identificar los patrones de acceso desde el principio y modelar en función de ellos es la condición previa para sacar partido del rendimiento.

Equilibrio entre coherencia y rendimiento

Keyspaces permite elegir el nivel de coherencia de las lecturas. Se elige la coherencia fuerte cuando se quiere leer siempre con seguridad el valor más reciente, y la coherencia relajada cuando se quiere tolerar cierto retraso y priorizar el rendimiento y la disponibilidad. Cuanto más fuerte es la coherencia, más coste tiene en tiempo de respuesta y carga, por lo que se usan según la naturaleza de los datos. Los conflictos cuando varios procesos actualizan los mismos datos a la vez se pueden evitar con escrituras condicionales mediante LWT. En Cassandra era habitual un diseño que evitaba usar LWT porque el proceso de consenso lo hace más lento, pero en Keyspaces LWT no tiene penalización de rendimiento y se puede usar igual que las escrituras normales. Diseñar teniendo presente el equilibrio entre la coherencia que se necesita y la latencia y el rendimiento es la clave para aprovechar de forma eficaz una base de datos de columna ancha.

Migración e integración de aplicaciones

Keyspaces es compatible con Cassandra, y se pueden utilizar el lenguaje de consulta para Cassandra (CQL) y los controladores existentes. La parte que hay que reescribir es la conexión: tras habilitar TLS, se añade el plugin de autenticación SigV4 si se usa la autenticación de IAM, o bien se emiten y configuran credenciales específicas del servicio. Aparte de esta configuración de conexión, es posible que se puedan migrar las aplicaciones de Cassandra existentes sin grandes cambios en el código. Sin embargo, como hay diferencias en algunas funciones y comportamientos, es importante comprobar antes de la migración si las funciones de las que depende la aplicación son compatibles. Como se opera de forma serverless, una gran ventaja es que desaparece el trabajo de construir / operar un clúster de Cassandra propio. Aprovechando la compatibilidad y verificando de antemano las diferencias en el alcance admitido, se puede lograr una migración fluida y una reducción de la carga operativa.

Operación y supervisión

Como Keyspaces es serverless, no es necesaria la gestión del clúster, como añadir nodos o aplicar parches. Se puede elegir si la capacidad se ajusta automáticamente bajo demanda o se aprovisiona según la carga prevista. En la operación, se supervisan el rendimiento de lectura y escritura y la aparición de limitaciones, y se comprueba si el acceso a las particiones está desequilibrado. Cuando el acceso se concentra en una partición concreta, el rendimiento llega a su techo, por lo que se busca la distribución mediante el diseño de claves. Las copias de seguridad continuas permiten restaurar a cualquier momento del pasado, de modo que se puede estar preparado ante errores de operación y fallos. Como la gestión requiere poco trabajo, se puede concentrar el esfuerzo en el diseño y la supervisión.

Resumen

Keyspaces es una base de datos serverless a la que se puede acceder con CQL compatible con Cassandra. Elimina la carga de la gestión del clúster y, con la capacidad bajo demanda, solo se cobra lo que se usa. Es útil para migrar a AWS las cargas de trabajo de Cassandra existentes y para construir nuevas cargas de trabajo adecuadas al modelo de datos de Cassandra.

Referencias (recursos oficiales de AWS)

Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.

Si esta página y la documentación oficial difieren, prevalece la documentación oficial.

Compartir