本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon MQ 中自動化 RabbitMQ 組態 Amazon MQ
Yogesh Bhatia 和 Afroz Khan,Amazon Web Services
摘要
Amazon MQ 是一種受管訊息代理程式服務,可與許多熱門訊息代理程式相容。搭配使用 Amazon MQ 與 RabbitMQ 提供強大的 RabbitMQ 叢集,在 中受管, AWS 雲端 具有多個代理程式和組態選項。Amazon MQ 提供高可用性、安全和可擴展的基礎設施,並且可以輕鬆處理每秒大量訊息。多個應用程式可以使用具有不同虛擬主機、佇列和交換的基礎設施。不過,管理這些組態選項或手動建立基礎設施可能需要時間和精力。此模式說明透過單一檔案,在單一步驟中管理 RabbitMQ 組態的方法。您可以在任何持續整合 (CI) 工具中嵌入此模式提供的程式碼,例如 Jenkins 或 Bamboo。
您可以使用此模式來設定任何 RabbitMQ 叢集。只需要連線至叢集。雖然管理 RabbitMQ 組態有許多其他方式,但此解決方案會在一個步驟中建立整個應用程式組態,因此您可以輕鬆管理佇列和其他詳細資訊。
先決條件和限制
先決條件
AWS Command Line Interface (AWS CLI) 已安裝並設定為指向您的 AWS 帳戶
已安裝 Ansible,因此您可以執行手冊來建立組態
已安裝 randommqadmin (如需說明,請參閱 RabbitMQ 文件
) Amazon MQ 中的 RabbitMQ 叢集,使用運作狀態良好的 Amazon CloudWatch 指標建立
其他需求
請務必分別建立虛擬主機和使用者的組態,而不是做為 JSON 的一部分。
請確定組態 JSON 是 儲存庫的一部分,且受版本控制。
Detectormqadmin CLI 的版本必須與 RabbitMQ 伺服器版本相同,因此最佳選項是從 RabbitMQ 主控台下載 CLI。
作為管道的一部分,請確保在每次執行之前驗證 JSON 語法。
產品版本
AWS CLI 2.0 版
Ansible 2.9.13 版
idlemqadmin 3.9.13 版 (必須與 RabbitMQ 伺服器版本相同)
Architecture
來源技術堆疊
在現有內部部署虛擬機器 (VM) 或 Kubernetes 叢集 (內部部署或雲端) 上執行的 RabbitMQ 叢集
目標技術堆疊
Amazon MQ for RabbitMQ 上的自動化 RabbitMQ 組態
目標架構
設定 RabbitMQ 的方法有很多種。此模式使用匯入組態功能,其中單一 JSON 檔案包含所有組態。此檔案會套用所有設定,並可由 Bitbucket 或 Git 等版本控制系統進行管理。此模式使用 Ansible 透過附屬管理員 CLI 實作組態。

工具
AWS 服務
Amazon MQ 是一種受管訊息中介裝置服務,可讓您輕鬆地在雲端中設定和操作訊息中介裝置。
AWS CloudFormation 可協助您設定 AWS 基礎設施,並使用基礎設施做為程式碼來加速雲端佈建。
AWS CLI 可讓您 AWS 服務 使用命令列 shell 中的命令來與 互動。
其他工具
caughtmqadmin
是 RabbitMQ HTTP 型 API 的命令列工具。它用於管理和監控 RabbitMQ 節點和叢集。 Ansible
是用於自動化應用程式和 IT 基礎設施的開放原始碼工具。
程式碼儲存庫
此模式中使用的 JSON 組態檔案和範例 Ansible 手冊提供於附件中。
史詩
| 任務 | Description | 所需的技能 |
|---|---|---|
在 上建立 RabbitMQ 叢集 AWS。 | 如果您還沒有 RabbitMQ 叢集,您可以使用 AWS CloudFormation來建立堆疊 AWS。或者,您可以使用 CloudFormation Ansible 中的 模組 | 一般 AWS、Ansible |
| 任務 | Description | 所需的技能 |
|---|---|---|
建立屬性檔案。 | 在附件中下載 JSON 組態檔案 (
這些組態會視需要在 root (/) 虛擬主機下執行。 | 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 |
| 任務 | Description | 所需的技能 |
|---|---|---|
執行 手冊。 | 執行您在上一個史詩中建立的 Ansible 手冊。
您可以在 RabbitMQ 主控台上驗證新組態。 | 一般 AWS、RabbitMQ、Ansible |
相關資源
從 RabbitMQ 遷移至 Amazon MQ
(AWS 部落格文章) Management Command Line Tool
(RabbitMQ 文件) 建立或刪除 AWS CloudFormation 堆疊
(Ansible 文件) 將訊息驅動的應用程式遷移至 Amazon MQ for RabbitMQ
(AWS 部落格文章)
附件
若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip