Blog de Amazon Web Services (AWS)
Presentamos la replicación de datos entre regiones de Amazon MQ para agentes de ActiveMQ
Dominic Gagné, ingeniero sénior de desarrollo de software, y Vinodh Kannan Sadayamuthu, arquitecto sénior de soluciones.
Traducido al español por: Michael Estiven Guerrero Acevedo arquitecto sénior de soluciones.
AmazonMQ ahora admite la replicación de datos entre regiones para los agentes de ActiveMQ. Esta función le permite crear aplicaciones de mensajería resilientes a nivel regional y facilita la configuración de la replicación de mensajes entre regiones entre los agentes(brokers) de ActiveMQ en Amazon MQ. Esta entrada de blog explica cómo funciona la replicación de datos entre regiones en Amazon MQ, cómo configurar los agentes de réplicas entre regiones para ActiveMQ y cómo probar la promoción de un agente de réplicas.
Amazon MQ es un servicio gestionado de intermediación de mensajes para Apache ActiveMQ y RabbitMQ que simplifica la configuración y el funcionamiento de los agentes de mensajería en AWS.
La replicación entre regiones mejora la resiliencia y las capacidades de recuperación ante desastres de sus sistemas. Esta nueva función de Amazon MQ facilita el aumento de la resiliencia de los sistemas de mensajería ActiveMQ en todas las regiones de AWS.
Cómo funciona la replicación de datos entre regiones en Amazon MQ para ActiveMQ
La función de replicación de datos entre regiones de Amazon MQ para ActiveMQ replica el estado del agente desde el agente principal(primary broker) de una región de AWS hasta el agente de réplicas(replica broker) de otra región. El estado del agente consiste en los mensajes que un productor de mensajes ha enviado a un agente. Además, se replican las confirmaciones y transacciones de los mensajes. Los mensajes programados y la configuración XML del agente no se replican del agente principal al agente de réplicas.
La replicación de estados se produce de forma asíncrona y se ejecuta en segundo plano. Cuando se envía un mensaje a un agente con capacidad de replicación de datos entre regiones, los datos se conservan tanto en el almacén de datos principal como en una cola que se utiliza para replicar los datos. El agente de réplicas actúa como cliente de esta cola y consume los datos del agente principal que representan el estado del agente.
En un momento dado, solo el agente principal está disponible para las conexiones con los clientes. El agente de réplicas es un intermediario activo y replica de forma pasiva el estado del agente principal. Sin embargo, no acepta conexiones de clientes. El siguiente diagrama muestra una versión simplificada de un par de agentes de replicación de datos entre regiones. Todo el tráfico de replicación se cifra mediante TLS y permanece dentro de la red troncal privada de AWS.
Configuración de agentes de réplicas entre regiones para Amazon MQ para ActiveMQ
Para configurar un agente de réplicas entre regiones, su agente principal de Amazon MQ para ActiveMQ debe cumplir los siguientes criterios de aptitud:
- ActiveMQ versión 5.17.6 o superior
- Tamaño de instancia m5.large o superior
- Se ha habilitado el despliegue de agente activo/ en espera
- Estar en estado de ejecución
Si no tiene un agente ActiveMQ que cumpla estos criterios, consulte Creación y configuración de un agente ActiveMQ para obtener instrucciones sobre cómo crear un agente principal.
Para configurar la replicación entre regiones
- Navegue hasta la consola de Amazon MQ y elija Crear agente de réplicas.
- Seleccione un agente principal de la lista de agentes principales elegibles y elija Siguiente.
- En Detalles del agente de réplicas, seleccione la región de su agente de réplicas e introduzca el nombre del agente de réplicas.
- En el panel de usuario para el agente de réplicas de la consola ActiveMQ, introduzca un nombre de usuario y una contraseña para el acceso del agente.
- En el panel Usuario de replicación de datos para conectar el acceso entre agentes, introduzca el nombre de usuario y la contraseña del usuario de replicación.
- En el panel de ajustes adicionales, mantenga los valores predeterminados y seleccione Siguiente.
- Revise la configuración y seleccione Crear agente de réplicas.
Nota: El tipo de acceso del agente se establece automáticamente en función del tipo de acceso del agente principal. - El proceso de creación tarda hasta 25 minutos. Una vez finalizada la creación del agente de réplicas, inicie la replicación entre el agente principal y el agente de réplicas reiniciando el agente principal.
- Una vez que se haya reiniciado el agente principal y su estado sea En ejecución, podrá ver los detalles de la réplica en el panel de replicación de datos del agente principal.
Ambos agentes ahora se sincronizan entre sí para establecer una red y una conexión interregional a través de las cuales se replica el estado del agente. Una vez que ambos agentes estén en el estado En ejecución, el agente principal acepta las conexiones con los clientes y transfiere todos los cambios de estado del agente (mensajes, confirmaciones, transacciones, etc.) al agente de réplicas.
El agente de réplicas ahora refleja de forma asíncrona el estado del agente principal. Sin embargo, no estará disponible para las conexiones de los clientes hasta que se promueva mediante una conmutación o una conmutación por error. Estas operaciones se describen en la siguiente sección.
Probar la replicación de datos y promoción del agente de réplicas
Hay dos formas de promocionar un agente de réplicas: iniciar una conmutación(switchover) o una conmutación por error(failover).
Conmutación | Conmutación por error |
|
|
|
|
|
|
Para iniciar una conmutación por error o una conmutación
- Vaya a la consola de Amazon MQ, elija su agente principal e inicie sesión en la consola web ActiveMQ mediante las direcciones URL que se encuentran en el panel de conexiones.
- En el menú superior, selecciona Colas. Debería poder ver cuatro colas de
ActiveMQ. Plugin.Replication
utilizadas por la función de replicación. - Para probar la replicación de mensajes del agente principal a un agente de réplicas, cree una cola y envíe los mensajes. Para crear la cola:
- En Nombre de cola, escriba TestQueue.
- Elija Crear.
- En Operaciones de
TestQueue
, seleccione Enviar a y lleve a cabo los siguientes pasos:- En Número de mensajes que se van a enviar, introduzca 10 y mantenga los demás valores predeterminados.
- En Cuerpo del mensaje, introduzca un mensaje de prueba.
- Seleccione Enviar.
- Para promocionar el agente de réplicas, vaya a la consola de Amazon MQ y cambie la región a la región de AWS en la que se encuentra el agente de réplicas.
- Seleccione el agente de réplicas (en este ejemplo, llamado
Secondarybroker
) y elija Promocionar réplica. - En la ventana emergente Promocionar réplica agente:
- Seleccione Conmutación(Switchover) o Conmutación por error(Failover).
- Introduzca confirmar en el cuadro de texto.
- Seleccione Confirmar.
- Mientras se promociona un agente de réplicas, su estado de replicación cambia a Promoción en curso. El estado de replicación del agente principal correspondiente cambia a Degradación en curso.
Réplica del estado de Secondarybroker
: promoción en curso:
Estado del agente principal: Degradación en curso:
Estado de Secondarybroker
: ascendido a nuevo agente principal:
- Cuando el estado de
Secondarybroker
sea En ejecución, inicie sesión en la consola web ActiveMQ desde las direcciones URL que se encuentran en el panel de conexiones. Puede ver los mensajes replicados enviados desde el agente principal anterior en el paso 4 enTestQueue
:
Monitoreo de la replicación de datos entre regiones
Para monitorear el progreso de la replicación de datos entre regiones, puede usar las métricas de Amazon CloudWatch TotalReplicationLag
y ReplicationLag
.
Puede utilizar estas dos métricas para monitorear el progreso de una conmutación. Cuando su valor llegue a cero, la conmutación se completará porque los estados del agente se han sincronizado y el agente de réplicas comienza a aceptar conexiones de clientes. Si la conmutación no avanza lo suficientemente rápido o si necesita que el agente de réplicas esté disponible de inmediato para atender el tráfico de clientes, puede solicitar una conmutación por error en cualquier momento.
Nota: Una conmutación por error puede interrumpir una conmutación en curso. Sin embargo, una conmutación no puede interrumpir una conmutación por error en curso.
Al emitir una solicitud de conmutación por error, el agente de réplicas pasa a estar disponible de forma inmediata, pero no garantiza qué datos se han replicado en el agente de réplicas. Esto significa que una conmutación por error puede hacer que el seguimiento y la reconciliación de datos sean más difíciles para la aplicación de su cliente que una conmutación.
Por este motivo, recomendamos empezar siempre con una conmutación e interrumpirla con una conmutación por error si es necesario. Para interrumpir una conmutación en curso, siga los mismos pasos que para promocionar un agente de réplicas, seleccione la opción de conmutación por error y confirme.
Nota: Si se devuelve al agente principal original, los mensajes que no se repliquen del agente principal al agente de réplicas durante la conmutación por error seguirán existiendo en el agente principal. Por lo tanto, los consumidores deben gestionar estos mensajes. Recomendamos hacer un seguimiento de los ID de los mensajes procesados en un almacén de datos, como las tablas globales de Amazon DynamoDB, y comparar el mensaje con los ID de los mensajes procesados.
Si ya no necesita replicar los datos de los agentes entre regiones o si necesita eliminar un agente principal o de réplicas, debe desvincular el agente de réplicas y reiniciar el agente principal. Puede desvincular el agente de réplicas en la consola de Amazon MQ siguiendo el procedimiento Eliminar un agente de CRDR.
Para desvincular el agente mediante la interfaz de línea de comandos de AWS (CLI de AWS), ejecute el siguiente comando y sustituya el --broker-id
por el ID de su agente principal:
aws mq update-broker --broker-id <primary broker ID> \
--data-replication-mode "NONE" \
--region us-east-1
Conclusión
El uso de la función de replicación de datos entre regiones de Amazon MQ para ActiveMQ proporciona una forma sencilla de implementar la replicación entre regiones para mejorar la resiliencia de su arquitectura y cumplir con sus requisitos de continuidad empresarial y recuperación ante desastres. En esta publicación, se explica cómo funciona la replicación de datos entre regiones en Amazon MQ, cómo configurar un agente de réplicas entre regiones y cómo probar y promocionar el agente de réplicas.
Para obtener más información, consulte la documentación de Amazon MQ.
Para obtener más recursos de aprendizaje sin servidor, visite Serverless Land.
Blog original: Introducing Amazon MQ cross-Region data replication for ActiveMQ brokers