본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] Amazon MQ

by BTC_류지연 2023. 8. 31.

베하 ! 

이번에도 찾아온 서 지 타 산 입니다~~~

오늘은 다람쥐 카페에서 말차라떼를 사와서 먹습니다.

말차라떼 최고

달달한 음료 마시고 힘내서 시작해보죠!

Amazon MQ에 대하여 알아볼까요

팔로팔로팔로미 ~~~~~~~~~~


Amazon MQ

완전관리형 오프 소스 메시지 브로커 서비스

Amazon MQ는 클라우드의 *메시지 브로커로 쉽게 마이그레이션할 수 있도록 하는 관리형 메시지 브로커 서비스입니다.

메시지 브로커를 사용하면 소프트웨어 애플리케이션 및 구성 요소가 다양한 프로그래밍 언어, 운영 체제 및 공식 메시징 프로토콜을 사용하여 통신할 수 있습니다.

현재 Amazon MQ는 Apache ActiveMQRabbitMQ 엔진 유형을 지원합니다.
Amazon MQ는 고유의 메시징 시스템을 관리, 운영 또는 유지 관리할 필요 없이 기존 애플리케이션 및 서비스와 함께 작동합니다.

(*메시지 브로커란? Publisher(송신자)로부터 전달받은 메시지를 Subscriber(수신자)로 전달해주는 중간 역할

소프트웨어 시스템이, 대개 다양한 플랫폼에서 서로 다른 프로그래밍 언어를 사용하여, 통신하고 정보를 교환할 수 있습니다.)


1. Amazon MQ vs Amazon SQS, Amazon SNS

  • Amazon MQ는 널리 사용되는 다양한 메시지 브로커와 호환되는 관리형 메시지 브로커 서비스입니다.
    JMS 등과 같은 API 또는 AMQP 0-9-1, AMQP 1.0, MQTT, OpenWire, STOMP 등의 프로토콜과 호환되는 기존 메시지 브로커의 애플리케이션을 마이그레이션할 때 Amazon MQ를 사용하면 좋습니다.
  • Amazon SQS와 Amazon SNS는 확장성이 우수하고 사용하기 쉬우며 메시지 브로커를 설정할 필요가 없는 대기열 및 주제 서비스입니다. 
    이러한 서비스는 무제한에 가까운 확장성과 간편한 API를 활용할 수 있는 새로운 애플리케이션에 사용하면 좋습니다.

2. 특징

  • 짧은 지연 시간 이벤트 메시징
    수천 개의 이벤트에 대해 짧은 지연 시간을 보장하여 애플리케이션에 가능한 최신 정보를 제공합니다.
  • 유연한 구성으로 마이그레이션
    활성/대기, 브로커 네트워크 또는 클러스터 구성을 사용하여 온프레미스에서 Amazon MQ로 마이그레이션합니다.
  • AWS Lambda 함수 호출
    애플리케이션을 통합하고 Lambda 함수를 사용하여 Amazon MQ 메시지 브로커를 폴링합니다.

 

3. 작동 방식

Amazon MQ는 AWS에서 메시지 브로커의 설정, 운영 및 관리를 간소화하는 Apache ActiveMQ 및 RabbitMQ용 관리형 메시지 브로커 서비스입니다.

관리형 서비스로서 Amazon MQ는 ActiveMQ의 관리 및 유지 관리를 처리합니다. 여기에는 브로커 프로비저닝, 패치 적용, 고가용성을 위한 장애 탐지 및 복구, 그리고 메시지 지속성에 대한 책임이 포함됩니다.

 

4. 브로커 엔진

1) ActiveMQ 엔진

단일 인스턴스 브로커는 하나의 가용 영역에 있는 하나의 브로커로 구성됩니다.

브로커는 애플리케이션 및 Amazon EBS 또는 Amazon EFS 스토리지 볼륨과 통신합니다. 

Amazon EFS 스토리지 볼륨은 데이터를 여러 가용 영역(AZ)에 중복 저장하여 

최고 수준의 내구성과 가용성을 제공하도록 설계되었습니다. 

Amazon EBS는 짧은 대기 시간과 높은 처리량에 최적화된 블록 수준 스토리지를 제공합니다.

단일 인스턴스 브로커 - 여러 AZ

 

