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
Yogesh Bhatia et Afroz Khan, Amazon Web Services
Résumé
Amazon MQ est un service de messagerie géré qui assure la compatibilité avec de nombreux courtiers de messages populaires. L'utilisation d'Amazon MQ avec RabbitMQ fournit un cluster RabbitMQ robuste géré avec plusieurs courtiers et options de configuration. AWS Cloud 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
Conditions préalables
AWS Command Line Interface (AWS CLI) installé et configuré pour pointer vers votre Compte AWS
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
AWS CLI version 2.0
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 sur 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.

Outils
Services AWS
Amazon MQ est un service géré de courtage de messages qui facilite la configuration et le fonctionnement des courtiers de messages dans le cloud.
AWS CloudFormationvous aide à configurer votre AWS infrastructure et à accélérer le provisionnement dans le cloud grâce à l'infrastructure sous forme de code.
AWS CLIvous permet d'interagir avec Services AWS en utilisant des commandes dans un shell de ligne de commande.
Autres 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.
Référentiel de 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
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Créez un cluster RabbitMQ sur. AWS | Si vous n'avez pas encore de cluster RabbitMQ, vous pouvez l'utiliser AWS CloudFormationpour créer le stack on. AWS Vous pouvez également utiliser le CloudFormation module dans Ansible | Informations générales sur AWS, Ansible |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Créez un fichier de propriétés. | Téléchargez le fichier de configuration JSON (
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 pour l'infrastructure RabbitMQ sur : AWS
Vous pouvez utiliser le AWS Management Console ou le AWS CLI pour récupérer ces informations. Ces informations permettent au playbook Ansible de se connecter à votre cluster RabbitMQ Compte AWS et d'utiliser le cluster RabbitMQ pour exécuter des commandes. ImportantL'ordinateur qui exécute le playbook Ansible doit être en mesure d'accéder à votre Compte AWS, et AWS CLI doit déjà être configuré, comme décrit dans la section Conditions préalables. | AWS général |
Créez le fichier | 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 |
| Sous-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. | Informations générales sur AWS, RabbitMQ, Ansible |
Ressources connexes
Migration de RabbitMQ vers Amazon MQ
(article de blog)AWS Outil de ligne de commande de gestion
(documentation RabbitMQ) Créer ou supprimer une AWS CloudFormation pile
(documentation Ansible) Migration d'applications basées sur des messages vers Amazon MQ pour AWS RabbitMQ
(article de blog)