

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Automatisieren Sie die RabbitMQ-Konfiguration in Amazon MQ
<a name="automate-rabbitmq-configuration-in-amazon-mq"></a>

*Yogesh Bhatia und Afroz Khan, Amazon Web Services*

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

[Amazon MQ](https://docs.aws.amazon.com/amazon-mq/) ist ein verwalteter Message Broker-Service, der Kompatibilität mit vielen gängigen Message Brokern bietet. Die Verwendung von Amazon MQ mit RabbitMQ bietet einen robusten RabbitMQ-Cluster, der mit mehreren Brokern und Konfigurationsoptionen verwaltet wird. AWS Cloud Amazon MQ bietet eine hochverfügbare, sichere und skalierbare Infrastruktur und kann problemlos eine große Anzahl von Nachrichten pro Sekunde verarbeiten. Mehrere Anwendungen können die Infrastruktur mit unterschiedlichen virtuellen Hosts, Warteschlangen und Exchanges nutzen. Die Verwaltung dieser Konfigurationsoptionen oder die manuelle Erstellung der Infrastruktur kann jedoch Zeit und Mühe erfordern. Dieses Muster beschreibt eine Möglichkeit, Konfigurationen für RabbitMQ in einem Schritt über eine einzige Datei zu verwalten. Sie können den mit diesem Muster bereitgestellten Code in jedes Continuous Integration (CI) -Tool wie Jenkins oder Bamboo einbetten. 

Du kannst dieses Muster verwenden, um jeden RabbitMQ-Cluster zu konfigurieren. Alles, was es benötigt, ist Konnektivität zum Cluster. Obwohl es viele andere Möglichkeiten gibt, RabbitMQ-Konfigurationen zu verwalten, erstellt diese Lösung ganze Anwendungskonfigurationen in einem Schritt, sodass Sie Warteschlangen und andere Details einfach verwalten können.

## Voraussetzungen und Einschränkungen
<a name="automate-rabbitmq-configuration-in-amazon-mq-prereqs"></a>

**Voraussetzungen**
+ AWS Command Line Interface (AWS CLI) ist so [installiert und konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html), dass es auf Ihre verweist AWS-Konto
+ Ansible ist installiert, sodass Sie Playbooks ausführen können, um die Konfiguration zu erstellen
+ **rabbitmqadmin** [ist installiert (Anweisungen finden Sie in der RabbitMQ-Dokumentation)](https://www.rabbitmq.com/management-cli.html)
+ Ein RabbitMQ-Cluster in Amazon MQ, erstellt mit gesunden Amazon-Metriken CloudWatch 

**Zusätzliche Anforderungen**
+ Stellen Sie sicher, dass Sie die Konfigurationen für virtuelle Hosts und Benutzer separat und nicht als Teil von JSON erstellen.
+ Stellen Sie sicher, dass das Konfigurations-JSON Teil des Repositorys ist und versionsgesteuert ist.
+ Die Version der **rabbitmqadmin-CLI** muss mit der Version des RabbitMQ-Servers identisch sein, daher ist es am besten, die CLI von der RabbitMQ-Konsole herunterzuladen.
+ Stellen Sie im Rahmen der Pipeline sicher, dass die JSON-Syntax vor jedem Lauf validiert wird.

**Produktversionen**
+ AWS CLI Version 2.0
+ Ansible Version 2.9.13
+ **rabbitmqadmin** Version 3.9.13 (muss mit der RabbitMQ-Serverversion identisch sein)

## Architektur
<a name="automate-rabbitmq-configuration-in-amazon-mq-architecture"></a>

**Quelltechnologie-Stack**
+ Ein RabbitMQ-Cluster, der auf einer vorhandenen lokalen virtuellen Maschine (VM) oder einem Kubernetes-Cluster (vor Ort oder in der Cloud) ausgeführt wird

**Zieltechnologie-Stack**
+ Automatisierte RabbitMQ-Konfigurationen auf Amazon MQ für RabbitMQ

**Zielarchitektur**

Es gibt viele Möglichkeiten, RabbitMQ zu konfigurieren. Dieses Muster verwendet die Importkonfigurationsfunktion, bei der eine einzelne JSON-Datei alle Konfigurationen enthält. Diese Datei wendet alle Einstellungen an und kann von einem Versionskontrollsystem wie Bitbucket oder Git verwaltet werden. Dieses Muster verwendet Ansible, um die Konfiguration über die **rabbitmqadmin-CLI** zu implementieren.

![Automatisieren der RabbitMQ-Konfiguration in Amazon MQ](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/images/292e1284-5c9e-4c82-bb41-010fa84d8d74.png)


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

**AWS-Services**
+ [Amazon MQ](https://docs.aws.amazon.com/amazon-mq/) ist ein verwalteter Message Broker-Service, der es einfach macht, Message Broker in der Cloud einzurichten und zu betreiben.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)hilft Ihnen dabei, Ihre AWS Infrastruktur einzurichten und die Cloud-Bereitstellung mit Infrastruktur als Code zu beschleunigen.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)ermöglicht es Ihnen, mithilfe AWS-Services von Befehlen in einer Befehlszeilen-Shell mit zu interagieren. 

**Andere Tools**
+ [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) ist ein Befehlszeilentool für die HTTP-basierte RabbitMQ-API. Es wird zur Verwaltung und Überwachung von RabbitMQ-Knoten und -Clustern verwendet.
+ [Ansible](https://www.ansible.com/) ist ein Open-Source-Tool zur Automatisierung von Anwendungen und IT-Infrastruktur.

**Code-Repository**

Die in diesem Muster verwendete JSON-Konfigurationsdatei und ein Beispiel für ein Ansible-Playbook sind im Anhang enthalten.

## Epen
<a name="automate-rabbitmq-configuration-in-amazon-mq-epics"></a>

### Erstellen Sie Ihre Infrastruktur AWS
<a name="create-your-aws-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen RabbitMQ-Cluster auf. AWS | Wenn Sie noch keinen RabbitMQ-Cluster haben, können Sie ihn verwenden [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html), um den Stack zu erstellen. AWS Oder Sie können das [CloudFormation Modul in Ansible verwenden, um den Stack zu erstellen](https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/cloudformation_module.html). Bei letzterem Ansatz können Sie Ansible für beide Aufgaben verwenden: zum Erstellen der RabbitMQ-Infrastruktur und zum Verwalten von Konfigurationen.  | Allgemein AWS, Ansible | 

### Erstellen Sie die Konfiguration von Amazon MQ für RabbitMQ
<a name="create-the-amqlong-for-rabbitmq-configuration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Eigenschaftendatei. | Laden Sie die JSON-Konfigurationsdatei (`rabbitmqconfig.json`) im Anhang herunter oder exportieren Sie sie aus der RabbitMQ-Konsole.  Ändern Sie sie, um Warteschlangen, Austauschvorgänge und Bindungen zu konfigurieren. Diese Konfigurationsdatei zeigt Folgendes:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-rabbitmq-configuration-in-amazon-mq.html)<br />Diese Konfigurationen werden gemäß den Anforderungen von **rabbitmqadmin** unter dem virtuellen Root-Host (/) ausgeführt.  | JSON | 
| Rufen Sie die Details der Amazon MQ for RabbitMQ-Infrastruktur ab. | Rufen Sie die folgenden Details für die RabbitMQ-Infrastruktur ab unter: AWS[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-rabbitmq-configuration-in-amazon-mq.html)<br />Sie können das AWS-Managementkonsole oder das verwenden, AWS CLI um diese Informationen abzurufen. Diese Details ermöglichen es dem Ansible-Playbook, eine Verbindung zu Ihrem RabbitMQ-Cluster herzustellen AWS-Konto und den RabbitMQ-Cluster zum Ausführen von Befehlen zu verwenden.*Der Computer, auf dem das Ansible-Playbook ausgeführt wird, muss auf Ihr zugreifen können und AWS CLI muss bereits konfiguriert sein AWS-Konto, wie im Abschnitt Voraussetzungen beschrieben.* | Allgemeines AWS | 
| Erstellen Sie die Datei `hosts_var`. | Erstellen Sie die `hosts_var` Datei für Ansible und stellen Sie sicher, dass alle Variablen in der Datei definiert sind. Erwägen Sie, Ansible Vault zum Speichern des Passworts zu verwenden. Sie können die `hosts_var` Datei wie folgt konfigurieren (ersetzen Sie die Sternchen durch Ihre Informationen):<pre>RABBITMQ_HOST: "***********.mq.us-east-2.amazonaws.com"<br />RABBITMQ_VHOST: "/"<br />RABBITMQ_USERNAME: "admin"<br />RABBITMQ_PASSWORD: "*******"</pre> | Ansible | 
| Erstellen Sie ein Ansible-Playbook. | Ein Beispiel-Playbook finden Sie `ansible-rabbit-config.yaml` im Anhang. Laden Sie diese Datei herunter und speichern Sie sie. Das Ansible-Playbook importiert und verwaltet alle RabbitMQ-Konfigurationen, wie Warteschlangen, Exchanges und Bindungen, die Anwendungen benötigen. <br />Folgen Sie den bewährten Methoden für Ansible-Playbooks, z. B. zum Sichern von Passwörtern. Verwenden Sie Ansible Vault für die Passwortverschlüsselung und rufen Sie das RabbitMQ-Passwort aus der verschlüsselten Datei ab. | Ansible | 

### Bereitstellen der Konfiguration
<a name="deploy-the-configuration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie das Playbook aus. | Führen Sie das Ansible-Playbook aus, das Sie im vorherigen Epos erstellt haben.<pre>ansible-playbook ansible-rabbit-config.yaml</pre><br />Sie können die neuen Konfigurationen auf der RabbitMQ-Konsole überprüfen. | Allgemein AWS, RabbitMQ, Ansible | 

## Zugehörige Ressourcen
<a name="automate-rabbitmq-configuration-in-amazon-mq-resources"></a>
+ [Migration von RabbitMQ zu Amazon MQ](https://aws.amazon.com/blogs/compute/migrating-from-rabbitmq-to-amazon-mq/) (Blogbeitrag)AWS 
+ [Management-Befehlszeilentool](https://www.rabbitmq.com/management-cli.html) (RabbitMQ-Dokumentation)
+ Einen [AWS CloudFormation Stack erstellen oder löschen (Ansible-Dokumentation](https://docs.ansible.com/ansible/latest/collections/amazon/aws/cloudformation_module.html))
+ [Migration nachrichtengesteuerter Anwendungen zu Amazon MQ für RabbitMQ](https://aws.amazon.com/blogs/compute/migrating-message-driven-applications-to-amazon-mq-for-rabbitmq/) (Blogbeitrag)AWS 

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

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/294120b6-c95f-4cc5-bf85-5ad7e2abdad5/attachments/attachment.zip)