翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon MQ で RabbitMQ 設定を自動化する
Yogesh Bhatia、Afroz Khan (Amazon Web Services)
概要
Amazon MQ は、多くの人気メッセージブローカーとの互換性を提供するマネージドメッセージブローカーサービスです。RabbitMQ で Amazon MQ を使用すると、複数のブローカーと設定オプション AWS クラウド を備えた で管理される堅牢な RabbitMQ クラスターが提供されます。 RabbitMQ Amazon MQ は、可用性、安全性、スケーラビリティの高いインフラストラクチャを提供し、毎秒多数のメッセージを簡単に処理します。複数のアプリケーションが、さまざまな仮想ホスト、キュー、交換でインフラストラクチャを使用できます。ただし、これらの設定オプションの管理またはインフラストラクチャの手動作成には、時間と労力が必要になることがあります。このパターンでは、単一ファイルで、RabbitMQ の構成を 1 つの手順で管理する方法について説明します。このパターンで提供されるコードは、Jenkins または Bamboo などの継続的インテグレーション(CI)ツールに組み込みできます。
このパターンを使用して、任意の RabbitMQ クラスターを設定できます。必要なのはクラスターへの接続のみです。RabbitMQ 設定を管理する方法は他にも多くありますが、このソリューションではアプリケーション全体の設定をワンステップで作成するため、キューやその他の詳細を簡単に管理できます。
前提条件と制限
前提条件
AWS Command Line Interface (AWS CLI) がインストールされ、 を指すように設定されている AWS アカウント
Ansible がインストールされている(プレイブックを実行して構成を作成できる)
rabbitmqadmin がインストールされている (手順については、RabbitMQ ドキュメント
を参照) 正常な Amazon CloudWatch メトリクスで作成されたAmazon MQ の RabbitMQ クラスター
その他の要件
JSON の一部としてではなく、仮想ホストとユーザーの設定を別に作成します。
設定 JSON がリポジトリの一部であり、バージョン管理されていることを確認します。
rabbitmqadmin CLI のバージョンは RabbitMQ サーバーのバージョンと同じである必要があるため、最善のオプションは RabbitMQ コンソールから CLI をダウンロードすることです。
パイプラインの一部として、各実行前に JSON 構文が検証されていることを確認します。
製品バージョン
AWS CLI バージョン 2.0
Ansible バージョン 2.9.13
rabbitmqadmin バージョン 3.9.13 (RabbitMQ サーバーバージョンと同じである必要があります)
アーキテクチャ
ソーステクノロジースタック
既存のオンプレミス仮想マシン (VM) または Kubernetes クラスター (オンプレミスまたはクラウド) で実行中の RabbitMQ クラスター
ターゲットテクノロジースタック
Amazon MQ for RabbitMQ での RabbitMQ の自動設定
ターゲットアーキテクチャ
RabbitMQ を設定する方法は多くあります。このパターンでは、単一 JSON ファイルにすべての設定が含まれるインポート設定機能を使用します。このファイルにはすべての設定が適用され、Bitbucket または Git などのバージョン管理システムで管理できます。このパターンは Ansible を使用して、rabbitmqadmin CLI で設定を実装します。

ツール
AWS サービス
Amazon MQ は、クラウドでメッセージブローカーを簡単にセットアップして操作できるマネージドメッセージブローカーサービスです。
AWS CloudFormation は、 AWS Infrastructure as Code を使用してインフラストラクチャをセットアップし、クラウドプロビジョニングを高速化するのに役立ちます。
AWS CLI では、コマンドラインシェルでコマンド AWS のサービス を使用して を操作できます。
その他のツール
rabbitmqadmin
は RabbitMQ HTTP ベースの API 用のコマンドラインツールです。RabbitMQ ノードとクラスターの管理と監視に使用されます。 Ansible
は、アプリケーションと IT インフラストラクチャを自動化するオープンソースツールです。
コードリポジトリ
このパターンで使用する JSON 設定ファイルと Ansible プレイブックのサンプルが添付ファイルで提供されます。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
で RabbitMQ クラスターを作成します AWS。 | RabbitMQ クラスターがまだない場合は、 AWS CloudFormation を使用してスタックを作成できます AWS。または、CloudFormation Ansible の モジュール | AWS 全般、Ansible |
| タスク | 説明 | 必要なスキル |
|---|---|---|
プロパティファイルを作成します。 | 添付ファイルの JSON 設定ファイル (
これらの設定は、rabbitmqadmin が要求するルート (/) 仮想ホストで実行されます。 | JSON |
Amazon MQ for RabbitMQ インフラストラクチャの詳細を取得します。 | で RabbitMQ インフラストラクチャの以下の詳細を取得します AWS。
AWS マネジメントコンソール または を使用して、この情報 AWS CLI を取得できます。これらの詳細により、Ansible プレイブックは に接続 AWS アカウント し、RabbitMQ クラスターを使用してコマンドを実行できます。 重要Ansible プレイブックを実行するコンピュータは、「前提条件」セクションで説明されているように AWS アカウント、 にアクセスできる必要があり、既に設定されている AWS CLI 必要があります。 | AWS 全般 |
| Ansible の
| Ansible |
Ansible プレイブックを作成します。 | サンプルプレイブックについては、添付の パスワードの保護など、Ansible プレイブックのベストプラクティスに従います。パスワードの暗号化には Ansible Vault を使用し、暗号化されたファイルから RabbitMQ パスワードを取得します。 | Ansible |
| タスク | 説明 | 必要なスキル |
|---|---|---|
プレイブックを実行します。 | 前のエピックで作成した Ansible プレイブックを実行します。
RabbitMQ コンソールで新しい設定を確認できます。 | 一般的な AWS、RabbitMQ、Ansible |
関連リソース
RabbitMQ から Amazon MQ への移行
(AWS ブログ記事) 管理コマンドラインツール
(RabbitMQ ドキュメント) AWS CloudFormation スタックの作成または削除
(Ansible ドキュメント) メッセージ駆動型アプリケーションを Amazon MQ for RabbitMQ に移行する
(AWS ブログ記事)
アタッチメント
このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip」