DynamoDB es una base de datos NoSQL to­ta­l­me­n­te ge­s­tio­na­da y sin servidor de­sa­rro­lla­da por Amazon. Sus pri­n­ci­pa­les ventajas son la es­ca­la­bi­li­dad fluida, tiempos de respuesta de solo mi­li­se­gu­n­dos, un ma­n­te­ni­mie­n­to mínimo y la in­te­gra­ción sencilla con AWS. Sus apli­ca­cio­nes abarcan desde el de­sa­rro­llo de software y la expansión de pla­ta­fo­r­mas de vi­deo­jue­gos hasta el streaming de vídeo en tiempo real.

¿Qué es DynamoDB?

Amazon DynamoDB es un servicio de base de datos NoSQL sin servidor para apli­ca­cio­nes modernas de cualquier tamaño, di­s­po­ni­ble desde 2012 a través de AWS (Amazon Web Services). A di­fe­re­n­cia de muchos productos de la co­m­pe­te­n­cia, DynamoDB es una solución co­m­ple­ta­me­n­te ge­s­tio­na­da. Esto significa que no es necesario en­ca­r­gar­se de tareas como ac­tua­li­za­cio­nes, parches o escalado. El sistema de gestión de bases de datos también incluye numerosas funciones de seguridad y cumple con estrictas normas de co­n­fo­r­mi­dad. Además, DynamoDB se integra de forma nativa con otros servicios de AWS, como Lambda o Amazon Ope­n­Sea­r­ch Service.

Manage Databases
Managed Database von IONOS

Bases de datos a medida de tus ne­ce­si­da­des. Incluye soporte 24/7.

  • Ar­qui­te­c­tu­ra de primera
  • Soporte 24/7
  • Centros de datos ce­r­ti­fi­ca­dos

La es­tru­c­tu­ra de DynamoDB

La es­tru­c­tu­ra de DynamoDB se basa en una jerarquía clara, con las tablas como entidades pri­n­ci­pa­les, sin re­la­cio­nes estrictas entre ellas, a di­fe­re­n­cia de las bases de datos re­la­cio­na­les. Los datos se almacenan en pa­r­ti­cio­nes que se replican au­to­má­ti­ca­me­n­te. Cada partición consta de tres nodos con una copia de los datos, lo que permite una es­ca­la­bi­li­dad sencilla y garantiza la re­du­n­da­n­cia en caso de fallo de un nodo. Los de­sa­rro­lla­do­res guardan los datos en forma de atributos y les asignan una clave primaria única. La base de datos admite tanto modelos de datos clave-valor como modelos orie­n­ta­dos a do­cu­me­n­tos.

Clases de tablas en AWS DynamoDB

Mediante las clases de tablas es posible optimizar el re­n­di­mie­n­to y los costes de DynamoDB. Los usuarios pueden elegir entre dos clases y cambiar entre ellas dos veces en 30 días sin tiempo de inac­ti­vi­dad, ajustando así los costes a los patrones de uso:

  • DynamoDB Standard: la clase estándar, diseñada para cargas de trabajo de alto re­n­di­mie­n­to e im­pre­de­ci­bles. En co­m­pa­ra­ción, estas tablas tienen menores costes de lectura y escritura.
  • DynamoDB Standard In­fre­que­nt Access: op­ti­mi­za­da para tablas en las que el al­ma­ce­na­mie­n­to es el principal coste. Esta clase reduce los costes de al­ma­ce­na­mie­n­to y es ideal para datos con un acceso poco frecuente.

¿Qué funciones ofrece DynamoDB?

DynamoDB ofrece una amplia gama de funciones que permiten crear apli­ca­cio­nes es­ca­la­bles, de alta di­s­po­ni­bi­li­dad y gran capacidad de respuesta. Sus ca­ra­c­te­rí­s­ti­cas pri­n­ci­pa­les son:

  • Modelos de datos clave-valor y do­cu­me­n­tos: la base de datos tiene un esquema flexible que permite asignar múltiples atributos a cada elemento.
  • Tra­n­sac­cio­nes ACID: DynamoDB admite tra­n­sac­cio­nes con ato­mi­ci­dad, co­n­si­s­te­n­cia, ai­s­la­mie­n­to y du­ra­bi­li­dad (ACID), lo que amplía el uso de la base de datos a procesos em­pre­sa­ria­les críticos sin perder re­n­di­mie­n­to ni es­ca­la­bi­li­dad.
  • Tablas globales con re­pli­ca­ción activa-activa: permiten leer y escribir desde cualquier réplica, ajustando au­to­má­ti­ca­me­n­te la capacidad a la carga de trabajo regional.
  • DynamoDB Streams: registra los cambios en los elementos (creación, edición o eli­mi­na­ción) y los mantiene di­s­po­ni­bles durante 24 horas.
  • Índices se­cu­n­da­rios: admite índices se­cu­n­da­rios locales y globales para realizar consultas mediante claves al­te­r­na­ti­vas. Pueden co­n­fi­gu­rar­se como índices dispersos (sparse indexes) para indexar solo su­b­co­n­ju­n­tos de datos.
  • Pa­r­ti­cio­na­mie­n­to au­to­má­ti­co: los datos se di­s­tri­bu­yen au­to­má­ti­ca­me­n­te en varias pa­r­ti­cio­nes, escalando según las ne­ce­si­da­des.
  • Funciones de seguridad: controles de acceso avanzados, cifrado en reposo, re­cu­pe­ra­ción puntual, copias de seguridad bajo demanda y co­ne­c­ti­vi­dad privada de red.
  • Modelos de capacidad: permite elegir entre modo de capacidad bajo demanda o capacidad apro­vi­sio­na­da.
  • DynamoDB Ac­ce­le­ra­tor (DAX): un servicio opcional de caché que mu­l­ti­pli­ca por diez el re­n­di­mie­n­to.

