Configuración multi-región con Amazon Aurora Global Database - Diseño de DR y lectura global

Logra un RPO inferior a 1 segundo con replicación física a nivel de almacenamiento. Presenta los procedimientos de failover planificado y no planificado, y el uso de Write Forwarding para lectura global.

Funcionamiento de Global Database

Aurora Global Database es una función que replica los datos de la región primaria a hasta 5 regiones secundarias. Mientras que las réplicas de lectura cross-region normales utilizan replicación lógica basada en binlog, Global Database utiliza replicación física a nivel de almacenamiento. Esto mantiene el lag de replicación normalmente por debajo de 1 segundo, con un impacto mínimo en el rendimiento del primario. Está disponible tanto para compatibilidad con MySQL como con PostgreSQL, y requiere clases de instancia db.r6g.large o superior.

Diseño de DR y failover

El failover planificado (Planned Failover) se utiliza para mantenimiento o migración de región, promoviendo la región secundaria a primaria con RPO cero. Se detiene la escritura en el primario, se espera a que se complete la replicación y luego se realiza el cambio, por lo que no hay pérdida de datos. El failover no planificado (Unplanned Failover) se utiliza ante fallos de la región primaria y normalmente se completa en menos de 1 minuto. Puede haber pérdida de datos equivalente al lag de replicación, pero el RPO es normalmente inferior a 1 segundo. Después del failover, es necesario cambiar la conexión de la aplicación al nuevo primario. Combinando health checks de Route 53 con enrutamiento de failover, se puede lograr el cambio automático a nivel DNS.

Uso de lectura global

Las réplicas de lectura en la región secundaria pueden procesar consultas de lectura, proporcionando lecturas de baja latencia a usuarios distribuidos globalmente. Al configurar la región de Tokio como primaria y la región de Virginia como secundaria, los usuarios en EE.UU. leen desde la réplica de lectura en Virginia y los usuarios en Japón leen desde el primario en Tokio. Las escrituras siempre se procesan en la región primaria, por lo que las cargas de trabajo con muchas escrituras favorecen a los usuarios cercanos a la región primaria. Al habilitar la función Write Forwarding, las solicitudes de escritura a la región secundaria se reenvían automáticamente al primario, eliminando la necesidad de lógica de distribución por región en la aplicación. Para ampliar conocimientos sobre diseño de bases de datos, también puedes utilizar libros especializados en Amazon.

Precios de Global Database

Los cargos adicionales de Global Database se generan por las I/O de escritura de datos replicados. Las I/O de replicación en la región secundaria cuestan aproximadamente 0.20 dólares por millón de solicitudes. Los precios de instancias y almacenamiento de la región secundaria son los mismos que Aurora normal, y la clase de instancia de las réplicas de lectura no necesita ser la misma que la del primario, pudiendo seleccionar instancias más pequeñas según la carga de lectura. Si se usa exclusivamente para DR sin usar réplicas de lectura, se puede mantener en espera con la instancia mínima y escalar al momento del failover para reducir costos. Los cargos de transferencia de datos entre regiones no se aplican a la replicación de Global Database.

Resumen

Aurora Global Database es un servicio que logra DR multi-región con RPO inferior a 1 segundo y reduce la latencia de cargas de trabajo de lectura global. Proporciona cambio de región con RPO cero mediante failover planificado y recuperación ante desastres en menos de 1 minuto mediante failover no planificado. Es la opción óptima como capa de datos para aplicaciones globales.