Actualización de las tablas globales a la versión actual (2019.11.21) desde la versión heredada (2017.11.29) - Amazon DynamoDB

Actualización de las tablas globales a la versión actual (2019.11.21) desde la versión heredada (2017.11.29)

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, ya que 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 utilizadas.

En esta sección se describe cómo actualizar las tablas globales a la versión 2019.11.21 (actual) desde 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.

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 para las tablas de la versión 2017.11.29 (heredada) y la 2019.11.21 (actual).

    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 añadir 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 añadir una réplica en una nueva región (incluso durante la creación). La versión 2019.11.21 (actual) permite añadir y eliminar réplicas en 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 2017.11.29 (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 y aws: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 de Periodo de vida (TTL) 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 de escalado automático entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración de escalado automático entre las réplicas.

  • La versión 2017.11.29 (heredada) no sincroniza la configuración de í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 de cifrado en reposo entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración de 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 a las tablas globales de la versión 2019.11.21 (actual), se deben cumplir los siguientes requisitos:

  • La configuración de Periodo de vida (TTL) 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 y aws: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 a UPDATING. 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:

  • En la fase 1, UpdateItem establece la marca de borrado.

  • En la fase 2, DeleteItem elimina el elemento.

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.

Para actualizar las tablas globales a la versión 2019.11.21 (actual)
  1. Abra la consola de DynamoDB en https://console.aws.amazon.com/dynamodb/home.

  2. 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).

  3. Elija la pestaña Global Tables (Tablas globales).

  4. Elija Update version (Actualizar versión).

    Captura de pantalla de la consola que muestra el botón Update (Actualizar).
  5. Lea y acepte los nuevos requisitos y, a continuación, elija Update version (Actualizar versión).

  6. 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.