단일 인스턴스 브로커 - 단일 AZ

 

2) RabbitMQ 엔진

단일 인스턴스 브로커는 네트워크 로드 밸런서(NLB) 뒤에서 하나의 가용 영역에 있는 하나의 브로커로 구성됩니다.

브로커는 애플리케이션 및 Amazon EBS 스토리지 볼륨과 통신합니다. 

Amazon EBS는 짧은 대기 시간과 높은 처리량에 최적화된 블록 수준 스토리지를 제공합니다.

 

**네트워크 로드 밸런서를 사용하면 유지 관리 기간 중이나 기본 Amazon EC2 하드웨어 실패로 인해 브로커 인스턴스가 교체되어도 RabbitMQ용 Amazon MQ 브로커 엔드포인트가 변경되지 않습니다. 

네트워크 로드 밸런서를 통해 애플리케이션과 사용자가 계속 같은 엔드포인트를 사용하여 브로커에 연결할 수 있습니다.

 

단일 인스턴스 브로커

(고가용성을 위한 클러스터 배포 구성 존재)

 

5. FAQ

Q) Amazon MQ에서 자동으로 수행하는 관리 작업은 무엇입니까?

A) Amazon MQ는 요청하는 인프라 용량(브로커 인스턴스 및 스토리지 포함) 프로비저닝부터 브로커 소프트웨어 설치까지 메시지 브로커 설정과 관련된 작업을 관리합니다.
브로커가 시작 및 실행되면 Amazon에서 지속적인 소프트웨어 업그레이드, 보안 업데이트, 결함 탐지 및 복구를 관리합니다.
Amazon MQ는 메시지 안정성을 위해 여러 가용 영역(AZ)에 걸쳐 메시지를 중복 저장합니다. 활성/대기 브로커의 경우, 장애가 발생하면 자동으로 Amazon MQ에서 대기 인스턴스로 장애 조치하므로 메시지를 계속해서 발송하고 수신할 수 있습니다.

 

Q) Amazon MQ 사용 요금은 어떻게 부과됩니까?

A) Amazon MQ에서는 사용한 만큼만 비용을 지불하며, 브로커 인스턴스 및 스토리지 사용량, 표준 데이터 전송 요금이 부과됩니다.
1년 동안 AWS 프리 티어를 사용해 손쉽게 Amazon MQ를 시작할 수 있습니다. 

 

Q) Amazon MQ에서 브로커 네트워크란 무엇입니까?

A) ActiveMQ용 Amazon MQ는 Apache ActiveMQ의 일부인 “브로커 네트워크” 기능을 사용합니다.
브로커 네트워크는 서로 연결된 다수의 브로커로 구성됩니다.
네트워크의 브로커는 각 브로커가 호스팅하는 클라이언트 및 대상에 대한 정보를 공유합니다. 브로커는 이 정보를 사용하여 네트워크를 통해 메시지를 라우팅합니다.
Amazon MQ에서 네트워크의 브로커는 활성-대기 브로커(네트워크의 각 활성 브로커에는 대기 노드가 있고 이 대기 노드는 공유 스토리지를 통해 활성 노드에 장애가 발생할 경우 활성 노드를 대신함)이거나 단일 인스턴스 브로커(노드에 장애가 발생할 경우 다시 시작하기 전까지 노드를 사용할 수 없음)일 수 있습니다. 네트워크의 각 브로커에는 고유한 자체 메시지 스토어가 유지되며 이 스토어는 리전 내의 다중 AZ에 걸쳐 복제됩니다. 네트워크의 노드는 서로에게 메시지를 전달하므로 지정된 시점에서 메시지는 단일 브로커에 의해 저장됩니다.
브로커 장애 시 빠른 재연결을 통해 고가용성을 유지해야 하거나 수평적 규모 조정 기능이 필요한 경우에는 브로커 네트워크를 사용해야 합니다.

여기까지 Amazon MQ에 대하여 알아보았어요!

메시지를 전달해주는 브로커의 관리형 서비스를 새롭게 알게 되었네요.

사용에 적합한 상황을 알고 있으면 충분히 도움이 되겠죠?

그럼 다음시간에도 유익한 정보를 가져올게요.

다음 시간에도 서지타산과 함께해요

제에에에바아아알 ~~~~~

댓글