Tablas globales de Amazon DynamoDB

¿Por qué utilizar las tablas globales de Amazon DynamoDB?

Las tablas globales de Amazon DynamoDB son una base de datos totalmente gestionada, sin servidor, multirregional y multiactiva. Las tablas globales ofrecen una disponibilidad del 99,999 %, una mayor resiliencia en las aplicaciones y una mejor continuidad empresarial. Como las tablas globales replican automáticamente sus tablas de Amazon DynamoDB en las regiones de AWS que elija, podrá lograr un rendimiento de lectura y escritura local y rápido.

En el raro caso de que se produzca un error en una sola región, no será necesaria la conmutación por error en la base de datos, ya que la arquitectura multiactiva de las tablas globales permite a los clientes leer y escribir en cualquier tabla de réplica. Las tablas globales también eliminan la difícil tarea de replicar datos entre regiones y resolver conflictos de actualización en cargas de trabajo multiactivas. Además, las tablas globales permiten que las aplicaciones conserven un alto nivel de disponibilidad, incluso en el raro caso de que se produzca aislamiento o deterioro de una región entera.

Puede configurar tablas globales en la Consola de administración de AWS con la Interfaz de la línea de comandos de AWS (AWS CLI) o con AWS CloudFormation. No es necesario realizar cambios en la aplicación al leer o escribir en una tabla global, ya que las tablas globales utilizan las mismas API de DynamoDB que las tablas de una sola región.

No existen costos anticipados o compromisos por el uso de las tablas globales y solo pagará por los recursos que use. Obtenga más información sobre la configuración de tablas globales en la Guía para desarrolladores de Amazon DynamoDB. Para obtener más información sobre los precios de las tablas globales, consulte las opciones de precios de Amazon DynamoDB bajo demanda y aprovisionadas.

Funcionamiento

Las tablas globales de DynamoDB se componen de varias tablas de réplica. Cada tabla de réplica existe en una región diferente, pero todas las réplicas tienen el mismo nombre y la misma clave principal. Cuando se escriben datos en cualquier tabla de réplica, DynamoDB replica automáticamente dichos datos en todas las demás tablas de réplica de la tabla global.

Por ejemplo, supongamos que su aplicación presta servicio a una gran base de clientes que abarca tres áreas geográficas: la Costa Este de EE. UU., Canadá y Europa Occidental. Sin tablas globales, tendría que crear una tabla en cada región de AWS y escribir código para replicar los cambios de datos en cada tabla de cada región.

Con las tablas globales, puede crear una tabla global con una tabla de réplica en las tres regiones más cercanas a cada área geográfica. DynamoDB replicará automáticamente los cambios de cualquier réplica en las réplicas de las demás regiones.

Las tablas globales permiten a los usuarios de la aplicación tener acceso de baja latencia a los datos sin importar dónde se encuentren. En el improbable caso de que una región de AWS deje de estar disponible temporalmente, sus clientes seguirán teniendo acceso a las tablas de réplica de las demás regiones.

Funcionamiento

Ventajas de la tabla global de Amazon DynamoDB

Cualquier cambio realizado en cualquier elemento de una réplica de tabla se replica en todas las réplicas contenidas en la misma tabla global. En una tabla global, un elemento que acaba de escribirse suele propagarse a todas las réplicas de tabla en un segundo.  Además, en una tabla global cada réplica de tabla almacena el mismo grupo de elementos de datos. Amazon DynamoDB no admite la replicación parcial solo de determinados elementos. Si las aplicaciones actualizan el mismo elemento en diferentes regiones al mismo tiempo, pueden producirse conflictos.

Para resolver conflictos, las tablas globales de Amazon DynamoDB usan una reconciliación “last-writer-wins” (el último en escribir gana) entre actualizaciones simultáneas, en la que Amazon DynamoDB hace todo lo posible para determinar la escritura más reciente. Gracias a este mecanismo de resolución de conflictos, todas las réplicas coinciden en la actualización más reciente y convergen hacia un estado en el que todas tienen los mismos datos.

La replicación multiactiva y multirregional garantiza que las actualizaciones que se realizan en una tabla de réplica de una región se repliquen en las tablas de réplica de otras regiones. Al final, la replicación entre réplicas de tablas en todas las regiones es coherente. Esto significa que las lecturas y escrituras locales en tablas de réplicas de la misma región que la aplicación pueden lograr una gran coherencia. Sin embargo, las lecturas de los elementos que se encuentran en otras tablas de réplica de una región son coherentes.

Las tablas globales están diseñadas para ofrecer una disponibilidad del 99,999 %. Si una única región se aísla o se degrada, su aplicación puede redirigir a una región diferente y realizar lecturas y escrituras en una réplica de tabla diferente. Puede aplicar lógica empresarial personalizada para determinar cuándo se redirigen las solicitudes a otras regiones. 

