Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Automatizar la configuración de RabbitMQ en Amazon MQ
Creado por Yogesh Bhatia (AWS) y Afroz Khan (AWS)
Entorno: PoC o piloto | Tecnologías: mensajería y comunicaciones; Infraestructura DevOps | Servicios de AWS: Amazon MQ; AWS CloudFormation |
Resumen
Amazon MQ es un servicio de agente de mensajes administrado que proporciona compatibilidad con muchos de los agentes de mensajes más populares. El uso de Amazon MQ con RabbitMQ proporciona un sólido clúster de RabbitMQ gestionado en la nube de Amazon Web Services (AWS) con varios agentes y opciones de configuración. Amazon MQ proporciona una infraestructura escalable, segura y de alta disponibilidad, y puede procesar una gran cantidad de mensajes por segundo con facilidad. Varias aplicaciones pueden utilizar la infraestructura con distintos hosts virtuales, colas e intercambios. Sin embargo, administrar estas opciones de configuración o crear la infraestructura manualmente puede requerir tiempo y esfuerzo. Este patrón describe una forma de administrar las configuraciones de RabbitMQ en un solo paso, a través de un único archivo. Puede incrustar el código proporcionado con este patrón en cualquier herramienta de integración continua (CI), como Jenkins o Bamboo.
Puede utilizar este patrón para configurar cualquier clúster de RabbitMQ. Lo único que necesita es conectividad con el clúster. Aunque hay muchas otras maneras de administrar las configuraciones de RabbitMQ, esta solución crea configuraciones de aplicaciones completas en un solo paso, para poder administrar las colas y otros detalles con facilidad.
Requisitos previos y limitaciones
Requisitos previos
Interfaz de la línea de comandos de AWS (AWS CLI) instalada y configurada para que apunte a su cuenta de AWS (para obtener instrucciones, consulte la documentación de la AWS CLI)
Ansible instalado, para poder ejecutar guías para crear la configuración
rabbitmqadmin instalado (para obtener instrucciones, consulte la documentación de RabbitMQ
) Un clúster de RabbitMQ en Amazon MQ, creado con métricas de Amazon saludables CloudWatch
Requisitos adicionales
Asegúrese de crear las configuraciones para los hosts virtuales y los usuarios por separado y no como parte de JSON.
Asegúrese de que el JSON de configuración forme parte del repositorio y esté controlado por versiones.
La versión de la CLI de rabbitmqadmin debe ser la misma que la versión del servidor de RabbitMQ, por lo que la mejor opción es descargar la CLI desde la consola de RabbitMQ.
Como parte de la canalización, asegúrese de que la sintaxis JSON esté validada antes de cada ejecución.
Versiones de producto
CLI de AWS versión 2.0
Ansible versión 2.9.13
rabbitmqadmin versión 3.9.13 (debe ser la misma que la versión del servidor RabbitMQ)
Arquitectura
Pila de tecnología de origen
Un clúster de RabbitMQ que se ejecute en una máquina virtual (VM) existente en las instalaciones o en un clúster de Kubernetes (en las instalaciones o en la nube)
Pila de tecnología de destino
Configuraciones de RabbitMQ automatizadas en Amazon MQ para RabbitMQ
Arquitectura de destino
Existen muchas formas de configurar RabbitMQ. Este patrón utiliza la funcionalidad de configuración de importación, en la que un único archivo JSON contiene todas las configuraciones. Este archivo aplica todos los ajustes y se puede administrar mediante un sistema de control de versiones como Bitbucket o Git. Este patrón utiliza Ansible para implementar la configuración a través de la CLI rabbitmqadmin.
![Automatizar la configuración de RabbitMQ en Amazon MQ](images/pattern-img/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/images/292e1284-5c9e-4c82-bb41-010fa84d8d74.png)
Herramientas
Herramientas
rabbitmqadmin
es una herramienta de línea de comandos para la API basada en HTTP de RabbitMQ. Se usa para administrar y supervisar los nodos y clústeres de RabbitMQ. Ansible
es una herramienta de código abierto para automatizar las aplicaciones y la infraestructura de TI. AWS CLI permite interactuar con los servicios de AWS mediante el uso de comandos en el intérprete de comandos de la línea de comandos.
Servicios de AWS
Código
El archivo de configuración JSON utilizado en este patrón y un ejemplo del manual de estrategias de Ansible se incluyen en el archivo adjunto.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree un clúster de RabbitMQ en AWS. | Si aún no tiene un clúster de RabbitMQ, puede usar AWS CloudFormation para crear la pila en AWS. O bien, puede usar el módulo de Cloudformation de Ansible | AWS CloudFormation, Ansible |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree un archivo de propiedades. | Descargue el archivo de configuración JSON ( - Crea dos colas: - Crea dos intercambios: - Implementa el enlace entre las colas y los intercambios Estas configuraciones se realizan en el host virtual raíz (/), según lo exige rabbitmqadmin. | JSON |
Obtenga los detalles de la infraestructura de Amazon MQ para RabbitMQ. | Obtenga los detalles de la infraestructura de RabbitMQ en AWS:
Puede utilizar la opción Consola de administración de AWS o la AWS CLI para recuperar esta información. Estos detalles permiten que el manual de Ansible se conecte a su cuenta de AWS y utilice el clúster de RabbitMQ para ejecutar comandos. Importante: La computadora que ejecuta el manual de Ansible debe poder acceder a su cuenta de AWS, y la AWS CLI debe estar ya configurada, tal y como se describe en la sección Requisitos previos. | AWS CLI, Amazon MQ |
Cree el archivo hosts_var. | Cree el archivo
| Ansible |
Cree un manual de Ansible. | Para ver un ejemplo de manual, consulte Siga las prácticas recomendadas de los manuales de Ansible, como proteger las contraseñas. Utilice Ansible Vault para cifrar las contraseñas y recupere la contraseña de RabbitMQ del archivo cifrado. | Ansible |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Ejecute el manual. | Ejecute el manual de Ansible que creó en la Epics anterior.
Puede verificar las nuevas configuraciones en la consola RabbitMQ. | RabbitMQ, Amazon MQ, Ansible |
Recursos relacionados
Migrating from RabbitMQ to Amazon MQ
(Migración de RabbitMQ a Amazon MQ) (entrada del blog de AWS) Management Command Line Tool
(Herramienta de línea de comandos de administración) (Documentación de RabbitMQ) Crear o eliminar una CloudFormation pila de AWS
(documentación de Ansible) Migrating message driven applications to Amazon MQ for RabbitMQ
(Migración de aplicaciones basadas en mensajes a Amazon MQ para RabbitMQ) (Entrada de blog de AWS)
Conexiones
Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip