¿Qué es Amazon DynamoDB? - Amazon DynamoDB

¿Qué es Amazon DynamoDB?

Amazon DynamoDB es una base de datos NoSQL sin servidor completamente administrada con un rendimiento de milisegundos de un solo dígito a cualquier escala.

DynamoDB satisface sus necesidades para superar las complejidades operativas y de escalado de las bases de datos relacionales. DynamoDB está diseñado específicamente y optimizado para las cargas de trabajo operativas que requieren un rendimiento uniforme a cualquier escala. Por ejemplo, DynamoDB ofrece un rendimiento uniforme en milisegundos de un solo dígito en un caso de uso de un carrito de la compra, independientemente de si tiene 10 o 100 millones de usuarios. Lanzado en 2012, DynamoDB sigue ayudándole a dejar de usar bases de datos relacionales al tiempo que reduce los costos y mejora el rendimiento a escala.

Clientes de todos los tamaños, sectores y regiones geográficas utilizan DynamoDB para crear aplicaciones modernas sin servidor que puedan empezar con pocos recursos y escalarse en todo el mundo. DynamoDB se escala para admitir tablas de prácticamente cualquier tamaño y, al mismo tiempo, proporciona un rendimiento uniforme de milisegundos de un solo dígito y alta disponibilidad.

Para eventos como el Amazon Prime Day, DynamoDB potencia numerosas instalaciones y sistemas de Amazon con mucho tráfico, como Alexa, los sitios de Amazon.com y todos los centros logísticos de Amazon. Para este tipo de eventos, las API de DynamoDB han gestionado billones de llamadas desde las instalaciones y los sistemas de Amazon. DynamoDB atiende continuamente a cientos de clientes con tablas que tienen un tráfico máximo de más de medio millón de solicitudes por segundo. También atiende a cientos de clientes cuyos tamaños de tabla superan los 200 TB y procesa más de mil millones de solicitudes por hora.

Características de DynamoDB

Sin servidor

Con DynamoDB, no necesita aprovisionar ningún servidor ni aplicar parches, administrar, instalar, mantener ni operar ningún software. DynamoDB proporciona mantenimiento sin ningún tiempo de inactividad. No tiene versiones (principal, secundaria o de parche) y no hay periodos de mantenimiento.

El modo de capacidad bajo demanda de DynamoDB ofrece precios de pago por uso para las solicitudes de lectura y escritura, por lo que solo pagará por lo que utilice. Con la característica bajo demanda, DynamoDB escala o reduce verticalmente al instante las tablas para ajustarse a la capacidad y mantiene el rendimiento sin necesidad de administración. También se reduce verticalmente a cero, por lo que no tendrá que pagar por el rendimiento si su tabla no tiene tráfico y no hay arranques en frío.

NoSQL

Como base de datos NoSQL, DynamoDB está diseñada específicamente para ofrecer un mejor rendimiento, escalabilidad, capacidad de administración y flexibilidad en comparación con las bases de datos relacionales tradicionales. Para admitir una amplia variedad de casos de uso, DynamoDB permite modelos de datos de documentos y de valores clave.

A diferencia de las bases de datos relacionales, DynamoDB no admite el operador JOIN. Se recomienda desnormalizar el modelo de datos para reducir los viajes de ida y vuelta a la base de datos y la potencia de procesamiento necesaria para responder a las consultas. Como base de datos NoSQL, DynamoDB proporciona una sólida coherencia de lectura y transacciones ACID para crear aplicaciones empresariales.

Totalmente administrado

Al ser un servicio de bases de datos totalmente administrado, DynamoDB se ocupa del trabajo pesado e indiferenciado que supone administrar una base de datos para que usted pueda centrarse en generar valor para sus clientes. Se encarga de la instalación, las configuraciones, el mantenimiento, la alta disponibilidad, el aprovisionamiento de hardware, la seguridad, las copias de seguridad, la monitorización y mucho más. Esto garantiza que, al crear una tabla de DynamoDB, esté lista al instante para las cargas de trabajo de producción. DynamoDB mejora constantemente su disponibilidad, fiabilidad, rendimiento, seguridad y funcionalidad sin necesidad de actualizaciones ni tiempo de inactividad.

Rendimiento de milisegundos de un solo dígito a cualquier escala

DynamoDB se creó específicamente para mejorar el rendimiento y la escalabilidad de las bases de datos relacionales a fin de ofrecer un rendimiento de milisegundos de un solo dígito a cualquier escala. Para lograr esta escala y rendimiento, DynamoDB está optimizado para cargas de trabajo de alto rendimiento y proporciona API que fomentan el uso eficiente de las bases de datos. Omite las características que son ineficientes y que no ofrecen rendimiento a gran escala como, por ejemplo, las operaciones JOIN. DynamoDB ofrece un rendimiento constante de milisegundos de un solo dígito para su aplicación, tanto si tiene 100 como 100 millones de usuarios.

Casos de uso de DynamoDB

Clientes de todos los tamaños, sectores y regiones geográficas utilizan DynamoDB para crear aplicaciones modernas sin servidor que puedan empezar con pocos recursos y escalarse en todo el mundo. DynamoDB es ideal para casos de uso que requieren un rendimiento uniforme a cualquier escala con una sobrecarga operativa mínima o cero. La siguiente lista incluye algunos casos de uso en los que puede utilizar DynamoDB:

  • Aplicaciones de servicios financieros: supongamos que trabaja en una empresa de servicios financieros que crea aplicaciones para el comercio y el enrutamiento en tiempo real, la administración de préstamos, generación de tokens y libros de transacciones. Con las tablas globales de DynamoDB, sus aplicaciones pueden responder a los eventos y atender el tráfico de las Regiones de AWS de su elección con un rendimiento de lectura y escritura rápido y local.

    DynamoDB es adecuado para aplicaciones con los requisitos de disponibilidad más estrictos. Elimina la carga operativa que supone el escalado manual de las instancias para aumentar el almacenamiento o el rendimiento, el control de versiones y las licencias.

    Puede utilizar las transacciones de DynamoDB para lograr atomicidad, coherencia, aislamiento y durabilidad (ACID) en una o más tablas con una sola solicitud. Las transacciones (ACID) se adaptan a las cargas de trabajo que incluyen el procesamiento de transacciones financieras o la gestión de pedidos. DynamoDB se adapta de forma instantánea a sus cargas de trabajo cuando aumentan o disminuyen, lo que le permite escalar su base de datos de forma eficaz para adaptarse a las condiciones del mercado, como los horarios del mercado de valores.

  • Aplicaciones de juegos: como empresa de juegos, puede usar DynamoDB para todas las partes de las plataformas de juego como, por ejemplo, el estado del juego, los datos de los jugadores, el historial de sesiones y las tablas de clasificación. Elija DynamoDB por la escalabilidad, rendimiento uniforme y facilidad de las operaciones que ofrece su arquitectura sin servidor. DynamoDB es ideal para las arquitecturas escalables horizontalmente necesarias en las que se basan los juegos de éxito. Reduce y escala horizontalmente de forma rápida el rendimiento del juego (escala a cero sin un arranque en frío). Esta escalabilidad optimiza la eficiencia de su arquitectura, ya sea para escalarla horizontalmente para los picos de tráfico o para reducirla horizontalmente de nuevo cuando el uso del juego sea bajo.

  • Aplicaciones de streaming: las empresas de medios y entretenimiento utilizan DynamoDB como índice de metadatos para el contenido, los servicios de administración del contenido o para ofrecer estadísticas deportivas casi en tiempo real. También utilizan DynamoDB para ejecutar servicios de listas de control y marcadores de los usuarios y procesar miles de millones de eventos diarios de los clientes para generar recomendaciones. Estos clientes se benefician de la escalabilidad, el rendimiento y la resiliencia de DynamoDB. DynamoDB se adapta a los cambios en la carga de trabajo a medida que aumentan o disminuyen, lo que facilita los casos de uso con contenido multimedia en streaming que pueden tener cualquier nivel de demanda.

