Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Automatisez la configuration de RabbitMQ dans Amazon MQ
Créée par Yogesh Bhatia (AWS) et Afroz Khan (AWS)
Environnement : PoC ou pilote | Technologies : messagerie et communications DevOps ; infrastructure | Services AWS : Amazon MQ ; AWS CloudFormation |
Récapitulatif
Amazon MQ est un service géré de courtage de messages compatible avec de nombreux courtiers de messages populaires. L'utilisation d'Amazon MQ avec RabbitMQ fournit un cluster RabbitMQ robuste géré dans le cloud Amazon Web Services (AWS) avec plusieurs courtiers et options de configuration. Amazon MQ fournit une infrastructure hautement disponible, sécurisée et évolutive, et peut traiter facilement un grand nombre de messages par seconde. Plusieurs applications peuvent utiliser l'infrastructure avec différents hôtes virtuels, files d'attente et échanges. Cependant, la gestion de ces options de configuration ou la création manuelle de l'infrastructure peuvent demander du temps et des efforts. Ce modèle décrit un moyen de gérer les configurations de RabbitMQ en une seule étape, via un seul fichier. Vous pouvez intégrer le code fourni avec ce modèle dans n'importe quel outil d'intégration continue (CI) tel que Jenkins ou Bamboo.
Vous pouvez utiliser ce modèle pour configurer n'importe quel cluster RabbitMQ. Tout ce dont elle a besoin, c'est d'une connectivité au cluster. Bien qu'il existe de nombreuses autres manières de gérer les configurations de RabbitMQ, cette solution crée des configurations d'applications complètes en une seule étape, ce qui vous permet de gérer facilement les files d'attente et autres détails.
Conditions préalables et limitations
Prérequis
Interface de ligne de commande AWS (AWS CLI) installée et configurée pour pointer vers votre compte AWS (pour obtenir des instructions, consultez la documentation de l'AWS CLI)
Ansible est installé, vous pouvez donc exécuter des playbooks pour créer la configuration
rabbitmqadmin installé (pour les instructions, consultez la documentation de RabbitMQ)
Un cluster RabbitMQ dans Amazon MQ, créé à partir de statistiques Amazon saines CloudWatch
Exigences supplémentaires
Assurez-vous de créer les configurations pour les hôtes virtuels et les utilisateurs séparément et non dans le cadre de JSON.
Assurez-vous que le JSON de configuration fait partie du référentiel et qu'il est contrôlé par version.
La version de la CLI rabbitmqadmin doit être identique à celle du serveur RabbitMQ. La meilleure option est donc de télécharger la CLI depuis la console RabbitMQ.
Dans le cadre du pipeline, assurez-vous que la syntaxe JSON est validée avant chaque exécution.
Versions du produit
Version 2.0 de l'interface de ligne de commande AWS
Version 2.9.13 d'Ansible
rabbitmqadmin version 3.9.13 (doit être identique à la version du serveur RabbitMQ)
Architecture
Pile technologique source
Un cluster RabbitMQ exécuté sur une machine virtuelle (VM) locale existante ou un cluster Kubernetes (sur site ou dans le cloud)
Pile technologique cible
Configurations automatisées de RabbitMQ sur Amazon MQ pour RabbitMQ
Architecture cible
Il existe de nombreuses façons de configurer RabbitMQ. Ce modèle utilise la fonctionnalité de configuration d'importation, dans laquelle un seul fichier JSON contient toutes les configurations. Ce fichier applique tous les paramètres et peut être géré par un système de contrôle de version tel que Bitbucket ou Git. Ce modèle utilise Ansible pour implémenter la configuration via la CLI rabbitmqadmin.
![Automatisation de la configuration de RabbitMQ dans Amazon MQ](images/pattern-img/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/images/292e1284-5c9e-4c82-bb41-010fa84d8d74.png)
Outils
Outils
rabbitmqadmin
est un outil de ligne de commande pour l'API HTTP de RabbitMQ. Il est utilisé pour gérer et surveiller les nœuds et les clusters RabbitMQ. Ansible
est un outil open source permettant d'automatiser les applications et l'infrastructure informatique. L'AWS CLI vous permet d'interagir avec les services AWS à l'aide de commandes dans un shell de ligne de commande.
Services AWS
Code
Le fichier de configuration JSON utilisé dans ce modèle et un exemple de playbook Ansible sont fournis en pièce jointe.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez un cluster RabbitMQ sur AWS. | Si vous ne possédez pas encore de cluster RabbitMQ, vous pouvez utiliser AWS CloudFormation pour créer la pile sur AWS. Vous pouvez également utiliser le module Cloudformation d'Ansible | AWS CloudFormation, Ansible |
Tâche | Description | Compétences requises |
---|---|---|
Créez un fichier de propriétés. | Téléchargez le fichier de configuration JSON ( - Crée deux files d'attente : - Crée deux échanges : - Implémente la liaison entre les files d'attente et les échanges Ces configurations sont effectuées sous l'hôte virtuel root (/), comme l'exige rabbitmqadmin. | JSON |
Récupérez les détails de l'infrastructure Amazon MQ pour RabbitMQ. | Récupérez les informations suivantes concernant l'infrastructure RabbitMQ sur AWS :
Vous pouvez utiliser la console de gestion AWS ou l'interface de ligne de commande AWS pour récupérer ces informations. Ces informations permettent au playbook Ansible de se connecter à votre compte AWS et d'utiliser le cluster RabbitMQ pour exécuter des commandes. Important : L'ordinateur qui exécute le playbook Ansible doit être en mesure d'accéder à votre compte AWS, et la CLI AWS doit déjà être configurée, comme décrit dans la section Conditions préalables. | CLI AWS, Amazon MQ |
Créez le fichier hosts_var. | Créez le
| Ansible |
Créez un playbook Ansible. | Pour un exemple de playbook, voir Suivez les meilleures pratiques relatives aux playbooks Ansible, telles que la sécurisation des mots de passe. Utilisez Ansible Vault pour le chiffrement du mot de passe et récupérez le mot de passe RabbitMQ dans le fichier chiffré. | Ansible |
Tâche | Description | Compétences requises |
---|---|---|
Lancez le playbook. | Lancez le playbook Ansible que vous avez créé dans l'épopée précédente.
Vous pouvez vérifier les nouvelles configurations sur la console RabbitMQ. | RabbitMQ, Amazon MQ, Ansible |
Ressources connexes
Migration de RabbitMQ vers Amazon MQ
(article de blog AWS) Outil de ligne de commande de gestion
(documentation RabbitMQ) Création ou suppression d'une CloudFormation pile AWS
(documentation Ansible) Migration d'applications basées sur des messages vers Amazon MQ pour RabbitMQ
(article de blog AWS)