Ventajas y de­s­ve­n­ta­jas de Amazon DynamoDB

El servicio NoSQL de Amazon, DynamoDB, destaca pri­n­ci­pa­l­me­n­te por estas fo­r­ta­le­zas:

  • Escalado au­to­má­ti­co: AWS DynamoDB ajusta di­ná­mi­ca­me­n­te la capacidad y la partición al nivel de re­n­di­mie­n­to necesario, lo que permite un cre­ci­mie­n­to ho­ri­zo­n­tal ilimitado.
  • Ar­qui­te­c­tu­ra sin servidor: el sistema de gestión de bases de datos está co­m­ple­ta­me­n­te ge­s­tio­na­do, lo que permite a los usuarios centrarse en el de­sa­rro­llo de sus apli­ca­cio­nes sin tener que ocuparse de la in­frae­s­tru­c­tu­ra su­b­ya­ce­n­te.
  • Alta di­s­po­ni­bi­li­dad: las bases de datos multi-región y la re­pli­ca­ción au­to­má­ti­ca ga­ra­n­ti­zan una di­s­po­ni­bi­li­dad de hasta el 99,999 %.
  • Baja latencia: por defecto, esta base de datos NoSQL ofrece ope­ra­cio­nes de lectura y escritura con latencias de un solo dígito en mi­li­se­gu­n­dos. Con DynamoDB Ac­ce­le­ra­tor (DAX), los tiempos de respuesta pueden reducirse incluso a mi­cro­se­gu­n­dos.
  • In­te­gra­ción sencilla con AWS: la in­te­gra­ción nativa con servicios de AWS como Clou­d­Wa­t­ch o Kinesis amplía las ca­pa­ci­da­des de DynamoDB y facilita el análisis avanzado de datos.

Sin embargo, DynamoDB también presenta algunas li­mi­ta­cio­nes. Por un lado, sus opciones de consulta son más limitadas en co­m­pa­ra­ción con otras bases de datos. Por otro, la estrecha vi­n­cu­la­ción con el eco­si­s­te­ma de AWS dificulta la migración hacia otras pla­ta­fo­r­mas. Además, con el modelo de capacidad bajo demanda existe el riesgo de incurrir en costes im­pre­de­ci­bles en caso de picos de tráfico.

¿Para qué casos de uso es adecuada DynamoDB?

DynamoDB está diseñada es­pe­cí­fi­ca­me­n­te para cargas de trabajo que requieren manejar grandes volúmenes de datos con baja latencia, alta di­s­po­ni­bi­li­dad y es­ca­la­bi­li­dad. Entre sus pri­n­ci­pa­les casos de uso destacan:

  • Apli­ca­cio­nes web sin servidor y backends móviles, en las que es necesario gestionar datos de cuentas, sesiones y co­n­fi­gu­ra­cio­nes con una latencia mínima
  • Pla­ta­fo­r­mas de gaming con cientos de miles o millones de usuarios co­n­cu­rre­n­tes
  • Streaming de contenido dirigido a au­die­n­cias globales con tráfico desigual o con picos muy marcados
  • Entidades bancarias y de servicios fi­na­n­cie­ros, que procesan un gran número de tra­n­sac­cio­nes en tiempo real con altos re­qui­si­tos de seguridad y co­n­si­s­te­n­cia
  • Apli­ca­cio­nes de IoT, que capturan y almacenan datos de sensores a gran escala

Pri­n­ci­pa­les al­te­r­na­ti­vas a DynamoDB

Además de DynamoDB, existen otros sistemas de bases de datos que pueden resultar in­te­re­sa­n­tes en función de las ne­ce­si­da­des, el modelo de datos, la es­ca­la­bi­li­dad y la in­frae­s­tru­c­tu­ra. Entre ellos se en­cue­n­tran:

  • MongoDB: gran fle­xi­bi­li­dad y es­ca­la­bi­li­dad prá­c­ti­ca­me­n­te ilimitada
  • MySQL: base de datos re­la­cio­nal con alta di­s­po­ni­bi­li­dad
  • MariaDB: al­te­r­na­ti­va de código abierto a DynamoDB
  • Po­s­t­gre­S­QL: solución re­la­cio­nal con soporte para tipos de datos no re­la­cio­na­les
  • Firebase de Google: es­pe­cia­l­me­n­te adecuada para apli­ca­cio­nes móviles y web
  • Apache Cassandra: ideal para gestionar grandes volúmenes de datos
Ir al menú principal