Para obtener más información sobre cómo utilizan DynamoDB clientes de distintos sectores, consulte Amazon DynamoDB Customers y This is My Architecture.

Capacidades de DynamoDB

Replicación multiactiva con tablas globales

Las tablas globales proporcionan una replicación multiactiva de los datos en las Regiones de AWS que elija con una disponibilidad del 99,999 %. Las tablas globales ofrecen una solución totalmente administrada para implementar una base de datos multiregión y multiactiva, sin necesidad de crear y mantener su propia solución de replicación. Con las tablas globales, puede especificar las Regiones de AWS en las que desea que estén disponibles las tablas. DynamoDB replica los cambios de datos en curso en todas estas tablas.

Sus aplicaciones distribuidas por todo el mundo pueden acceder a los datos de forma local en las regiones seleccionadas para lograr un rendimiento de lectura y escritura de milisegundos de un solo dígito. Como las tablas globales son multiactivas, no necesita una tabla principal. Esto significa que no se producen conmutaciones por error complicadas o con retardo ni tiempos de inactividad de la base de datos cuando se conmuta por error una aplicación entre regiones.

Transacciones ACID

DynamoDB está diseñado para cargas de trabajo de misión crítica. Admite transacciones (ACID) para aplicaciones que requieren una lógica empresarial compleja. DynamoDB ofrece compatibilidad nativa del servidor con las transacciones, lo que simplifica la experiencia del desarrollador a la hora de realizar cambios coordinados, de todo o nada, en múltiples elementos dentro de las tablas y entre ellas.

Captura de datos de cambios para arquitecturas basadas en eventos

DynamoDB admite el streaming de registros de captura de datos de cambios (CDC) en los elementos casi en tiempo real. Ofrece dos modelos de streaming para CDC: DynamoDB Streams y Kinesis Data Streams para DynamoDB. Cada vez que una aplicación crea, actualiza o elimina elementos en una tabla, Streams registra una secuencia en orden cronológico de cada cambio en los elementos casi en tiempo real. Esto hace que DynamoDB Streams sea ideal para que las aplicaciones con una arquitectura basada en eventos consuman los cambios y actúen en consecuencia.

Índices secundarios

DynamoDB ofrece la opción de crear índices secundarios globales y locales, que permiten consultar los datos de la tabla mediante una clave alternativa. Con estos índices secundarios, puede acceder a los datos con atributos distintos a los de la clave principal, lo que le proporciona la máxima flexibilidad para obtener acceso a los datos.

Integraciones de servicios

DynamoDB se integra ampliamente con varios AWS services para que pueda obtener más valor de sus datos, eliminar el trabajo pesado indiferenciado y utilizar sus cargas de trabajo a escala. Algunos ejemplos son: AWS CloudFormation, Amazon CloudWatch, Amazon S3, AWS Identity and Access Management (IAM) y AWS Auto Scaling. En las siguientes secciones, se describen algunas de las integraciones de servicios que puede realizar con DynamoDB:

Integraciones sin servidor

Para crear aplicaciones de extremo a extremo sin servidor, DynamoDB se integra de forma nativa con diversos AWS services sin servidor. Por ejemplo, puede integrar DynamoDB con AWS Lambda para crear desencadenadores, que son fragmentos de código que responden automáticamente a los eventos en DynamoDB Streams. Con los desencadenadores, puede crear aplicaciones basadas en eventos que reaccionen a las modificaciones de datos en las tablas de DynamoDB. Para optimizar los costos, puede filtrar los eventos que Lambda procesa desde un flujo de DynamoDB.

En la siguiente lista se presentan algunos ejemplos de integraciones sin servidor con DynamoDB:

Importación y exportación de datos a Amazon S3

La integración de DynamoDB con Amazon S3 le permite exportar datos fácilmente a un bucket de Amazon S3 para utilizar análisis y machine learning. DynamoDB admite exportaciones de tablas completas y exportaciones incrementales para exportar datos modificados, actualizados o eliminados en un periodo de tiempo específico. También puede importar datos desde Amazon S3 a una nueva tabla de DynamoDB.

