

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
<a name="automate-rabbitmq-configuration-in-amazon-mq"></a>

*Yogesh Bhatia e Afroz Khan, Amazon Web Services*

## Resumo
<a name="automate-rabbitmq-configuration-in-amazon-mq-summary"></a>

O [Amazon MQ](https://docs.aws.amazon.com/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 no com vários agentes e opções de configuração. Nuvem AWS 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
<a name="automate-rabbitmq-configuration-in-amazon-mq-prereqs"></a>

**Pré-requisitos **
+ AWS Command Line Interface (AWS CLI) [instalado e configurado](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html) para apontar para seu Conta da AWS
+ 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](https://www.rabbitmq.com/management-cli.html))
+ 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
<a name="automate-rabbitmq-configuration-in-amazon-mq-architecture"></a>

**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](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/images/292e1284-5c9e-4c82-bb41-010fa84d8d74.png)


## Ferramentas
<a name="automate-rabbitmq-configuration-in-amazon-mq-tools"></a>

**Serviços da AWS**
+ O [Amazon MQ](https://docs.aws.amazon.com/amazon-mq/) é um serviço gerenciado de agente de mensagens que facilita a configuração e operação de agentes de mensagem na nuvem.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda você a configurar sua AWS infraestrutura e acelerar o provisionamento em nuvem com a infraestrutura como código.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)permite que você interaja Serviços da AWS usando comandos em um shell de linha de comando. 

**Outras ferramentas**
+ [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) é 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](https://www.ansible.com/) é uma ferramenta de código aberto para automatizar aplicativos e infraestrutura de TI.

**Repositório de 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
<a name="automate-rabbitmq-configuration-in-amazon-mq-epics"></a>

### Crie sua AWS infraestrutura
<a name="create-your-aws-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um cluster RabbitMQ em. AWS | Se você ainda não tem um cluster RabbitMQ, você pode usá-lo [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)para criar a pilha em. AWS Ou você pode usar o [CloudFormation módulo no Ansible](https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/cloudformation_module.html) para criar a pilha. Com a última abordagem, você pode usar o Ansible para as duas tarefas: criar a infraestrutura do RabbitMQ e gerenciar configurações.  | AWS geral, Ansible | 

### Criar as configurações do Amazon MQ para RabbitMQ
<a name="create-the-amqlong-for-rabbitmq-configuration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um arquivo de propriedades. | Faça o download do arquivo de configuração JSON (`rabbitmqconfig.json`) no anexo ou exporte-o do console do RabbitMQ.  Modifique-o para configurar filas, trocas e vinculações. Este arquivo de configuração demonstra o seguinte:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-rabbitmq-configuration-in-amazon-mq.html)<br />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 em: AWS[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-rabbitmq-configuration-in-amazon-mq.html)<br />Você pode usar o Console de gerenciamento da AWS ou o AWS CLI para recuperar essas informações. Esses detalhes permitem que o manual do Ansible se conecte ao seu Conta da AWS e use o cluster RabbitMQ para executar comandos.O computador que executa o manual do Ansible deve ser capaz de acessar seu Conta da AWS e já AWS CLI deve estar configurado, conforme descrito na seção *Pré-requisitos*. | AWS geral | 
| Crie o arquivo `hosts_var`. | Crie o arquivo `hosts_var` para o Ansible e certifique-se de que todas as variáveis estejam definidas no arquivo. Considere usar o Ansible Vault para armazenar a senha. Você pode configurar o arquivo `hosts_var` da seguinte forma (substitua os asteriscos pelas suas informações):<pre>RABBITMQ_HOST: "***********.mq.us-east-2.amazonaws.com"<br />RABBITMQ_VHOST: "/"<br />RABBITMQ_USERNAME: "admin"<br />RABBITMQ_PASSWORD: "*******"</pre> | Ansible | 
| Crie um manual do Ansible. | Para obter um exemplo de manual, consulte `ansible-rabbit-config.yaml` no anexo. Faça o download e salve esse arquivo. O manual do Ansible importa e gerencia todas as configurações do RabbitMQ, como filas, trocas e vinculações, que os aplicativos exigem. <br />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 | 

### Implantar a configuração
<a name="deploy-the-configuration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute o manual. | Execute o manual do Ansible que você criou no épico anterior.<pre>ansible-playbook ansible-rabbit-config.yaml</pre><br />Você pode verificar as novas configurações no console do RabbitMQ. | AWS geral, RabbitMQ, Ansible | 

## Recursos relacionados
<a name="automate-rabbitmq-configuration-in-amazon-mq-resources"></a>
+ [Migração do RabbitMQ para o Amazon MQ (publicação](https://aws.amazon.com/blogs/compute/migrating-from-rabbitmq-to-amazon-mq/) no blog)AWS 
+ [Ferramenta de linha de comando de gerenciamento](https://www.rabbitmq.com/management-cli.html) (documentação do RabbitMQ)
+ [Criar ou excluir uma AWS CloudFormation pilha (documentação](https://docs.ansible.com/ansible/latest/collections/amazon/aws/cloudformation_module.html) do Ansible)
+ [Migração de aplicativos orientados por mensagens para o Amazon MQ for AWS RabbitMQ](https://aws.amazon.com/blogs/compute/migrating-message-driven-applications-to-amazon-mq-for-rabbitmq/) (postagem no blog)

## Anexos
<a name="attachments-294120b6-c95f-4cc5-bf85-5ad7e2abdad5"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/attachments/attachment.zip)