本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon MQ 中自動化 RabbitMQ 組態
創建者:瑜伽什·巴蒂亞(AWS)和阿弗羅茲汗(AWS)
環境:PoC 或試點 | 技術:訊息與通訊 DevOps;基礎架構 | AWS 服務:Amazon MQ;AWS CloudFormation |
Summary
Amazon MQ 是受管訊息代理程式服務,可與許多熱門訊息代理程式提供相容性。將 Amazon MQ 與 RabbitMQ 搭配使用,可提供在亞 Amazon Web Services (AWS) 雲端中管理的強大 RabbitMQ 叢集,並提供多個代理程式和組態選項。Amazon MQ 提供高可用性、安全且可擴展的基礎設施,而且每秒可輕鬆處理大量訊息。多個應用程式可以將基礎結構與不同的虛擬主機、佇列和交換器搭配使用。不過,管理這些組態選項或手動建立基礎結構可能需要時間和精力。此模式描述了一種通過單個文件管理 RabbitMQ 配置的方法。您可以在任何持續集成(CI)工具(如詹金斯或 Bamboo)中嵌入此模式提供的代碼。
您可以使用此模式來配置任何 RabbitMQ 叢集。它所需要的只是連線到叢集。雖然還有許多其他方法可以管理 RabbitMQ 配置,但此解決方案只需一個步驟即可創建整個應用程序配置,因此您可以輕鬆管理隊列和其他詳細信息。
先決條件和限制
先決條件
已安裝並設定 AWS Command Line Interface (AWS CLI) (AWS CLI) 以指向您的 AWS 帳戶 (如需指示,請參閱 AWS CLI 文件)
安裝了 Ansible,所以你可以運行教戰手冊來創建配置
Amazon MQ 中的 RabbitMQ 叢集,使用健康的 Amazon 指標建立 CloudWatch
其他需求
確保分別為虛擬主機和用戶創建配置,而不是 JSON 的一部分。
請確定組態 JSON 是存放庫的一部分,並且是版本控制的。
兔子管理員 CLI 的版本必須與 RabbitMQ 服務器的版本相同,因此最好的選擇是從 RabbitMQ 控制台下載 CLI。
作為管道的一部分,請確保在每次運行之前驗證 JSON 語法。
產品版本
AWS CLI 2.0 版
安智的版本
兔子管理員版本 3.9.13 (必須與 RabbitMQ 伺服器版本相同)
架構
源, 技術, 堆棧
在現有內部部署虛擬機器 (VM) 或 Kubernetes 叢集 (在內部部署或雲端中) 上執行的 RabbitMQ 叢集
目標技術堆疊
適用於兔子 MQ 的 Amazon MQ 上的自動兔子 MQ 組態
目標架構
有很多方法可以配置 RabbitMQ。此模式使用匯入組態功能,其中單一 JSON 檔案包含所有組態。此文件應用所有設置,並且可以通過版本控制系統(例如 Bitbucket 或 Git)進行管理。這種模式使用 Ansible 通過兔子管理員 CLI 來實現配置。
工具
工具
Rabbitmqadmin
是一個適用於基於 HTTP 的 API 的命令列工具。它用於管理和監視 RabbitMQ 節點和集群。 Ansible
是用於自動化應用程式和 IT 基礎架構的開放原始碼工具。 AWS CLI 可讓您使用命令列殼層中的命令與 AWS 服務互動。
AWS 服務
Code
附件中提供了此模式中使用的 JSON 配置文件和示例 Ansible 教戰手冊。
史诗
任務 | 描述 | 所需技能 |
---|---|---|
在 AWS 上建立 RabbitMQ 叢集。 | 如果您還沒有 RabbitMQ 叢集,可以使用 AWS 在 AWS 上 CloudFormation建立堆疊。或者,您可以使用 Ansible 中的雲形模塊 | AWS CloudFormation,安易 |
任務 | 描述 | 所需技能 |
---|---|---|
創建一個屬性文件。 | 下載附件中的 JSON 配置文件( -建立兩個佇列: -創建兩個交易所: -實現隊列和交換之間的綁定 這些設定會根據 rabbit mqadmin 的要求,在根 (/) 虛擬主機下執行。 | JSON |
擷取適用於 RabbitMQ 基礎設施的 Amazon MQ 詳細資訊。 | 在 AWS 上擷取 RabbitMQ 基礎設施的下列詳細資訊:
您可以使用 AWS 管理主控台或 AWS CLI 擷取此資訊。這些詳細資料可讓 Ansible 教戰手冊連線到您的 AWS 帳戶,並使用 RabbitMQ 叢集執行命令。 重要事項:執行 Ansible 教戰手冊的電腦必須能夠存取您的 AWS 帳戶,而且必須已經設定 AWS CLI,如先決條件一節所述。 | AWS CLI,Amazon MQ |
建立主機檔案。 | 為 Ansible 創建
| Ansible |
創建一個安全的教戰手冊。 | 如需教戰手冊範例,請參閱附件 請遵循 Ansible 教戰手冊的最佳做法,例如保護密碼。使用 Ansible 保險庫進行密碼加密,並從加密文件中檢索 RabbitMQ 密碼。 | Ansible |
任務 | 描述 | 所需技能 |
---|---|---|
執行教戰手冊。 | 運行您在上一個史詩中創建的 Ansible 劇本。
您可以在 RabbitMQ 控制台上驗證新的配置。 | 兔子 MQ, Amazon MQ, 安易 |
相關資源
管理命令列工具
(RabbitMQ 文件) 建立或刪除 AWS CloudFormation 堆疊
(Ansible 文件) 將訊息驅動的應用程式遷移到適用於 RabbitMQ 的 Amazon MQ
(AWS 部落格文章)
附件
若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip