Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Automatizza la configurazione di RabbitMQ in Amazon MQ
Yogesh Bhatia e Afroz Khan, Amazon Web Services
Riepilogo
Amazon MQ è un servizio di broker di messaggi gestito che offre compatibilità con molti broker di messaggi popolari. L'uso di Amazon MQ con RabbitMQ fornisce un robusto cluster RabbitMQ gestito in Cloud AWS con più broker e opzioni di configurazione. Amazon MQ fornisce un'infrastruttura altamente disponibile, sicura e scalabile e può elaborare un gran numero di messaggi al secondo con facilità. Più applicazioni possono utilizzare l'infrastruttura con diversi host virtuali, code e scambi. Tuttavia, la gestione di queste opzioni di configurazione o la creazione manuale dell'infrastruttura possono richiedere tempo e impegno. Questo modello descrive un modo per gestire le configurazioni per RabbitMQ in un unico passaggio, tramite un singolo file. È possibile incorporare il codice fornito con questo pattern in qualsiasi strumento di integrazione continua (CI) come Jenkins o Bamboo.
È possibile utilizzare questo modello per configurare qualsiasi cluster RabbitMQ. Tutto ciò che serve è la connettività al cluster. Sebbene esistano molti altri modi per gestire le configurazioni di RabbitMQ, questa soluzione crea intere configurazioni di applicazioni in un unico passaggio, in modo da poter gestire facilmente code e altri dettagli.
Prerequisiti e limitazioni
Prerequisiti
AWS Command Line Interface (AWS CLI) installato e configurato in modo che punti al Account AWS
Ansible è installato, quindi puoi eseguire i playbook per creare la configurazione
rabbitmqadmin installato (per istruzioni, consultate la documentazione di RabbitMQ)
Un cluster RabbitMQ in Amazon MQ, creato con parametri Amazon affidabili CloudWatch
Requisiti aggiuntivi
Assicurati di creare le configurazioni per gli host e gli utenti virtuali separatamente e non come parte di JSON.
Assicurati che la configurazione JSON faccia parte del repository e sia controllata dalla versione.
La versione della CLI di rabbitmqadmin deve essere la stessa del server RabbitMQ, quindi l'opzione migliore è scaricare la CLI dalla console RabbitMQ.
Come parte della pipeline, assicurati che la sintassi JSON sia convalidata prima di ogni esecuzione.
Versioni del prodotto
AWS CLI versione 2.0
Ansible versione 2.9.13
rabbitmqadmin versione 3.9.13 (deve essere la stessa della versione del server RabbitMQ)
Architecture
Stack tecnologico di origine
Un cluster RabbitMQ in esecuzione su una macchina virtuale (VM) locale esistente o su un cluster Kubernetes (in locale o nel cloud)
Stack tecnologico Target
Configurazioni RabbitMQ automatizzate su Amazon MQ per RabbitMQ
Architettura Target
Esistono molti modi per configurare RabbitMQ. Questo modello utilizza la funzionalità di importazione di configurazione, in cui un singolo file JSON contiene tutte le configurazioni. Questo file applica tutte le impostazioni e può essere gestito da un sistema di controllo delle versioni come Bitbucket o Git. Questo modello utilizza Ansible per implementare la configurazione tramite la CLI rabbitmqadmin.

Tools (Strumenti)
Servizi AWS
Amazon MQ è un servizio di broker di messaggi gestito che semplifica la configurazione e la gestione di broker di messaggi nel cloud.
AWS CloudFormationti aiuta a configurare l' AWS infrastruttura e ad accelerare il provisioning del cloud con Infrastructure as Code.
AWS CLIconsente di interagire Servizi AWS utilizzando i comandi in una shell a riga di comando.
Altri strumenti
rabbitmqadmin
è uno strumento a riga di comando per l'API basata su HTTP di RabbitMQ. Viene utilizzato per gestire e monitorare i nodi e i cluster RabbitMQ. Ansible
è uno strumento open source per l'automazione delle applicazioni e dell'infrastruttura IT.
Archivio di codice
Il file di configurazione JSON utilizzato in questo modello e un esempio di playbook Ansible sono forniti in allegato.
Epiche
| Operazione | Description | Competenze richieste |
|---|---|---|
Crea un cluster RabbitMQ su. AWS | Se non disponi già di un cluster RabbitMQ, puoi utilizzarlo AWS CloudFormationper creare lo stack su. AWS In alternativa, puoi usare il CloudFormation modulo in Ansible | Informazioni generali su AWS, Ansible |
| Operazione | Description | Competenze richieste |
|---|---|---|
Creare un file delle proprietà. | Scarica il file di configurazione JSON (
Queste configurazioni vengono eseguite sull'host virtuale root (/), come richiesto da rabbitmqadmin. | JSON |
Recupera i dettagli dell'infrastruttura Amazon MQ for RabbitMQ. | Recupera i seguenti dettagli per l'infrastruttura RabbitMQ su: AWS
È possibile utilizzare Console di gestione AWS o the AWS CLI per recuperare queste informazioni. Questi dettagli consentono al playbook Ansible di connettersi al cluster RabbitMQ Account AWS e di utilizzare il cluster RabbitMQ per eseguire i comandi. ImportanteIl computer che esegue il playbook Ansible deve essere in grado di accedere al tuo e AWS CLI deve essere già configurato Account AWS, come descritto nella sezione Prerequisiti. | Informazioni generali su AWS |
Crea il file | Crea il
| Ansible |
Crea un playbook Ansible. | Per un playbook di esempio, vedi Segui le migliori pratiche per i playbook Ansible, come la protezione delle password. Usa Ansible Vault per la crittografia delle password e recupera la password di RabbitMQ dal file crittografato. | Ansible |
| Operazione | Description | Competenze richieste |
|---|---|---|
Esegui il playbook. | Esegui il playbook Ansible che hai creato nell'epopea precedente.
Puoi verificare le nuove configurazioni sulla console RabbitMQ. | Informazioni generali su AWS, RabbitMQ, Ansible |
Risorse correlate
Migrazione da RabbitMQ ad Amazon MQ
(AWS post sul blog) Strumento a riga di comando di gestione
(documentazione RabbitMQ) Crea o elimina uno AWS CloudFormation stack (documentazione Ansible
) Migrazione di applicazioni basate su messaggi su Amazon MQ for RabbitMQ
(AWS post sul blog)