Características de Amazon DynamoDB

¿Por qué DynamoDB?

Amazon DynamoDB es un servicio de base de datos NoSQL sin servidor que admite modelos de datos de clave-valor y de documentos. Los desarrolladores pueden usar DynamoDB para crear aplicaciones modernas y sin servidor que pueden empezar de a poco y escalar de forma global. DynamoDB se escala para admitir tablas de casi cualquier tamaño con escalado horizontal automatizado.

La disponibilidad, durabilidad y tolerancia a errores están integradas y no se pueden deshabilitar, por lo que no es necesario estructurar sus aplicaciones para estas capacidades.

DynamoDB se ha diseñado para ejecutar aplicaciones de alto rendimiento a escala de Internet que sobrecargarían las bases de datos relacionales tradicionales. Con más de diez años de inversión pionera en innovación, DynamoDB ofrece una escalabilidad ilimitada con un rendimiento uniforme de milisegundos de un solo dígito y una disponibilidad de hasta el 99,999 %.

Para obtener más información sobre las nuevas características y capacidades, vaya a los anuncios de novedades de DynamoDB.

Rendimiento sin servidor con escalabilidad ilimitada

DynamoDB admite modelos de datos de clave-valor y de documentos, Como base de datos NoSQL, DynamoDB tiene un esquema flexible para que cada elemento pueda tener muchos atributos diferentes. Este tipo de esquema le permite adaptarse fácilmente cuando cambien los requisitos de su negocio, sin tener que volver a definir el esquema de tablas como ocurre con las bases de datos relacionales.

Con DynamoDB, no hay servidores que aprovisionar, parchear o administrar, y no hay software que instalar, mantener o utilizar. DynamoDB no tiene versiones (principal, secundaria ni parche), no hay ventanas de mantenimiento y ofrece un mantenimiento sin tiempo de inactividad. Los precios bajo demanda de DynamoDB ofrecen precios de pago por uso, se escalan a cero y escalan automáticamente las tablas para ajustar la capacidad y mantener el rendimiento sin necesidad de administración.

DynamoDB se ha diseñado para cargas de trabajo esenciales, incluida la compatibilidad con transacciones de atomicidad, coherencia, aislamiento y durabilidad (ACID) para aplicaciones que requieren una lógica empresarial compleja. DynamoDB proporciona compatibilidad nativa en el servidor con las transacciones, lo que simplifica la experiencia de los desarrolladores que hacen cambios coordinados de “todo o nada” en varios elementos y distintas tablas.

DynamoDB admite 100 acciones por transacción, lo que mejora la productividad de los desarrolladores. Gracias a la compatibilidad con las transacciones, los desarrolladores pueden incorporar la escalabilidad, el rendimiento y los beneficios empresariales de DynamoDB a un conjunto mayor de cargas de trabajo críticas.

Las tablas globales de DynamoDB proporcionan una replicación activa-activa de sus datos en las regiones de AWS que elija con una disponibilidad del 99,999 %. Las tablas globales son multiactivas, lo que significa que puede leer y escribir desde cualquier réplica, y las aplicaciones distribuidas globalmente pueden acceder a los datos de manera local en las regiones seleccionadas para obtener un rendimiento de lectura y escritura de milisegundos de un solo dígito.

Además, las tablas globales escalan automáticamente la capacidad para adaptarse a sus cargas de trabajo multirregionales. Las tablas globales mejoran la resiliencia multirregional de su aplicación y deben considerarse parte de la estrategia de continuidad empresarial de su organización.

DynamoDB Streams es una capacidad de captura de datos de cambios. Cada vez que una aplicación crea, actualiza o elimina elementos de una tabla, DynamoDB Streams registra una secuencia ordenada en el tiempo de cada cambio de elemento casi en tiempo real, por lo que resulta ideal para que las aplicaciones de arquitectura basadas en eventos consuman los cambios y los ejecuten. Todos los cambios se duplican y se almacenan durante 24 horas.

Las aplicaciones también pueden acceder a este registro y ver los elementos de datos tal y como aparecían antes y después de su modificación casi en tiempo real. DynamoDB Streams garantiza que cada registro de transmisión aparezca exactamente una vez en la transmisión y, para cada elemento modificado, los registros de transmisión aparecen en la misma secuencia que las modificaciones reales del elemento.

Al igual que en todos los demás sistemas de bases de datos, se empieza por crear una tabla que es una colección de elementos. Con DynamoDB, cada elemento de la tabla tiene su propia clave principal. Muchas aplicaciones también pueden beneficiarse de tener una o más claves secundarias para buscar datos de manera más eficiente utilizando otros atributos. DynamoDB ofrece la opción de crear índices secundarios globales y locales, lo que le permite consultar los datos de la tabla mediante una clave secundaria o alternativa.

