Funcionamiento de las tablas globales de DynamoDB
Las tablas globales de varias cuentas amplían las capacidades totalmente administradas, sin servidor, de varias regiones y multiactivas de tablas globales de DynamoDB para abarcar varias cuentas de AWS. Las tablas globales de varias cuentas replican los datos de todas las regiones y cuentas de AWS, lo que proporciona la misma funcionalidad activo-activa que las tablas globales de la misma cuenta. Al escribir en cualquier réplica, DynamoDB replica los datos en todas las demás réplicas.
Entre las principales diferencias con respecto a las tablas globales de la misma cuenta se incluyen las siguientes:
-
La replicación de varias cuentas es compatible con las tablas globales de coherencia final de varias regiones (MREC).
-
Solo puede agregar réplicas comenzando con una tabla de una sola región. No se admite la conversión de una tabla global existente de la misma cuenta en una configuración de varias cuentas. Para migrar, debe eliminar las réplicas existentes para volver a una tabla de una sola región antes de crear una nueva tabla global de varias cuentas.
-
Cada réplica debe residir en una cuenta de AWS independiente. Para una tabla global de varias cuentas con N réplicas, debe tener N cuentas.
-
Las tablas globales de varias cuentas utilizan una configuración de tabla unificada en todas las réplicas de forma predeterminada. Todas las réplicas comparten automáticamente la misma configuración (como el modo de rendimiento y TTL) y, a diferencia de las tablas globales de la misma cuenta, estas configuraciones no se pueden invalidar por réplica.
-
Los clientes deben proporcionar permisos de replicación a la entidad principal del servicio de tablas globales de DynamoDB en sus políticas de recursos.
Las tablas globales de varias cuentas utilizan la misma tecnología de replicación subyacente que las tablas globales de la misma cuenta. La configuración de las tablas se replica automáticamente en todas las réplicas regionales y los clientes no pueden invalidar ni personalizar la configuración por réplica. Esto garantiza una configuración uniforme y un comportamiento predecible en varias cuentas de AWS que participan en la misma tabla global.
La configuración de las tablas globales de DynamoDB define cómo se comporta una tabla y cómo se replican los datos en todas las regiones. Estos ajustes se configuran mediante las API del plano de control de DynamoDB durante la creación de la tabla o al agregar una nueva réplica regional.
Al crear una tabla global de varias cuentas, los clientes deben configurar GlobalTableSettingsReplicationMode = ENABLED para cada réplica regional. Esto garantiza que los cambios de configuración realizados en una región se propaguen automáticamente a todas las demás regiones que participan en la tabla global.
Puede habilitar la replicación de la configuración después de crear la tabla. Esto es compatible con el escenario en el que una tabla se crea originalmente como una tabla regional y, posteriormente, se actualiza a una tabla global de varias cuentas.
Configuración sincronizada
Los ajustes de tabla siguientes siempre se sincronizan entre todas las réplicas de una tabla global de varias cuentas:
nota
a diferencia de las tablas globales de la misma cuenta, las tablas globales de varias cuentas no permiten anular esta configuración por región. La única excepción es que se permiten las invalidaciones de las políticas de escalado automático de lectura (tablas y GSI), ya que son recursos externos independientes.
-
Modo de capacidad (capacidad aprovisionada o bajo demanda)
-
Capacidad de lectura y escritura aprovisionada de tablas
-
Escalado automático de lectura y escritura de tablas
-
Definición del índice secundario local (LSI)
-
Definición del índice secundario global (GSI)
-
Capacidad de lectura y escritura aprovisionada de GSI
-
Escalado automático de lectura y escritura de GSI
-
Definición de flujos en modo de MREC
-
Tiempo de vida (TTL)
-
Rendimiento en caliente
-
Rendimiento máximo de lectura y escritura bajo demanda
Configuración no sincronizada
Los ajustes siguientes no se sincronizan entre las réplicas y se deben configurar de forma independiente para cada tabla de réplicas de cada región.
-
Clase de tabla
-
Tipo de cifrado del servidor (SSE)
-
Recuperación en un momento dado
-
ID de clave de KMS de cifrado del servidor (SSE)
-
Protección contra eliminación
-
Kinesis Data Streams (KDSD)
-
Etiquetas
-
Política de recursos
-
Información de colaboradores de Cloudwatch (CCI) de tablas
-
Información de colaboradores de Cloudwatch (CCI) de GSI
Supervisión
Las tablas globales configuradas para una coherencia final de varias regiones (MREC) publican la métrica ReplicationLatency en CloudWatch. Esta métrica realiza un seguimiento del tiempo transcurrido entre el momento en que un elemento se escribe en una tabla de réplica y el momento en que dicho elemento aparece en otra réplica de la tabla global. ReplicationLatency se expresa en milisegundos y se emite para cada par de región de origen y destino en una tabla global.
Los valores típicos de ReplicationLatency dependen de la distancia entre las regiones de AWS elegidas, así como de otras variables, como el tipo de carga de trabajo y el rendimiento. Por ejemplo, una réplica de origen en la región Oeste de EE. UU. (Norte de California) (us-west-1) tiene un nivel más bajo de ReplicationLatency hacia la región Oeste de EE. UU. (Oregón) (us-west-2) en comparación con la región África (Ciudad del Cabo) (af-south-1).
Un valor en aumento de ReplicationLatency podría indicar que las actualizaciones de una réplica no se están propagando hacia otras tablas de réplica de manera puntual. En este caso, puede redirigir temporalmente la actividad de lectura y escritura de la aplicación a otra región de AWS.
Gestión de los problemas de latencia de replicación en tablas globales de varias cuentas
Si ReplicationLatency sobrepasa las 3 horas debido a problemas provocados por el cliente en una tabla de réplicas, DynamoDB envía una notificación solicitando al cliente que aborde el problema subyacente. Los problemas más comunes inducidos por el cliente que pueden impedir la replicación son:
-
Eliminar los permisos necesarios de la política de recursos de la tabla de réplicas.
-
Excluirse de una región de AWS que aloja una réplica de la tabla global de varias cuentas.
-
Denegar los permisos de clave de KMS de AWS de la tabla necesarios para descifrar los datos.
DynamoDB envía una notificación inicial en un plazo de 3 horas si la latencia de replicación es elevada, seguida de una segunda notificación tras 20 horas si el problema sigue sin resolverse. Si el problema no se corrige dentro del intervalo de tiempo requerido, DynamoDB desasociará automáticamente la réplica de la tabla global. A continuación, la réplica afectada se convertirá en una tabla regional.