As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Automatize a configuração RabbitMQ no Amazon MQ
Criado por Yogesh Bhatia (AWS) e Afroz Khan (AWS)
Ambiente: PoC ou piloto | Tecnologias: Mensagens e comunicações; DevOps; Infraestrutura | Serviços da AWS: Amazon MQ; AWS CloudFormation |
Resumo
O Amazon MQ é um serviço de agente de mensagens gerenciado, que fornece compatibilidade com muitos agentes de mensagens populares. O uso do Amazon MQ com o RabbitMQ fornece um cluster RabbitMQ robusto gerenciado na nuvem da Amazon Web Services (AWS) com vários agentes e opções de configuração. O Amazon MQ fornece uma infraestrutura altamente disponível, segura e escalável e pode processar um grande número de mensagens por segundo com facilidade. Vários aplicativos podem usar a infraestrutura com diferentes hosts virtuais, filas e trocas. No entanto, gerenciar essas opções de configuração ou criar a infraestrutura manualmente pode exigir tempo e esforço. Esse padrão descreve uma forma de gerenciar as configurações do RabbitMQ em uma única etapa, por meio de um único arquivo. Você pode incorporar o código fornecido com esse padrão em qualquer ferramenta de integração contínua (CI), como Jenkins ou Bamboo.
Você pode usar esse padrão para configurar qualquer cluster do RabbitMQ. Tudo o que é necessário é conectividade com o cluster. Embora existam muitas outras maneiras de gerenciar as configurações do RabbitMQ, essa solução cria configurações completas do aplicativo em uma única etapa, para que você possa gerenciar filas e outros detalhes com facilidade.
Pré-requisitos e limitações
Pré-requisitos
AWS Command Line Interface (AWS CLI) instalada e configurada para apontar para sua conta AWS (para obter instruções, consulte a documentação da AWS CLIhttps://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html)
Ansible instalado, para que você possa executar playbooks para criar a configuração
rabbitmqadmin instalado (para obter instruções, consulte a documentação do RabbitMQ
) Um cluster RabbitMQ no Amazon MQ, criado com métricas saudáveis da Amazon CloudWatch
Requisitos adicionais
Certifique-se de criar as configurações para hosts virtuais e usuários separadamente e não como parte do JSON.
Certifique-se de a configuração JSON faça parte do repositório e tenha controle de versão.
A versão da CLI do rabbitmqadmin deve ser a mesma do servidor RabbitMQ, então a melhor opção é baixar a CLI do console do RabbitMQ.
Como parte do pipeline, certifique-se que a sintaxe JSON seja validada antes de cada execução.
Versões do produto
AWS CLI versão 2.0
Ansible versão 2.9.13
rabbitmqadmin versão 3.9.13 (deve ser igual à versão do servidor RabbitMQ)
Arquitetura
Pilha de tecnologia de origem
Um cluster RabbitMQ executado em uma máquina virtual (VM) on-premises existente ou em um cluster Kubernetes (no local ou na nuvem)
Pilha de tecnologias de destino
Configurações automatizadas do Automated RabbitMQ no Amazon MQ para RabbitMQ
Arquitetura de destino
Há muitas formas de configurar o RabbitMQ. Esse padrão usa a funcionalidade de configuração de importação, em que um único arquivo JSON contém todas as configurações. Esse arquivo aplica todas as configurações e pode ser gerenciado por um sistema de controle de versão, como o Bitbucket ou o Git. Esse padrão usa o Ansible para implementar a configuração por meio da CLI rabbitmqadmin.
![Automatizar a configuração do RabbitMQ no Amazon MQ](images/pattern-img/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/images/292e1284-5c9e-4c82-bb41-010fa84d8d74.png)
Ferramentas
Ferramentas
rabbitmqadmin
é uma ferramenta de linha de comando para a API baseada em HTTP do RabbitMQ. Ele é usado para gerenciar e monitorar nós e clusters do RabbitMQ. O Ansible
é uma ferramenta de código aberto para automatizar aplicativos e infraestrutura de TI. A AWS CLI permite interagir com serviços da AWS usando comandos no shell da linha de comando.
Serviços da AWS
Código
O arquivo de configuração JSON usado nesse padrão e um exemplo de manual do Ansible são fornecidos no anexo.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um cluster RabbitMQ na AWS. | Se você ainda não tem um cluster RabbitMQ, você pode usar a AWS CloudFormation para criar a pilha na AWS. Ou você pode usar o módulo Cloudformation no Ansible | AWS CloudFormation, Ansible |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um arquivo de propriedades. | Faça o download do arquivo de configuração JSON ( - Cria duas filas: - Cria duas trocas: - Implementa a ligação entre as filas e as trocas Essas configurações são realizadas no host virtual root (/), conforme exigido pelo rabbitmqadmin. | JSON |
Recupere os detalhes da infraestrutura do Amazon MQ para RabbitMQ. | Recupere os seguintes detalhes da infraestrutura do RabbitMQ na AWS:
É possível usar o Console de Gerenciamento da AWS ou a AWS CLI para recuperar essas informações. Esses detalhes permitem que o manual do Ansible se conecte à sua conta AWS e use o cluster RabbitMQ para executar comandos. Importante: o computador que executa o manual do Ansible deve ser capaz de acessar sua conta AWS, e a AWS CLI já deve estar configurada, conforme descrito na seção Pré-requisitos. | AWS CLI, Amazon MQ |
Crie o arquivo hosts_var. | Crie o arquivo
| Ansible |
Crie um manual do Ansible. | Para obter um exemplo de manual, consulte Siga as práticas recomendadas dos manuais do Ansible, como proteger senhas. Use o Ansible Vault para criptografia de senha e recupere a senha do RabbitMQ do arquivo criptografado. | Ansible |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Execute o manual. | Execute o manual do Ansible que você criou no épico anterior.
Você pode verificar as novas configurações no console do RabbitMQ. | RabbitMQ, Amazon MQ, Ansible |
Recursos relacionados
Migração do RabbitMQ para o Amazon MQ
(publicação no blog da AWS) Ferramenta de linha de comando de gerenciamento
(documentação do RabbitMQ) Crie ou exclua uma CloudFormation pilha da AWS (documentação
do Ansible) Migração de aplicativos orientados por mensagens para o Amazon MQ para RabbitMQ
(publicação no blog da AWS)
Anexos
Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip