Amazon MQ Especializado2017年〜
Servicio de message broker totalmente administrado que admite Apache ActiveMQ y RabbitMQ
Qué hace
Amazon MQ es un servicio de message broker totalmente administrado que facilita la ejecución de Apache ActiveMQ y RabbitMQ en la nube. Puede migrar aplicaciones de mensajería existentes a la nube sin reescribir código. Admite protocolos estándar de la industria incluyendo JMS, AMQP, STOMP, MQTT y OpenWire, facilitando la migración desde message brokers on-premises. AWS maneja automáticamente el aprovisionamiento del broker, la aplicación de parches, la detección de fallos y la recuperación.
Casos de uso
Se utiliza para migración a la nube de ActiveMQ o RabbitMQ on-premises, mensajería asíncrona entre sistemas heredados y aplicaciones nativas de la nube, comunicación débilmente acoplada entre microservicios, colas de sistemas de procesamiento de pedidos y recepción de mensajes MQTT de dispositivos IoT - en cualquier lugar donde se necesite mensajería basada en protocolos estándar.
Analogía cotidiana
Es como una oficina de correos. Un remitente (productor) deja una carta (mensaje) en la oficina de correos (broker), y se entrega al destinatario (consumidor) cuando le convenga. AWS maneja toda la gestión del edificio y la dotación de personal de carteros, para que los usuarios puedan centrarse únicamente en el contenido de sus cartas.
¿Qué es Amazon MQ?
Amazon MQ es un message broker administrado que admite protocolos de mensajería estándar de la industria. AWS también ofrece servicios de mensajería nativos de la nube como SQS y SNS, pero estos usan APIs propietarias. Si sus aplicaciones on-premises existentes dependen de APIs y protocolos de ActiveMQ o RabbitMQ, Amazon MQ permite migrar a la nube sin cambiar el código de la aplicación. Para nuevo desarrollo que requiera mensajería nativa de la nube, se recomienda SQS o SNS.
Elección entre ActiveMQ y RabbitMQ
Amazon MQ permite elegir ActiveMQ o RabbitMQ como motor del broker. ActiveMQ tiene fuerte compatibilidad con JMS (Java Message Service) y es adecuado para integración con aplicaciones empresariales basadas en Java. RabbitMQ es ampliamente adoptado como implementación de referencia del protocolo AMQP, con capacidades de enrutamiento flexibles y alto rendimiento. El enfoque básico es coincidir con el motor usado en su sistema existente, pero para nuevos despliegues, compare según sus requisitos. Para profundizar en la comprensión de la elección entre ActiveMQ y RabbitMQ, los libros relacionados (Amazon) también merecen la pena.
Alta disponibilidad y seguridad
Amazon MQ admite configuraciones multi-AZ, realizando failover automático a un broker en espera si el broker principal falla. Los datos se persisten en EFS (ActiveMQ) o EBS (RabbitMQ) para prevenir la pérdida de mensajes. La comunicación se cifra con TLS, y los datos en reposo se pueden cifrar con AWS KMS. Colocar el broker dentro de una VPC también permite el control de acceso a nivel de red.
Aspectos a tener en cuenta
- Para nuevo desarrollo que requiera mensajería nativa de la nube, priorice SQS o SNS sobre Amazon MQ
- Las configuraciones multi-AZ pueden experimentar decenas de segundos de inactividad durante el failover, por lo que implementar lógica de reconexión del lado del cliente es importante