Descripción general de las tablas globales - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Descripción general de las tablas globales

Datos clave

  • Hay dos versiones de las tablas globales: la versión 2017.11.29 (antigua) (a veces denominada v1) y la versión 2019.11.21 (actual) (a veces denominada v2). Esta guía se centra exclusivamente en la versión actual.

  • DynamoDB (sin tablas globales) es un servicio regional, lo que significa que tiene una alta disponibilidad y es intrínsecamente resistente a los fallos de la infraestructura, incluidos los fallos de una zona de disponibilidad completa. Una tabla de DynamoDB de una sola región está diseñada para ofrecer una disponibilidad del 99,99%. Para obtener más información, consulte el acuerdo de nivel de servicio (SLA) de DynamoDB.

  • Una tabla global de DynamoDB replica sus datos entre dos o más regiones. Una tabla de DynamoDB multirregional está diseñada para ofrecer una disponibilidad del 99,999%. Con una planificación adecuada, las tablas globales pueden ayudar a crear una arquitectura resistente a los errores regionales.

  • DynamoDB no dispone de un punto de conexión global. Todas las solicitudes se realizan a un punto final regional que accede a la instancia de la tabla global local de esa región.

  • Las llamadas a DynamoDB no deben ir de una región a otra. La práctica recomendada es que una aplicación alojada en una región acceda directamente solo al punto final de DynamoDB local de su región. Si se detectan problemas en una región (en la capa de DynamoDB o en la pila circundante), el tráfico de los usuarios finales debe enrutarse a un punto de enlace de aplicación diferente que esté alojado en una región diferente. Las tablas globales garantizan que la aplicación alojada en cada región tenga acceso a los mismos datos.

Modos de coherencia

Al crear una tabla global, se configura su modo de coherencia. Las tablas globales admiten dos modos de coherencia: la coherencia eventual multirregional (MREC) y la coherencia fuerte multirregional (MRSC), que se introdujo en junio de 2025.

Si no especificas un modo de coherencia al crear una tabla global, el valor predeterminado de la tabla global es MREC. Una tabla global no puede contener réplicas configuradas con modos de coherencia diferentes. No se puede cambiar el modo de coherencia de una tabla global después de su creación.

Datos clave sobre el MREC

  • Las tablas globales que utilizan MREC emplean un modelo de replicación activo-activa. Desde la perspectiva de DynamoDB, la tabla en cada región tiene la misma capacidad para aceptar solicitudes de lectura y escritura. Tras recibir una solicitud de escritura, la tabla de réplica local replica la operación de escritura en otras regiones remotas participantes en segundo plano.

  • Los elementos se replican de forma individual. Es posible que los elementos que se actualizan en una sola transacción no se repliquen juntos.

  • Cada partición de tabla de la región de origen replica sus operaciones de escritura en paralelo con todas las demás particiones. Es posible que la secuencia de operaciones de escritura en una región remota no coincida con la secuencia de operaciones de escritura que se realizaron en la región de origen. Para obtener más información sobre las particiones de tablas, consulte la entrada de blog Escalado de DynamoDB: cómo afectan al rendimiento las particiones, las claves activas y la división por actividad.

  • Un elemento que se acaba de escribir se propagará normalmente a todas las réplicas de tabla en cuestión de segundos. Las regiones cercanas tienden a propagarse más rápido.

  • Amazon CloudWatch proporciona una ReplicationLatency métrica para cada par de regiones. Se calcula observando los artículos que llegan, comparando su hora de llegada con su tiempo de escritura inicial y calculando una media. Los tiempos se almacenan CloudWatch en la región de origen. La visualización de los tiempos medio y máximo puede resultar útil para determinar el retraso medio y en el peor de los casos de la réplica. No hay SLA para esta latencia.

  • Si un elemento individual se actualiza aproximadamente al mismo tiempo (dentro de esta ReplicationLatency ventana) en dos regiones diferentes y la segunda operación de escritura se realiza antes de que se replique la primera operación de escritura, existe la posibilidad de que se produzcan conflictos de escritura. Las tablas globales que utilizan MREC resuelven estos conflictos mediante el mecanismo de último escritor, que se basa en la marca temporal de las operaciones de escritura. La primera operación «pierde» frente a la segunda. Estos conflictos no se registran en CloudWatch o AWS CloudTrail.

  • Cada elemento tiene una marca de tiempo de última escritura que se mantiene como una propiedad de sistema privada. El enfoque de último escritor gana se implementa mediante una operación de escritura condicional que requiere que la marca de tiempo del elemento entrante sea mayor que la marca de tiempo del elemento existente.

  • Una tabla global reproduce todos los elementos en todas las regiones participantes. Si desea tener distintos ámbitos de replicación, puede crear varias tablas globales y asignar a cada tabla diferentes regiones participantes.

  • La región local acepta operaciones de escritura incluso si la región de réplica está fuera de línea o ReplicationLatency crece. La tabla local sigue intentando replicar elementos en la tabla remota hasta que cada elemento lo consigue.

  • En el improbable caso de que una región quede completamente desconectada, cuando vuelva a estar en línea más adelante, se volverán a intentar todas las replicaciones entrantes y salientes pendientes. No es necesaria ninguna acción especial para volver a sincronizar las tablas. El mecanismo que gana el último autor garantiza que los datos acaben siendo coherentes.

  • Puede añadir una nueva región a una tabla MREC de DynamoDB en cualquier momento. DynamoDB gestiona la sincronización inicial y la replicación continua. También puede eliminar una región (incluso la región original) y, de este modo, se eliminará la tabla local de esa región.

