기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon MQ에서 RabbitMQ 구성의 자동화
Yogesh Bhatia, Afroz Khan, Amazon Web Services
요약
Amazon MQ는 널리 사용되는 다양한 메시지 브로커와 호환되는 관리형 메시지 브로커 서비스입니다. RabbitMQ와 함께 Amazon MQ를 사용하면 여러 브로커 및 구성 옵션을 AWS 클라우드 사용하여에서 관리되는 강력한 RabbitMQ 클러스터가 제공됩니다. Amazon MQ는 가용성이 높고 안전하며 확장 가능한 인프라를 제공하고, 초당 대량의 메시지를 쉽게 처리할 수 있습니다. 여러 애플리케이션이 서로 다른 가상 호스트, 대기열, 교환이 있는 인프라를 사용할 수 있습니다. 하지만 이러한 구성 옵션을 관리하거나 인프라를 수동으로 생성하려면 시간과 노력이 필요할 수 있습니다. 이 패턴은 단일 파일을 통해 RabbitMQ 구성을 한 단계에서 관리하는 방법을 설명합니다. 이 패턴과 함께 제공되는 코드를 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 클러스터(온프레미스 또는 클라우드에서)
대상 기술 스택
RabbitMQ용 Amazon MQ의 자동화된 RabbitMQ 구성
대상 아키텍처
RabbitMQ를 구성하는 방법에는 여러 가지가 있습니다. 이 패턴은 단일 JSON 파일에 모든 구성이 포함된 가져오기 구성 기능을 사용합니다. 이 파일은 모든 설정에 적용되며 Bitbucket 또는 Git와 같은 버전 제어 시스템으로 관리할 수 있습니다. 이 패턴은 Ansible을 사용하여 rabbitmqadmin CLI를 통해 구성을 구현합니다.

도구
서비스
Amazon MQ는 관리형 메시지 브로커 서비스로서, 클라우드에서 메시지 브로커를 쉽게 설정하고 운영할 수 있게 해줍니다.
AWS CloudFormation를 사용하면 코드형 AWS 인프라를 사용하여 인프라를 설정하고 클라우드 프로비저닝 속도를 높일 수 있습니다.
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 |
RabbitMQ 인프라에 대한 Amazon MQ의 세부 정보를 검색합니다. | 에서 RabbitMQ 인프라에 대한 다음 세부 정보를 검색합니다. AWS
AWS Management Console 또는를 사용하여이 정보를 AWS CLI 검색할 수 있습니다. 이러한 세부 정보를 통해 Ansible 플레이북은에 연결하고 RabbitMQ 클러스터를 AWS 계정 사용하여 명령을 실행할 수 있습니다. 중요Ansible 플레이북을 실행하는 컴퓨터는에 액세스할 수 있어야 하며 사전 조건 섹션에 설명된 대로 이미 구성되어 있어야 AWS 계정 AWS CLI 합니다. | 일반 AWS |
| Ansible용
| Ansible |
Ansible 플레이북을 생성합니다. | 샘플 플레이북은 첨부 파일에서 암호 보안과 같은 Ansible 플레이북의 모범 사례를 따릅니다. Ansible 볼트를 사용하여 암호를 암호화하고, 암호화된 파일에서 RabbitMQ 암호를 검색합니다. | Ansible |
| 작업 | 설명 | 필요한 기술 |
|---|---|---|
플레이북을 실행합니다. | 이전 에픽에서 생성한 Ansible 플레이북을 실행합니다.
RabbitMQ 콘솔의 새 구성을 검증할 수 있습니다. | 일반 AWS, RabbitMQ, Ansible |
관련 리소스
RabbitMQ에서 Amazon MQ로 마이그레이션
(AWS 블로그 게시물) 관리 명령줄 도구
(RabbitMQ 설명서) AWS CloudFormation 스택 생성 또는 삭제
(Ansible 설명서) 메시지 기반 애플리케이션을 RabbitMQ용 Amazon MQ로 마이그레이션
(AWS 블로그 게시물)
첨부
이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.