Amazon Web Services 한국 블로그

Amazon MQ 업데이트 — 신규 RabbitMQ 메시지 브로커 서비스 출시

2017년에 빠르고 다양한 기능을 갖춘 인기 있는 오픈 소스 메시지 브로커인 Apache ActiveMQ용 관리형 메시지 브로커 서비스인Amazon MQ출시했습니다. 이 서비스는 대기열 및 주제, 지속적 구독 및 비지속적 구독, 푸시 기반 및 폴 기반 메시징, 필터링과 같은 기능을 제공합니다. Amazon MQ를 통해 99.9% 서비스 수준 계약(SLA)을 지원하는 수직 확장처리량을 최적화하는 메시지 브로커 등 높은 확장성과 가용성을 향상시키고, LDAP 인증 및 권한 부여를 지원하며, 미국 상용 리전에서 HIPAA, ISO/PCI DSS, SOCFIPS 140-2 검증 엔드포인트와 같은 규정을 준수하는 애플리케이션을 구축하기 위해 고객의 피드백을 참조하여 Amazon MQ의 많은 새로운 기능을 개선했습니다.

ActiveMQ 외에도 RabbitMQ는 가장 널리 사용되는 오픈 소스 메시지 브로커 중 하나로, 상품 거래 및 주문 처리 소프트웨어와 같은 분산 애플리케이션의 중요한 구성 요소입니다. 일부 고객은 풍부한 기능, 적극적인 커뮤니티 지원 및 지원되는 다양한 클라이언트 및 프레임워크를 보고 RabbitMQ를 선택합니다. 그러나 RabbitMQ 메시지 브로커는 복잡한 클러스터형 배포를 만들고 패치하는 데 필요한 전문 지식에 상당한 투자를 필요로 합니다. 다른 브로커로 변경하고 관리형 서비스로 마이그레이션하려는 기업은 애플리케이션 변경하는 데 몇 주를 소요해야 했습니다.

오늘 AWS는 RabbitMQ 메시지 브로커를 관리하는 기업의 운영 부담을 줄여주는 관리형 메시지 서비스인 Amazon MQ for RabbitMQ를 출시합니다. 수천 명의 고객이 이미 Amazon MQ를 사용하여 메시징 인프라의 운영 부담을 줄이고 있습니다. RabbitMQ를 추가하여 Amazon MQ 애플리케이션 호환성을 확장하면 더 많은 기업이 메시지 브로커를 배포, 확장 및 운영해야 하는 복잡성에서 벗어날 수 있습니다.

선호하는 브로커를 계속 사용하면서 운영 부담이 줄어든, 비용 효율적이고 확장 가능한 메시징 용량을 확보할 수 있습니다. Amazon MQ는 인프라 용량 프로비저닝에서 메시징 소프트웨어 설치에 이르기까지 개별 메시지 브로커 및 클러스터형 메시지 브로커 모두의 설정과 관련된 작업을 관리합니다. Amazon MQ를 가동 및 실행하면 운영 체제 및 메시징 소프트웨어 패치 적용 등의 관리 작업을 처리합니다.

Amazon MQ for RabbitMQ – 시작하기
새 RabbitMQ 메시지 브로커를 만들려면 Amazon MQ 콘솔에서 [시작(Get started)] 버튼을 클릭하고 Ruby, Python, Node.js, .NET 등 다양한 플랫폼용 클라이언트 라이브러리와 함께 AMQP 0.9.1 프로토콜에 대한 네이티브 지원을 제공하는 브로커 엔진(ActiveMQ 또는 RabbitMQ)을 선택할 수 있습니다.

다음 단계에서 RabbitMQ의 배포 모드를 선택합니다. 단일 브로커 배포에는 하나의 가용 영역에 하나의 브로커 인스턴스가 있고, 클러스터 배포에는 각각 분산 상태, 사용자 및 대기열을 공유하는 세 개의 노드가 논리적으로 그룹화됩니다. 클러스터 배포에서 데이터는 여러 가용 영역에 중복 저장되어 메시지 내구성을 제공합니다.

RabbitMQ 클러스터는 고가용성이 필요한 사용 사례에 대해 일반 대기열 미러링을 지원합니다. 미러링된 대기열은 여러 노드에서 메시지를 복제합니다. 대기열을 호스팅하는 기본 노드에서 장애가 발생하면 미러 노드가 기본 노드로 승격되어 가용성이 중단되지 않습니다.

다음 단계에서 브로커 이름을 입력하고 인스턴스 유형을 선택합니다. 프리 티어를 이용할 수 있는 기본 평가에 대해서는 단일 인스턴스 브로커 배포를 통해 mq.t3.micro를 선택할 수 있습니다. [사용자 이름(Username)] 및 [암호(Password)]를 입력하여 RabbitMQ 웹 콘솔에 액세스합니다.

추가 설정의 경우 브로커 엔진 버전을 선택하고 브로커의 로그를 Amazon CloudWatch에 게시하도록 CloudWatch Logs를 활성화하며 액세스 유형을 Virtual Private Cloud(VPC) 외부 또는 VPC 내에서만 설정할 수 있습니다. 프라이빗 액세스를 선택하는 경우 브로커 인스턴스에 대한 액세스가 필요한 모든 EC2 인스턴스 및 디바이스에서 연결에 권한을 부여하는 규칙을 정의하기 위해 EC2 인스턴스 및 보안 그룹에 연결할 VPC/서브넷을 지정할 수 있습니다.

[다음(Next)]을 클릭하여 설정을 검토하고 [브로커 생성(Create broker)] 버튼을 클릭합니다. 그러면 브로커가 생성되고 5-10분 안에 사용할 준비가 됩니다.

클러스터 배포를 위해 AWS 명령줄 인터페이스(CLI)의 간단한 명령을 통해 RabbitMQ 브로커를 생성할 수 있습니다.

$ aws mq create-broker --broker-name myRabbitCluster \
        --deployment-mode CLUSTER_MULTI_AZ \
        --engine-type rabbitmq \
        --engine-version 3.8.6 \
        --host-instance-type mq.m5.large \ 
        --publicly-accessible \
        --users ConsoleAccess=true,Username=admin,Password=str0nGpass@#,Groups=admin

새 브로커가 생성되면 브로커에 액세스하는 데 사용하는 웹 콘솔 URL과 엔드포인트를 한 번의 클릭으로 사용할 수 있습니다.

제공된 링크에서 RabbitMQ 웹 콘솔에 액세스할 수 있습니다. 이 브로커는 Pika Python 클라이언트를 사용하여 간단하게 테스트하였습니다.

브로커는 인스턴스, 주제 및 대기열 지표를 CloudWatch에 게시합니다. 자세한 내용은 Amazon MQ for Rabbit MQ 개발자 안내서를 참조하세요.

정식 출시!
Amazon MQ for RabbitMQ는 정식 출시되어 현재 Amazon MQ가 제공되는 모든 리전에서 사용을 시작할 수 있습니다. 자세한 내용은 제품 페이지, 해당 요금마이그레이션 안내서를 참조하세요. Amazon MQ에 대한 AWS 포럼이나 AWS Support 또는 계정 팀을 통해 피드백을 보내주시기 바랍니다.

Channy