Datos clave sobre el MRSC

  • Las tablas globales que utilizan el MRSC también emplean un modelo de replicación activo-activa. Desde la perspectiva de DynamoDB, la tabla en cada región tiene la misma capacidad para aceptar solicitudes de lectura y escritura. Los cambios de elementos en una réplica de una tabla global del MRSC se replican de forma sincrónica en al menos otra región antes de que la operación de escritura arroje una respuesta correcta.

  • Las operaciones de lectura altamente coherente en cualquier réplica de MRSC siempre devuelven la versión más reciente de un elemento. Las operaciones de escritura condicional siempre evalúan la expresión de condición comparándola con la versión más reciente de un elemento. Las actualizaciones siempre funcionan con la versión más reciente de un elemento.

  • Al final, es posible que las operaciones de lectura coherentes en una réplica del MRSC no incluyan los cambios que se hayan producido recientemente en otra región y que ni siquiera incluyan los cambios que se han producido muy recientemente en la misma región.

  • Con una ReplicatedWriteConflictException excepción, se produce un error en una operación de escritura cuando se intenta modificar un elemento que ya se está modificando en otra región. Las operaciones de escritura que fallan, ReplicatedWriteConflictException salvo la excepción, se pueden volver a intentar y se realizarán correctamente si el elemento ya no se modifica en otra región.

  • Con el MRSC, las latencias son más altas para las operaciones de escritura y para las operaciones de lectura muy coherentes. Estas operaciones requieren una comunicación entre regiones. Esta comunicación tiende a añadir latencia, que aumenta en función de la latencia de ida y vuelta entre la región a la que se accede y la región más cercana que participa en la tabla global. (Para obtener más información, consulte la presentación de AWS re:Invent 2024, sobre la sólida coherencia multirregional con las tablas globales de Amazon DynamoDB). En última instancia, las operaciones de lectura consistentes no experimentan latencia adicional. Existe una herramienta de prueba de código abierto que te permite calcular estas latencias de forma experimental con tus regiones.

  • Los elementos se replican de forma individual. Las tablas globales que utilizan el MRSC no admiten la transacción. APIs

  • Una tabla global del MRSC debe implementarse exactamente en tres regiones. Puede configurar una tabla global del MRSC con tres réplicas o con dos réplicas y un testigo. Un testigo es un componente de una tabla global del MRSC que contiene datos recientes escritos en réplicas de tablas globales. Un testigo proporciona una alternativa opcional a una réplica completa y, al mismo tiempo, es compatible con la arquitectura de disponibilidad del MRSC. No puede realizar operaciones de lectura o escritura en un testigo. Un testigo no incurre en costos de almacenamiento o escritura. El testigo se encuentra en una región diferente a la de las dos réplicas.

  • Para crear una tabla global de MRSC, agregue una réplica y un testigo, o agregue dos réplicas a una tabla de DynamoDB existente que no contenga datos. No puede agregar réplicas adicionales a una tabla global de MRSC existente. No puede eliminar una sola réplica o un testigo de una tabla global del MRSC. Puede eliminar dos réplicas, o eliminar una réplica y un testigo, de una tabla global del MRSC. El segundo escenario convierte la réplica restante en una tabla DynamoDB de una sola región.

  • Puede determinar si una tabla global del MRSC tiene un testigo configurado y en qué región está configurado a partir del resultado de la API. DescribeTable El testigo es propiedad de DynamoDB, quien lo gestiona, y no aparece en la región en Cuenta de AWS la que está configurado.

  • Las tablas globales de MRSC están disponibles en los siguientes conjuntos de regiones:

    • Conjunto de regiones de EE. UU.: Este de EE. UU. (Norte de Virginia), Este de EE. UU. (Ohio), Oeste de EE. UU. (Oregón)

    • Conjunto de regiones de la Unión Europea: Europa (Irlanda), Europa (Londres), Europa (París), Europa (Fráncfort)

    • Conjunto de regiones AP: Asia Pacífico (Tokio), Asia Pacífico (Seúl) y Asia Pacífico (Osaka)

  • Las tablas globales del MRSC no pueden abarcar conjuntos de regiones. Por ejemplo, una tabla global del MRSC no puede contener réplicas de conjuntos de regiones de EE. UU. y de la UE.

  • Las tablas globales del MRSC no admiten el tiempo de vida (TTL).

  • Los índices secundarios locales (LSIs) no son compatibles con las tablas globales del MRSC.

  • CloudWatch La información de Contributor Insights se presenta únicamente para la región en la que se llevó a cabo la operación.

  • La región local acepta todas las operaciones de lectura y escritura siempre que haya una segunda región que aloje una réplica o un testigo para establecer el quórum. Si una segunda región no está disponible, la región local solo podrá ofrecer lecturas coherentes en algún momento.

  • En el improbable caso de que una región se desconecte por completo, cuando vuelva a estar en línea más adelante, se pondrá al día automáticamente. Hasta que se recupere, las operaciones de escritura y las operaciones de lectura muy coherentes generarán errores. Sin embargo, con el tiempo, las operaciones de lectura coherentes devolverán los datos que hasta ahora se han propagado a la región, con un comportamiento de coherencia local habitual entre el nodo líder y las réplicas locales. No es necesaria ninguna acción especial para volver a sincronizar las tablas

