Actualización de las tablas globales de DynamoDB de la versión 2017.11.29 (heredada) a la versión 2019.11.21 (actual)
nota
Hay disponibles dos versiones de las tablas globales de DynamoDB: versión 2019.11.21 (actual) de las tablas globales y Versión 2017.11.29 (heredada) de las tablas globales. Los clientes deberían utilizar la versión 2019.11.21 (actual) siempre que sea posible, porque proporciona mayor flexibilidad, mayor eficacia y consume menos capacidad de escritura que la 2017.11.29 (heredada). Para determinar qué versión está utilizando, consulte Determinación de la versión de las tablas globales de DynamoDB utilizadas.
En esta sección se describe cómo actualizar las tablas globales a la versión 2019.11.21 (actual) con la consola de DynamoDB. La actualización de la versión 2017.11.29 (heredada) a la versión 2019.11.21 (actual) es una acción única y no se puede revertir. Actualmente, solo puede actualizar las tablas globales desde la consola.
Temas
Diferencias de comportamiento entre las versiones heredada y actual
En la siguiente lista se describen las diferencias de comportamiento entre las versiones heredada y actual de las tablas globales.
-
La versión 2019.11.21 (actual) consume menos capacidad de escritura para varias operaciones de DynamoDB en comparación con la 2017.11.29 (heredada) y, por lo tanto, es más rentable para la mayoría de los clientes. Las diferencias entre estas operaciones de DynamoDB son las siguientes:
-
La invocación de PutItem para un elemento de 1 KB en una región y replicarlo en otras regiones requiere dos rWRU por región para la versión 2017.11.29 (heredada), pero solo un rWrU para la 2019.11.21 (actual).
-
La invocación de UpdateItem para un elemento de 1 KB requiere dos rWRU en la región de origen y un rWrU por región de destino para la versión 2017.11.29 (heredada), pero solo un rWrU para las regiones de origen y destino para la 2019.11.21 (actual).
-
La invocación de DeleteItem para un elemento de 1 KB requiere un rWRU en la región de origen y dos rWrU por región de destino para la versión 2017.11.29 (heredada), pero solo un rWrU para las regiones de origen o destino para la 2019.11.21 (actual).
La siguiente tabla muestra el consumo de rWRU de las tablas de la versión 2017.11.29 (heredada) y de la 2019.11.21 (actual) para un elemento de 1 KB en dos regiones.
Operación 2017.11.29 (heredada) 2019.11.21 (actual) Ahorro PutItem 4 rWRU 2 rWRU 50% UpdateItem 3 rWRU 2 rWRU 33 % DeleteItem 3 rWRU 2 rWRU 33 % -
-
La versión 2017.11.29 (heredada) solo está disponible en 11 Regiones de AWS. Sin embargo, la versión 2019.11.21 (actual) está disponible en todas las Regiones de AWS.
-
Para crear tablas globales de la versión 2017.11.29 (heredada), primero debe crear un conjunto de tablas regionales vacías y, a continuación, invocar la API CreateGlobalTable para formar la tabla global. Para crear tablas globales de la versión 2019.11.21 (actual), invoque la API UpdateTable para agregar una réplica a una tabla regional existente.
-
La versión 2017.11.29 (heredada) requiere que se vacíen todas las réplicas de la tabla antes de agregar una réplica en una nueva región (incluso durante la creación). La versión 2019.11.21 (actual) permite agregar y eliminar réplicas de regiones de una tabla que ya contenga datos.
-
La versión 2017.11.29 (heredada) utiliza el siguiente conjunto dedicado de API de plano de control para administrar las réplicas:
La versión 2019.11.21 (actual) usa las API DescribeTable y UpdateTable para administrar las réplicas.
-
La versión 2017.11.29 (heredada) publica dos registros de DynamoDB Streams para cada escritura. La versión 2019.11.21 (actual) solo publica un registro de DynamoDB Streams para cada escritura.
-
La versión 2017.11.29 (heredada) rellena y actualiza los atributos
aws:rep:deleting
,aws:rep:updateregion
yaws:rep:updatetime
. La versión 2019.11.21 (actual) no rellena ni actualiza estos atributos. -
La versión 2017.11.29 (heredada) no sincroniza la configuración Uso del período de vida (TTL) en DynamoDB entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración de TTL entre las réplicas.
-
La versión 2017.11.29 (heredada) no replica las eliminaciones de TTL en otras réplicas. La versión 2019.11.21 (actual) replica las eliminaciones de TTL en todas las réplicas.
-
La versión 2017.11.29 (heredada) no sincroniza la configuración del escalado automático entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración del escalado automático entre las réplicas.
-
La versión 2017.11.29 (heredada) no sincroniza la configuración del índice secundario global (GSI) entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración de GSI entre las réplicas.
-
La versión 2017.11.29 (heredada) no sincroniza la configuración del cifrado en reposo entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración del cifrado en reposo entre las réplicas.
-
La versión 2017.11.29 (heredada) publica la métrica
PendingReplicationCount
. La versión 2019.11.21 (actual) no publica esta métrica.
Requisitos previos para la actualización
Antes de empezar a actualizar las tablas globales a la versión 2019.11.21 (actual), se deben cumplir los siguientes requisitos previos:
-
La configuración de Uso del período de vida (TTL) en DynamoDB en las réplicas debe ser consistente en todas las regiones.
-
Las definiciones del índice secundario global (GSI) en las réplicas deben ser consistentes en todas las regiones.
-
La configuración de cifrado en reposo en las réplicas debe ser consistente en todas las regiones.
-
El escalado automático de DynamoDB está activado para las WCU de todas las réplicas o el modo de capacidad bajo demanda debe estar activado para todas las réplicas.
-
Las aplicaciones no requieren la presencia de los atributos
aws:rep:deleting
,aws:rep:updateregion
yaws:rep:updatetime
en los elementos de la tabla.
Permisos necesarios para actualizar las tablas globales
Para actualizar a la versión 2019.11.21 (actual), debe tener permisos dynamodb:UpdateGlobalTableversion
en todas las regiones que tengan réplicas. Estos permisos se suman a los permisos necesarios para acceder a la consola de DynamoDB y ver las tablas.
La siguiente política de IAM concede permisos para actualizar cualquier tabla global a la versión 2019.11.21 (actual).
{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": "*" } ] }
La siguiente política de IAM concede permisos para actualizar solo la tabla global Music
, con réplicas en dos regiones, a la versión 2019.11.21 (actual).
{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Music", "arn:aws:dynamodb:ap-southeast-1:123456789012:table/Music", "arn:aws:dynamodb:us-east-2:123456789012:table/Music" ] } ] }
Qué esperar durante la actualización
-
Todas las réplicas de tablas globales seguirán procesando el tráfico de lectura y escritura durante la actualización.
-
El proceso de actualización tarda entre unos minutos a varias horas, según el tamaño de la tabla y la cantidad de réplicas.
-
Durante el proceso de actualización, el valor de TableStatus cambiará de
ACTIVE
aUPDATING
. Puede ver el estado de la tabla invocando la API DescribeTable o con la vista Tablas de la consola de DynamoDB. -
El escalado automático no ajustará la configuración de capacidad aprovisionada para una tabla global mientras se esté actualizando la tabla. Le recomendamos encarecidamente que configure la tabla en el modo de capacidad bajo demanda durante la actualización.
-
Si decide utilizar capacidad aprovisionada con el escalado automático durante la actualización, debe aumentar el rendimiento mínimo de lectura y escritura en las políticas para contemplar el aumento esperado de tráfico y evitar cualquier limitación durante la actualización.
-
Cuando finaliza el proceso de actualización, el estado de la tabla cambia a
ACTIVE
.
Comportamiento de DynamoDB Streams antes, durante y después de la actualización
Operación | Regiones de réplica | Comportamiento antes de la actualización | Comportamiento durante la actualización | Comportamiento tras la actualización |
---|---|---|---|---|
Put o Update |
Origen |
Las marcas de tiempo se rellenan mediante UpdateItem. | Las marcas de tiempo se rellenan mediante PutItem. | No se genera ninguna marca de tiempo visible para el cliente. |
Se generan dos registros de Streams. El primer registro contiene los atributos escritos por el cliente. El segundo registro contiene los atributos aws:rep:* . |
Se generan dos registros de Streams. El primer registro contiene los atributos escritos por el cliente. El segundo registro contiene los atributos aws:rep:* . |
Se genera un único registro de Streams que contiene los atributos escritos por el cliente. | ||
Se consumen dos rWCU por cada escritura del cliente. | Se consumen dos rWCU por cada escritura del cliente. | Se consume una rWCU por cada escritura del cliente. | ||
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
||
Destino |
La replicación se realiza mediante PutItem. | La replicación se realiza mediante PutItem. | La replicación se realiza mediante PutItem. | |
Se genera un único registro de Streams, que contiene tanto los atributos escritos por el cliente como los atributos aws:rep:* . |
Se genera un único registro de Streams, que contiene tanto los atributos escritos por el cliente como los atributos aws:rep:* . |
Se genera un único registro de Streams, que solo contiene los atributos escritos por el cliente sin atributos de replicación. | ||
Se consume una rWCU si el elemento existe en la región de destino. Se consumen dos rWCU si el elemento no existe en la región de destino. | Se consume una rWCU si el elemento existe en la región de destino. Se consumen dos rWCU si el elemento no existe en la región de destino. | Se consume una rWCU por cada escritura del cliente. | ||
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
||
Delete |
Origen |
Elimine cualquier elemento con una marca de tiempo más pequeña con DeleteItem. | Elimine cualquier elemento con una marca de tiempo más pequeña con DeleteItem. | Elimine cualquier elemento con una marca de tiempo más pequeña con DeleteItem. |
Se genera un único registro de Streams, que contiene tanto los atributos escritos por el cliente como los atributos aws:rep:* . |
Se genera un único registro de Streams, que contiene tanto los atributos escritos por el cliente como los atributos aws:rep:* . |
Se genera un único registro de Streams, que contiene los atributos escritos por el cliente. | ||
Se consume una rWCU por cada eliminación del cliente. | Se consume una rWCU por cada eliminación del cliente. | Se consume una rWCU por cada eliminación del cliente. | ||
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
||
Destino |
Se realizan eliminaciones en dos fases:
|
Elimina el elemento mediante DeleteItem. | Elimina el elemento mediante DeleteItem. | |
Se generan dos registros de Streams. El primer registro contiene el cambio en el campo aws:rep:deleting . El segundo registro contiene los atributos escritos por el cliente y los atributos. |
Se genera un único registro de Streams, que contiene los atributos escritos por el cliente. | Se genera un único registro de Streams, que contiene los atributos escritos por el cliente. | ||
Se consumen dos rWCU por cada eliminación del cliente. | Se consume una rWCU por cada eliminación del cliente. | Se consume una rWCU por cada eliminación del cliente. | ||
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
Actualización a la versión 2019.11.21 (actual)
Siga estos pasos para actualizar la versión de las tablas globales de DynamoDB mediante la AWS Management Console.
Actualización de las tablas globales a la versión 2019.11.21 (actual)
-
Abra la consola de DynamoDB en https://console.aws.amazon.com/dynamodb/home
. -
En el panel de navegación del lado izquierdo de la consola, elija Tablas y, a continuación, seleccione la tabla global que desea actualizar a la versión 2019.11.21 (actual).
-
Elija la pestaña Global Tables (Tablas globales).
-
Elija Update version (Actualizar versión).
-
Lea y acepte los nuevos requisitos y, a continuación, elija Update version (Actualizar versión).
-
Una vez completado el proceso de actualización, la versión de las tablas globales que aparece en la consola cambia a 2019.11.21.