Además, Amazon DynamoDB realiza un seguimiento de las tareas de escritura que se han realizado pero que aún no se han propagado a todas las réplicas de tablas. Cuando la región vuelve a estar en línea, Amazon DynamoDB reanuda la actividad al propagar cualquier tarea de escritura pendiente desde la región a las réplicas de tablas de otras regiones y viceversa.

Las tablas globales permiten leer y escribir datos localmente al ofrecer una latencia de milisegundos de un solo dígito para su aplicación distribuida globalmente a cualquier escala. Esto puede aumentar el rendimiento de las aplicaciones globales de gran escala.

Las tablas globales eliminan la complejidad y la carga operativa de la implementación y administración de la replicación multiactiva y multirregional en Amazon DynamoDB. Basta con seleccionar las regiones en las que necesite que se repliquen sus datos y DynamoDB se encargará del resto. Las aplicaciones tienen acceso a las tablas globales mediante las API y los puntos de conexión de DynamoDB existentes.

Temas de la página

Aspectos generales

Aspectos generales

Una tabla global es un conjunto de una o varias tablas de réplicas, todas propiedad de una sola cuenta de AWS. Una sola tabla global de Amazon DynamoDB solo puede tener una tabla de réplica por región de AWS.

Una tabla de réplica es una sola tabla de DynamoDB. Cada tabla de réplica almacena el mismo conjunto de elementos de datos, tiene el mismo nombre de tabla y el mismo esquema de clave principal. Cuando una aplicación escribe datos en una tabla de réplica de una región, Amazon DynamoDB propaga automáticamente las escrituras a otras tablas de réplica de otras regiones de AWS.

Sí, las tablas globales de Amazon Dynamo refuerzan la continuidad empresarial, ya que aumentan la resiliencia de la aplicación y proporcionan coherencia en una sola región. Como las tablas globales son multiactivas, una aplicación puede leer o escribir en cualquier tabla de réplica. En el raro caso de que se produzca un evento regional no planificado, la aplicación se puede redirigir a otra réplica.

Antes de agregar una réplica adicional en una región diferente a una tabla global de Amazon DynamoDB, la tabla debe tener habilitado DynamoDB Streams, debe tener el mismo nombre que todas las demás réplicas, debe tener la misma clave de partición que todas las demás réplicas y debe especificarse la misma configuración de capacidad de escritura.

Todas las tablas de réplica de una tabla global de Amazon DynamoDB deben tener el mismo nombre.

Al igual que otras bases de datos, Amazon DynamoDB almacena los datos en tablas. Una tabla es una colección de elementos y cada elemento es una colección de atributos. Amazon DynamoDB usa claves principales para identificar de forma única cada elemento de una tabla y tiene índices secundarios para ofrecer una mayor flexibilidad de consulta.

Por el contrario, una tabla global de Amazon DynamoDB es un conjunto de una o más tablas de réplica que pertenecen a una sola cuenta de AWS. Cada tabla de réplica es estructuralmente igual a una tabla normal de Amazon DynamoDB.

Sí, puede habilitar la recuperación puntual en cada réplica de una tabla global.

  • Zoom

    Cuando comenzó la pandemia de COVID-19, había una gran demanda de servicios de audio y video. A principios de 2020, presenciamos un crecimiento sin precedentes del uso de estos servicios, cuyo número de participantes, tanto existentes como nuevos con la necesidad de conectarse de forma virtual, creció de 10 millones que se reunían a diario a 300 millones. Al final pudimos controlar este crecimiento con Amazon DynamoDB para reuniones por Zoom. La utilización de las tablas globales de DynamoDB con el modo bajo demanda nos permitió escalar prácticamente sin tener límites ni problemas de rendimiento, incluso durante el pico repentino del uso.

    Yasin Mohammed, administrador de Ingeniería, Operaciones en la Nube en Zoom Video Communications, Inc.
  • Disney

    Disney+ usa Amazon DynamoDB para incorporar contenido, metadatos y miles de millones de acciones de los clientes por día, lo que permite que los espectadores agreguen contenido a sus listas de reproducción, comiencen a ver un video y lo retomen en un dispositivo diferente o reciban recomendaciones sobre lo que pueden seguir viendo.

    Miles de millones de marcadores se introducen al día en Amazon Kinesis y en Amazon DynamoDB.

    Attilio Giue, director de descubrimiento de contenido de Disney+
    Lea la nota de prensa »
  • Snap Inc.

    Snap Inc. ahorró significativamente en los costos anuales de infraestructura y habilitó una infraestructura rápida y confiable para la aplicación de mensajería multimedia Snapchat mediante el uso de Amazon DynamoDB.

    Las capacidades que ofrece Amazon DynamoDB y la innovación continua que contiene nos dan la tranquilidad de que podemos seguir confiando e innovando sobre la base de este servicio.

    Saral Jain, director de Ingeniería, Infraestructura y Datos de Snap Inc.
    Lea el caso práctico »