Los índices secundarios también se conocen como índices dispersos. Además de ofrecerle la máxima flexibilidad a la hora de acceder a sus datos, puede aprovisionar un rendimiento de escritura inferior con un rendimiento excelente a un costo menor.

Seguridad y fiabilidad

Con DynamoDB, no hay nombres de usuario ni contraseñas. DynamoDB utiliza AWS Identity and Access Management (IAM) para autenticar y crear recursos, así como acceder a ellos. Puede especificar las políticas de IAM, las políticas basadas en los recursos y las condiciones que permitan un acceso detallado y restrinjan el acceso de lectura o de escritura a los elementos y los atributos específicos de una tabla según la identidad del usuario. Esto permite a los clientes aplicar las políticas de seguridad a nivel de código.

DynamoDB cifra todos los datos en reposo del cliente de forma predeterminada. El cifrado en reposo aumenta la seguridad de sus datos por medio de claves de cifrado almacenadas en AWS Key Management Service (AWS KMS). Con la incorporación del SDK de cifrado de bases de datos de AWS, puede llevar a cabo un cifrado por atributos para reforzar aún más el control de acceso granular a los datos de su tabla. DynamoDB ayuda a crear aplicaciones sensibles a la seguridad que cumplan estrictos requisitos normativos y de conformidad de cifrado.

Las claves de cifrado proporcionan una capa adicional de protección de datos al protegerlos del acceso no autorizado al almacenamiento subyacente. Puede especificar si DynamoDB debe utilizar una clave propiedad de AWS (tipo de cifrado predeterminado), una clave administrada por AWS o una clave administrada por el cliente para cifrar los datos de los usuarios. Se proporciona el cifrado predeterminado que utiliza claves de AWS KMS sin cargo adicional.

La recuperación en un momento dado (PITR) ayuda a proteger las tablas de DynamoDB de operaciones accidentales de escritura o eliminación. PITR proporciona copias de seguridad continuas de los datos de las tablas de DynamoDB, y puede restaurar las tablas a cualquier punto en el tiempo hasta el segundo durante los 35 días anteriores.

La PITR no utiliza una capacidad aprovisionada y no afecta al rendimiento ni a la disponibilidad de las aplicaciones. Puede habilitar la PITR o iniciar las operaciones de copia de seguridad y restauración con un solo paso en la Consola de administración de AWS o con una sola llamada a la API.

La copia de seguridad y la restauración bajo demanda permiten crear copias de seguridad completas de los datos de las tablas de DynamoDB para archivarlos, lo que le resultará útil para cumplir requisitos normativos corporativos y gubernamentales. Puede crear copias de seguridad de las tablas con unos pocos megabytes a cientos de terabytes de datos, sin que esto afecte al rendimiento ni a la disponibilidad de las aplicaciones de producción. Con la integración de AWS Backup, también puede copiar copias de seguridad bajo demanda entre cuentas y regiones, crear etiquetas de asignación de costos para las copias de seguridad y completar la transición de las copias de seguridad al almacenamiento en frío.

DynamoDB es compatible con los puntos de conexión de la nube privada virtual (VPC) de puerta de enlace y los puntos de conexión de VPC de la interfaz para las conexiones en una VPC o desde centros de datos en las instalaciones. Puede configurar la conectividad de la red privada desde las aplicaciones locales a DynamoDB a través de los puntos de enlace de VPC de interfaz habilitados con AWS PrivateLink. Esto permite a los clientes simplificar la conectividad privada con DynamoDB y cumplir con las normas.

Rentabilidad

DynamoDB proporciona modos de capacidad para cada tabla: bajo demanda y aprovisionada.

  • En el caso de las cargas de trabajo que son menos predecibles y cuyo grado de utilización es desconocido, el modo de capacidad bajo demanda se encarga de administrar la capacidad y solo se paga por lo que consume.
  • Se debe establecer una capacidad de lectura y escritura para las tablas que utilizan el modo de capacidad aprovisionada. El modo de capacidad aprovisionada es más rentable cuando sabe que hará un uso razonable de la capacidad aprovisionada que especifique. 

Para las tablas que utilizan el modo de capacidad bajo demanda, DynamoDB acomoda al instante las cargas de trabajo cuando aumentan o se reducen hasta el nivel de tráfico alcanzado previamente. Si el nivel de tráfico de una carga de trabajo alcanza un nuevo nivel máximo, DynamoDB se adapta rápidamente para acomodar la carga de trabajo. Si lo desea, también puede configurar el rendimiento máximo de lectura o escritura (o ambos) para las tablas bajo demanda individuales y los índices secundarios asociados, lo que facilita el equilibrio entre los costos y el rendimiento. Puede usar el modo de capacidad bajo demanda para las tablas nuevas y existentes, y puede seguir usando las API de DynamoDB existentes sin cambiar el código.