Casos de uso

Las tablas globales del MREC ofrecen las siguientes ventajas:

  • Operaciones de lectura de baja latencia. Puede colocar una copia de los datos más cerca del usuario final para reducir la latencia de la red durante las operaciones de lectura. Los datos se mantienen tan actualizados como el ReplicationLatency valor.

  • Operaciones de escritura de baja latencia. Un usuario final puede escribir en una región cercana para reducir la latencia de la red y el tiempo necesario para completar la operación de escritura. El tráfico de escritura debe enrutarse cuidadosamente para garantizar que no haya conflictos. Las técnicas de enrutamiento se analizan en una sección posterior.

  • Migración de región sin problemas. Puede añadir una nueva región y, a continuación, eliminar la antigua para migrar una implementación de una región a otra, sin ningún tiempo de inactividad en la capa de datos.

Las tablas globales del MREC y del MRSC ofrecen esta ventaja:

  • Mayor resiliencia y recuperación de desastres. Si el rendimiento de una región ha empeorado o se ha producido una interrupción total, puedes evacuarla (es decir, retirar algunas o todas las solicitudes que se dirijan a esa región). El uso de tablas globales aumenta el SLA de DynamoDB para el porcentaje de tiempo de actividad mensual del 99,99% al 99,999%. El uso de MREC admite un objetivo de punto de recuperación (RPO) y un objetivo de tiempo de recuperación (RTO) medidos en segundos. El uso del MRSC admite un RPO igual a cero.

    Por ejemplo, Fidelity Investments presentó en re:Invent 2022 cómo utilizan las tablas globales de DynamoDB para su sistema de gestión de pedidos. Su objetivo era lograr un procesamiento fiable y de baja latencia a una escala que no podrían alcanzar con el procesamiento local y, al mismo tiempo, mantener la resiliencia ante los fallos regionales y zonales de disponibilidad.

Si su objetivo es la resiliencia y la recuperación ante desastres, las tablas MRSC tienen latencias de escritura más altas y latencias de lectura más altas y de alta coherencia, pero admiten un RPO igual a cero. Las tablas globales de MREC admiten un RPO igual al retraso de replicación entre réplicas (normalmente unos segundos, según las regiones de la réplica). Para obtener más información, consulte Modos de coherencia en la documentación de DynamoDB.