Integración sin ETL

DynamoDB admite la integración sin ETL con Amazon Redshift y Amazon OpenSearch Service. Estas integraciones le permiten ejecutar análisis complejos y utilizar funcionalidades de búsqueda avanzada en los datos de las tablas de DynamoDB. Por ejemplo, puede realizar búsquedas vectoriales y de texto completo, además de búsquedas semánticas en los datos de DynamoDB. Las integraciones sin ETL no afectan a las cargas de trabajo de producción que se ejecutan en DynamoDB.

Almacenamiento en caché

DynamoDB Accelerator (DAX) es un servicio de almacenamiento en caché de alta disponibilidad y totalmente administrado creado para DynamoDB. DAX multiplica el rendimiento hasta por diez (de milisegundos a microsegundos) incluso con millones de solicitudes por segundo. DAX hace todo el trabajo pesado necesario para agregar aceleración en memoria a las tablas de DynamoDB, sin tener que administrar la invalidación de la caché, el llenado de datos o la administración de clústeres.

Seguridad

DynamoDB utiliza IAM para ayudarle a controlar de forma segura el acceso a los recursos de DynamoDB. Con IAM, se pueden administrar de forma centralizada los permisos que controlan qué usuarios de DynamoDB pueden acceder a los recursos. Utilice IAM para controlar quién está autenticado (ha iniciado sesión) y autorizado (tiene permisos) para utilizar recursos. Como DynamoDB utiliza IAM, no se necesitan nombres de usuario ni contraseñas para acceder. Dado que no tiene que administrar ninguna política complicada de rotación de contraseñas, su estrategia de seguridad se simplifica. Con IAM, también puede habilitar un control de acceso detallado para proporcionar autorización de atributo. También puede definir políticas basadas en recursos compatibles con el Analizador de acceso de AWS IAM y Bloqueo de acceso público (BPA) para simplificar la administración de políticas.

Amazon DynamoDB cifra todos los datos en reposo del cliente de manera predeterminada. El cifrado en reposo mejora la seguridad de los datos mediante el uso de claves de cifrado almacenadas en AWS Key Management Service (AWS KMS). Con el cifrado en reposo, puede crear aplicaciones sensibles a la seguridad que necesitan cumplimiento estricto de cifrado y requisitos normativos. Cuando accede a una tabla cifrada, DynamoDB descifra los datos de la tabla de forma transparente. No es necesario que cambie sus aplicaciones o código para utilizar o administrar tablas cifradas. DynamoDB continúa proporcionando la misma latencia en milisegundos de un solo dígito que cabe esperar y todas las consultas de DynamoDB funcionan sin inconvenientes con los datos cifrados.

Puede especificar si DynamoDB debe utilizar una Clave propiedad de AWS (tipo de cifrado predeterminado), una Clave administrada de AWS o una clave administrada por el cliente para cifrar los datos del usuario. El cifrado predeterminado mediante claves KMS propiedad de AWS está disponible sin costo adicional. Para el cifrado del cliente, puede usar el SDK de cifrado de bases de datos de AWS.

DynamoDB también se adhiere a varios estándares de conformidad, como HIPAA, PCI DSS y el RGPD, lo que le permite cumplir los requisitos normativos.

Resiliencia

De forma predeterminada, DynamoDB replica automáticamente los datos en tres zonas de disponibilidad para ofrecer una alta durabilidad y un SLA de disponibilidad del 99,99 %. DynamoDB también ofrece funcionalidades adicionales para ayudarle a alcanzar sus objetivos de continuidad empresarial y recuperación de desastres.

DynamoDB las siguientes características que le ayudan a satisfacer sus necesidades de resiliencia y copia de seguridad de los datos:

Tablas globales