Para los datos a los que se accede con poca frecuencia, puede utilizar la clase de tabla de Amazon DynamoDB estándar, acceso poco frecuente, que ayuda a reducir los costos de Amazon DynamoDB hasta en un 60 %. Las tablas estándar acceso poco frecuente reducen el costo de almacenamiento y se han diseñado para el almacenamiento a largo plazo de datos a los que se accede con poca frecuencia, como registros de aplicaciones, datos históricos de videojuegos, publicaciones antiguas en redes sociales y más. Tiene la misma disponibilidad, durabilidad y rendimiento que las tablas Amazon DynamoDB Standard, que es la opción predeterminada y más rentable para la mayoría de las cargas de trabajo.

Para las tablas que utilizan la capacidad aprovisionada, DynamoDB ofrece escalado automático del rendimiento y el almacenamiento en función de la capacidad definida previamente mediante la supervisión del rendimiento de su aplicación.

  • Si el tráfico de la aplicación aumenta, DynamoDB aumenta el rendimiento para adaptarse a la carga.
  • Si el tráfico de su aplicación disminuye, DynamoDB reduce la capacidad para que pague menos por la capacidad no utilizada.

Integraciones con los servicios de AWS

La importación y exportación masivas desde Amazon Simple Storage Service (Amazon S3) ayuda a generar más valor con los datos, ya que elimina la necesidad de escribir código para mover, transformar y copiar las tablas de DynamoDB de una aplicación, cuenta o región a otra. La importación y exportación masivas no utiliza la capacidad de lectura o escritura de la tabla, por lo que no es necesario planificar ni proporcionar capacidad adicional. DynamoDB administra en su totalidad el proceso de importación y exportación masivas.

Las importaciones masivas desde Amazon S3 le permiten importar datos a cualquier escala, desde megabytes hasta terabytes mediante el uso de formatos compatibles, como CSV, DynamoDB JSON y Amazon Ion. Con las importaciones masivas desde Amazon S3, los clientes pueden ahorrar hasta un 66 % en comparación con las escrituras basadas en clientes que utilizan la capacidad aprovisionada.

Con las exportaciones masivas a Amazon S3, puede exportar datos de tablas con la función de recuperación en un momento dado (PITR) habilitada para cualquier momento de los últimos 35 días con una granularidad por segundo. Una vez que exporte los datos de DynamoDB a Amazon S3, podrá utilizar otros servicios de AWS, como Amazon Athena y Amazon SageMaker, entre otros, para analizar los datos y extraer información útil.

Amazon Kinesis Data Streams para DynamoDB captura los cambios de cada elemento en las tablas de DynamoDB para impulsar los paneles en tiempo real, generar métricas y enviar datos a los lagos de datos. Esta característica permite crear aplicaciones de streaming avanzadas, como agregación de registros en tiempo real, análisis empresarial en tiempo real y captura de datos de IoT.

A través de Kinesis Data Streams, también puede usar Amazon Kinesis Data Firehose para distribuir datos de DynamoDB de forma automática a otros servicios de AWS, como Amazon S3, Amazon OpenSearch Service y Amazon Redshift.

Para supervisar fácilmente el rendimiento de la base de datos, DynamoDB se ha integrado con Amazon CloudWatch, que recopila y procesa datos de rendimiento de la base de datos que no se han procesado. Puede utilizar CloudWatch para crear vistas y paneles personalizados de métricas y alarmas para las bases de datos de DynamoDB. Se ofrece esta capacidad de supervisión de forma predeterminada y es gratuita. También puede crear alarmas que se le envíen automáticamente en función del rendimiento de las métricas.

La información de colaboradores de Amazon CloudWatch le ayuda a identificar rápidamente quién o qué está afectando al rendimiento de sus bases de datos y aplicaciones. Esta capacidad facilita el aislamiento, el diagnóstico y la solución de problemas durante un evento operativo con mayor rapidez.

Preguntas frecuentes

Algunas de las ventajas únicas de DynamoDB son que es una base de datos sin servidor comprobada, totalmente administrada y escalable a cero que proporciona un rendimiento de milisegundos de un solo dígito y una disponibilidad de hasta el 99,999 %. Con su rendimiento constante a escala, DynamoDB también ofrece la seguridad, durabilidad y fiabilidad integradas que se necesitan para las aplicaciones globales con los requisitos más estrictos.

Gracias a su facilidad de uso, DynamoDB suele elegirse tanto para aplicaciones nuevas y modernas como para aplicaciones de escalamiento de Internet consolidadas que buscan un rendimiento rápido y constante con una escalabilidad ilimitada.

DynamoDB se ha diseñado para desarrolladores y, dado que no tiene servidor, es sencillo de configurar mediante nuestra documentación técnica.