|
Si bien decenas de miles de clientes utilizan con éxito las tablas globales de Amazon DynamoDB con una consistencia eventual, estamos viendo necesidades emergentes de una resistencia aún más fuerte. Muchas organizaciones encuentran que la arquitectura de zona de múltiples disponibilidad de DynamodB y, finalmente, las tablas globales consistentes cumplen con sus requisitos, pero las aplicaciones críticas como los sistemas de procesamiento de pagos y los servicios financieros exigen más.
Para estas aplicaciones, los clientes requieren un objetivo de punto de recuperación cero (RPO) durante eventos raros en toda la región, lo que significa que puede dirigir su aplicación a leer los últimos datos de cualquier región. Sus aplicaciones de múltiples regiones siempre deben acceder a los mismos datos, independientemente de la ubicación.
A partir de hoy, puede usar una nueva capacidad de tablas globales de Amazon Dynamodb que proporciona una consistencia sólida de región múltiple (MRSC), lo que permite cero RPO. Esta capacidad, anunciada por primera vez como una vista previa en AWS Re: Invent 2024, simplifica la construcción de aplicaciones globales altamente resistentes.
Así es como puede habilitar MRSC comenzando con una tabla de DynamoDB vacía existente:
Con MRSC, DynamoDB ahora le ofrece el más alto nivel de resiliencia para sus aplicaciones. Si el procesamiento de aplicaciones se interrumpe en una región, puede redirigir el tráfico a otra región que contiene una réplica de MRSC y saber que procesará los últimos datos.
Empezando
Déjame guiarte a través de cómo puedes usar esta nueva capacidad.
Para comenzar a usar MRSC, necesito crear una tabla global a partir de una tabla DynamodB existente que no contenga ningún dato. Navego a mi tabla existente, seleccione la Mesas globales pestaña y seleccione Crear réplica.
La arquitectura de disponibilidad MRSC requiere tres regiones de AWS. Puedo configurar MRSC con tres réplicas completas o con dos réplicas y un testigo. Un testigo contiene solo datos de cambio replicados para proporcionar la disponibilidad requerida sin mantener una copia completa de los datos de mi tabla.
La siguiente captura de pantalla muestra cómo configuro MRSC con dos réplicas y un testigo. Para configurar MRSC con tres réplicas completas, puedo borrar Configurar la Región 2 como testigo.
Si necesito actualizar mi tabla existente programáticamente, puedo usar el Amazon Q CLI para generar el comando requerido con el siguiente mensaje:
> Hey Q! Update my existing DynamoDB table called "demo-mrsc" in us-east-1 with multi-Region strong consistency across us-east-2 with witness in us-west-2 Regions
Poco después, Q CLI responderá con el siguiente comando:
> To update your DynamoDB table with multi-Region strong consistency, you'll need to use the update-table command with the appropriate parameters. Here's how you would do it:
aws dynamodb update-table \
--table-name demo-mrsc \
--replica-updates '[{"Create": {"RegionName": "us-east-2"}}]' \
--global-table-witness-updates '[{"Create": {"RegionName": "us-west-2"}}]' \
--multi-region-consistency STRONG \
--region us-east-1
Después de que haya terminado el procesamiento, puedo verificar el estado de mi tabla MRSC Global. Puedo ver que tengo un testigo configurado para mi tabla Global Dynamodb. Un testigo reduce los costos y al mismo tiempo proporciona los beneficios de resiliencia de la consistencia de múltiples regiones.
Entonces, en mi aplicación, puedo usar ConsistentRead
leer datos con fuerte consistencia. Aquí hay un ejemplo de Python:
import boto3
# Configure the DynamoDB client for your region
dynamodb = boto3.resource('dynamodb', region_name="us-east-2")
table = dynamodb.Table('demo-mrsc')
pk_id = "demo#test123"
# Read with strong consistency across regions
response = table.get_item(
Key={
'PK': pk_id
},
ConsistentRead=True
)
print(response)
Para las operaciones que requieren la mayor resiliencia, puedo usar ConsistentRead=True
. Para operaciones menos críticas donde la consistencia eventual es aceptable, puedo omitir este parámetro para mejorar el rendimiento y reducir los costos.
Cosas adicionales que saber
Aquí hay un par de cosas a tener en cuenta:
- Disponibilidad -La capacidad de consistencia de Amazon Dynamodb Multi-Region Strong está disponible en las siguientes regiones de AWS: US East (Ohio, N. Virginia), US West (Oregon), Asia Pacífico (Osaka, Seúl, Tokio) y Europa (Frankfurt, Irlanda, Londres, París)
- Fijación de precios -El precio de consistencia de múltiples regiones sigue la estructura de precios de tablas globales existentes. DynamodB recientemente redujo el precio de las tablas globales hasta en un 67 por ciento, lo que hace que esta arquitectura altamente resistente sea más asequible que nunca. Visite Amazon DynamoDB reduce los precios para el rendimiento a pedido y las tablas globales en el blog de la base de datos de AWS para obtener más información.
Obtenga más información sobre cómo puede lograr el más alto nivel de resiliencia de aplicaciones, permita que sus aplicaciones estén siempre disponibles y siempre lea los últimos datos, independientemente de la región visitando las tablas globales de Amazon DynamoDB.
¡Feliz edificio!
– Donnie