Tablas globales: replicación en varias regiones para DynamoDB
Las tablas globales de Amazon DynamoDB son una opción de base de datos totalmente administrada, multirregión y multiactiva que ofrece un rendimiento de lectura y escritura rápido y localizado para aplicaciones globales escaladas masivamente.
Las tablas globales proporcionan una solución completamente administrada para implementar una base de datos en varias regiones y multiactiva sin tener que crear ni mantener su propia solución de replicación. Puede especificar las regiones de AWS en las que desea que las tablas estén disponibles y DynamoDB propagará los cambios de datos en curso a todas ellas. Las tablas globales están disponibles en todas las regiones.
Entre los beneficios específicos del uso de tablas globales se incluyen:
Replicar automáticamente sus tablas DynamoDB en las regiones de AWS que elija-
Eliminar el difícil trabajo de replicar datos entre regiones y resolver conflictos de actualización, para que pueda centrarse en la lógica de negocio de su aplicación.
Ayudar a que sus aplicaciones sigan estando altamente disponibles incluso en el improbable caso de aislamiento o degradación de toda una región.
Las tablas globales de DynamoDB son ideales para aplicaciones con escalabilidad horizontal masiva que cuenten con usuarios de todo el mundo. En esta situación, los usuarios esperan conseguir un rendimiento óptimo de la aplicación. Las tablas globales le proporcionan la opción de replicar varias versiones activas en varias regiones de AWS de todo el mundo. Le permiten ofrecer a los usuarios acceso a los datos de baja latencia, independientemente de dónde se encuentren.
El siguiente vídeo le ofrece una introducción a las tablas globales.
Puede establecer tablas globales en la consola de administración de AWS o en la AWS CLI. Las tablas globales utilizan las API de DynamoDB existentes, por lo que no es necesario realizar cambios en la aplicación. Solo paga por los recursos aprovisionados, sin costos iniciales ni compromisos.
Temas
- Replicación de datos sin problemas en todas las regiones con tablas globales
- Proporcionar seguridad y acceso a las tablas globales con AWS KMS
- Tablas globales: cómo funcionan
- Prácticas recomendadas y requisitos para la administración de tablas globales
- Tutorial: Creación de una tabla global
- Monitoreo de tablas globales
- Uso de IAM con tablas globales
- Determinación de la versión de las tablas globales utilizadas
- Actualización de las tablas globales de la versión 2017.11.29 (heredada) a la versión 2019.11.21 (actual)
Replicación de datos sin problemas en todas las regiones con tablas globales
Imagine que tiene una gran cartera de clientes repartidos en tres áreas geográficas: la costa este de Estados Unidos, la costa oeste de Estados Unidos y Europa Occidental. Estos clientes pueden actualizar su información de perfil mediante la aplicación. Para satisfacer este caso de uso, es preciso crear tres tablas de DynamoDB idénticas denominadas CustomerProfiles
en tres regiones de AWS distintas donde se encuentren los clientes. Estas tres tablas son completamente independientes: los cambios realizados en los datos de una tabla no se reflejan en el resto. Sin una solución de replicación administrada, tendría que escribir código para replicar los cambios de datos. Sin embargo, esto le llevaría mucho tiempo y requeriría un esfuerzo enorme.
En lugar de escribir su propio código, puede crear una tabla global que se componga de tres tablas CustomerProfiles
específicas de cada región. A continuación, DynamoDB replica automáticamente los cambios realizados en los datos en esas tablas, para que los datos de CustomerProfiles
de una región se propaguen a la perfección en otras regiones. Asimismo, aunque una de las regiones de AWS no esté disponible durante un tiempo, sus clientes todavía pueden obtener acceso a los mismos datos de CustomerProfiles
desde otras regiones.
nota
-
La compatibilidad de regiones para tablas globales Versión 2017.11.29 (heredada) de las tablas globales se limita a: EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Norte de California), EE. UU. Oeste (Oregón), Europa (Irlanda), Europa (Londres), Europa (Fráncfort), Asia-Pacífico (Singapur), Asia-Pacífico (Sídney), Asia-Pacífico (Tokio) y Asia-Pacífico (Seúl).
-
Las operaciones transaccionales proporcionan garantías de atomicidad, uniformidad, aislamiento y durabilidad (ACID) solo en la región en la que se crea la escritura originalmente. No se admiten las transacciones entre regiones en las tablas globales. Por ejemplo, si tiene una tabla global con réplicas en las regiones de EE. UU. Este (Ohio) y EE. UU. Oeste (Oregón) y realiza una operación TransactWriteItems en la región de EE. UU. Este (Norte de Virginia), puede observar transacciones completadas parcialmente en la región EE. UU. (Oregón) a medida que los cambios se replican. Solo se replicarán los cambios en otras regiones cuando se hayan confirmado en la región de origen.
-
Si se desactiva una región de AWS, DynamoDB eliminará esta réplica del grupo de replicación 20 horas después de detectar la región AWS como inaccesible. La réplica no se eliminará y la replicación se detendrá desde y hacia esta región.
-
Debe esperar 24 horas desde el momento en que agrega una réplica de lectura para eliminar correctamente una tabla de origen. Si intenta eliminar una tabla durante las primeras 24 horas después de agregar una réplica de lectura, recibirá un mensaje de error que dice: "No se puede eliminar la réplica porque ha actuado como región de origen para las nuevas réplicas que se han agregado en la tabla en las últimas 24 horas".
-
No hay impacto en el rendimiento de las regiones de origen cuando se agregan nuevas réplicas.
-
Al cambiar la capacidad de lectura y escritura de una réplica, la nueva capacidad de escritura se refleja en otras réplicas sincronizadas, pero la nueva capacidad de lectura no.
Para obtener más información acerca de la disponibilidad y los precios de las regiones de AWS, consulte Precio de Amazon DynamoDB
Proporcionar seguridad y acceso a las tablas globales con AWS KMS
-
Puede efectuar operaciones de AWS KMS en sus tablas globales mediante el uso del rol vinculado al servicio
AWSServiceRoleForDynamoDBReplication
con la clave administrada por el cliente o la Clave administrada de AWS utilizada para cifrar la réplica. -
Si la clave administrada por el cliente utilizada para cifrar una réplica no está accesible, DynamoDB eliminará esta réplica del grupo de replicación. La réplica no se eliminará y la replicación se detendrá desde y hacia esta región, 20 horas después de detectar que la clave KMS es inaccesible.
-
Si desea desactivar la clave administrada por el cliente que se utiliza para cifrar una réplica de tabla, únicamente debe hacerlo si la clave ya no se utiliza para cifrar una réplica de tabla. Después de ejecutar un comando para eliminar una réplica de tabla, debe esperar a que se complete la operación de eliminación y a que la tabla global se convierta en
Active
antes de desactivar la clave. Si no lo hace, podría producirse una replicación parcial de datos desde y hacia la réplica de tabla. -
Si desea modificar o eliminar la política de rol de IAM para la réplica de tabla, debe hacerlo cuando la réplica de tabla se encuentre en el estado
Active
. Si no lo hace, se puede producir un error al crear, actualizar o eliminar la réplica de tabla. -
Las tablas globales se crean con la protección contra eliminación desactivada de forma predeterminada. Aunque la protección contra la eliminación esté activada para una tabla global, cualquier réplica de esa tabla comenzará con la protección contra la eliminación desactivada de forma predeterminada.
-
Mientras la protección contra el borrado esté desactivada para una tabla, es posible eliminarla accidentalmente. Mientras esté activada la protección contra borrado para una tabla, nadie podrá eliminarla.
-
Si cambia la configuración de protección contra eliminación de una tabla de réplica, no se actualizarán las demás réplicas del grupo.
nota
Las claves administradas por el cliente no se admiten en Versión 2017.11.29 (heredada) de las tablas globales. Si desea utilizar una clave administrada por el cliente en una tabla global de DynamoDB, debe actualizar la tabla a la versión 2019.11.21 de las tablas globales y, después, activarla.