Las tablas globales de DynamoDB permiten un SLA de disponibilidad del 99,999 % y resiliencia multirregional. Esto le ayuda a crear aplicaciones resilientes y a optimizarlas para el objetivo de tiempo de recuperación (RTO) y el objetivo de punto de recuperación (RPO) más bajos. Las tablas globales también se integran con AWS Fault Injection Service(AWS FIS) para realizar experimentos de inyección de errores en las cargas de trabajo de las tablas globales. Por ejemplo, pausar la replicación de una tabla global en cualquier tabla de réplica.

Copias de seguridad continuas y recuperación a un momento dado

Las copias de seguridad continuas le proporcionan un grado de detalle por segundo y la capacidad de iniciar una recuperación a un momento dado. Con la recuperación a un momento dado, puede restaurar una tabla a cualquier momento de los últimos 35 días con una precisión de segundos.

En las copias de seguridad continuas y el inicio de una restauración a un momento dado no se utiliza capacidad aprovisionada. Tampoco afectan al rendimiento ni a la disponibilidad de las aplicaciones.

Solicitud de copia de seguridad y restauración

La copia de seguridad y la restauración bajo demanda le permiten crear copias de seguridad completas de una tabla para conservarlas a largo plazo y archivarlas para cumplir las normativas. Las copias de seguridad no afectan al rendimiento de la tabla, por lo que puede realizar copias de seguridad de tablas de cualquier tamaño. Con la integración de AWS Backup, puede utilizar AWS Backup para programar, copiar, etiquetar y administrar el ciclo de vida de sus copias de seguridad bajo demanda de DynamoDB de forma automática. Con AWS Backup, puede copiar copias de seguridad bajo demanda en todas las cuentas y regiones, y transferir las copias de seguridad antiguas a un almacenamiento en frío para optimizar los costos.

Acceso a DynamoDB

Puede trabajar con DynamoDB mediante la AWS Management Console, la AWS Command Line Interface, NoSQL Workbench para DynamoDB o las API de DynamoDB.

Para obtener más información, consulte Acceso a DynamoDB.

Precios de DynamoDB

DynamoDB cobra por leer, escribir y almacenar datos en sus tablas, además de cualquier característica opcional que decida habilitar. DynamoDB dispone de dos modos de capacidad con sus respectivas opciones de facturación para procesar lecturas y escrituras en sus tablas: bajo demanda y aprovisionado.

DynamoDB también ofrece una capa gratuita que ofrece 25 GB de almacenamiento. La capa gratuita también incluye 25 unidades de capacidad de escritura aprovisionadas y 25 unidades de capacidad de lectura (WCU, RCU) aprovisionadas, lo que es suficiente para administrar 200 millones de solicitudes al mes.

Para obtener más información, consulte los precios de Amazon DynamoDB.

Introducción a DynamoDB

Si es la primera vez que usa DynamoDB, le recomendamos que empiece leyendo lo siguiente:

  • Introducción a DynamoDB: lo guía por el proceso de configuración de DynamoDB, la creación de tablas de ejemplo y la carga de datos. En este tema también se proporciona información sobre cómo realizar algunas operaciones básicas de bases de datos mediante la AWS Management Console, la AWS CLI, NoSQL Workbench y las API de DynamoDB.

  • Componentes básicos de DynamoDB: describe los conceptos básicos de DynamoDB.

  • Prácticas recomendadas para el diseño y la arquitectura con DynamoDB: proporciona recomendaciones sobre el diseño de NoSQL, el enfoque Well-Architected de DynamoDB, el diseño de tablas y otras características de DynamoDB. Estas prácticas recomendadas lo ayudan a maximizar el rendimiento y minimizar los costos de rendimiento al trabajar con DynamoDB.

También le recomendamos que revise los siguientes tutoriales, en los que se ofrecen procedimientos completos para familiarizarse con DynamoDB. Puede completar estos tutoriales con la capa gratuita de AWS.

Para obtener información sobre los recursos, las herramientas y las estrategias para migrar a DynamoDB, consulte Migración a DynamoDB. Para leer los blogs y documentos técnicos más recientes, consulte los recursos de Amazon DynamoDB.