아마존 MQ 브로커 네트워크 - Amazon MQ

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

아마존 MQ 브로커 네트워크

Amazon MQ는 ActiveMQ의 브로커 네트워크 기능을 지원합니다.

브로커 네트워크는 동시에 여러 활성 단일 인스턴스 브로커 또는 활성/대기 브로커로 구성됩니다. 고가용성 및 확장성과 같은 애플리케이션 요구 사항에 따라 다양한 토폴로지 (예: 콘센트레이터 hub-and-spokes, 트리 또는 메시) 로 브로커 네트워크를 구성할 수 있습니다. 예를 들어, 허브 및 스포크 브로커 네트워크를 사용하면 한 브로커에 연결할 수 없는 경우 메시지를 보존하여 복원성을 높일 수 있습니다. 집선기 토폴로지가 있는 브로커 네트워크는 수신 메시지를 수락하는 많은 브로커로부터 메시지를 수집하고 더 많은 중앙 브로커에 집중시켜 많은 수신 메시지 로드의 처리를 개선할 수 있습니다.

자습서 및 세부 구성 정보는 다음 단원을 참조하세요.

브로커 네트워크를 사용하면 다음과 같은 이점이 있습니다.

  • 브로커 네트워크를 생성하면 브로커 인스턴스를 추가하여 집계 처리량과 최대 생산자 및 소비자 연결 수를 늘릴 수 있습니다.

  • 생산자 및 소비자가 여러 활성 브로커 인스턴스를 인식하도록 허용하여 향상된 가용성을 보장할 수 있습니다. 이는 생산자 및 소비자는 현재 연결 중인 인스턴스 중 하나가 사용 불가능해질 경우 새로운 인스턴스에 다시 연결할 수 있습니다.

  • 생산자 및 소비자가 즉각적으로 브로커 네트워크의 다른 노드에 재연결할 수 있고 대기 브로커 인스턴스가 프로모션을 기다릴 필요가 없기 때문에 브로커 네트워크 내에서의 클라이언트 재연결이 고가용성을 위한 활성/대기 브로커보다 빠릅니다.

브로커 네트워크 작동 방식

Amazon MQ는 여러 방식으로 ActiveMQ 브로커 네트워크 기능을 지원합니다. 첫째, 네이티브 ActiveMQ에서와 같이 각 브로커의 구성에서 파라미터를 편집하여 브로커 네트워크를 생성할 수 있습니다. 둘째, Amazon MQ에는 브로커 네트워크 생성을 자동화하는 AWS CloudFormation 데 사용할 수 있는 샘플 청사진이 있습니다. Amazon MQ 콘솔에서 직접 이들 샘플 블루프린트를 배포하거나 관련된 AWS CloudFormation 템플릿을 편집하여 자체 토폴로지 및 구성을 생성할 수 있습니다.

브로커 네트워크는 네트워크 커넥터를 사용하여 한 브로커를 다른 브로커에 연결함으로써 설정됩니다. 연결된 브로커들이 메시지 전달을 제공합니다. 예를 들어 Broker1Broker2와 네트워크 커넥터를 설정했다면 해당 브로커에 대기열 또는 주제에 대한 소비자가 있을 경우 Broker1의 메시지가 Broker2로 전달됩니다. 네트워크 커넥터가 duplex로 구성되면 메시지가 Broker2에서 Broker1로 전달될 수도 있습니다. 네트워크 커넥터는 브로커 구성에서 구성됩니다. Amazon MQ Broker Configuration Parameters 단원을 참조하세요. 예를 들어, 다음은 브로커 구성 내 networkConnector 항목의 예입니다.

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

브로커 네트워크는 한 브로커 인스턴스에서 다른 브로커 인스턴스로 메시지가 흐르도록 하여 해당 소비자가 있는 브로커 인스턴스로만 메시지를 전달합니다. 네트워크에서 서로 인접한 브로커 인스턴스를 위해 ActiveMQ는 네트워크에 연결하고 연결 해제하는 생산자 및 소비자에 관한 자문 주제로 메시지를 보냅니다. 브로커 인스턴스가 특정 대상으로부터 소비하는 소비자에 대한 정보를 수신하면 브로커 인스턴스는 메시지를 전달하기 시작합니다. 자세한 내용은 ActiveMQ 설명서의 자문 주제를 참조하세요.

브로커 네트워크가 자격 증명을 처리하는 방식

네트워크에서 브로커 A가 브로커 B에 연결하려면 브로커 A는 다른 생산자 또는 소비자와 마찬가지로 유효한 자격 증명을 사용해야 합니다. 브로커 A의 <networkConnector> 구성에 암호를 제공하는 대신, 먼저 브로커 B의 다른 사용자와 동일한 값을 사용하여 브로커 A 사용자를 생성해야 합니다(이들은 사용자 이름 및 암호 값을 공유하는 별도의 고유한 사용자임). <networkConnector> 구성에서 userName 속성을 지정하면 Amazon MQ가 런타임 시 자동으로 암호를 추가합니다.

중요

password<networkConnector> 속성을 지정하지 마세요. 브로커 구성 파일에 일반 텍스트 암호를 저장하면 Amazon MQ 콘솔에서 해당 암호가 표시되므로 권장하지 않습니다. 자세한 내용은 Configure Network Connectors for Your Broker 단원을 참조하십시오.

브로커는 VPC 동일하거나 피어링 상태여야 합니다. VPCs 자세한 내용은 사전 조건 자습서의 Creating and Configuring a Network of Brokers을 참조하세요.

샘플 블루프린트

브로커 네트워크 사용을 시작할 수 있도록 Amazon MQ는 샘플 블루프린트를 제공합니다. 이 샘플 블루프린트는 Network of Brokers 배포와, 를 사용하여 모든 관련 리소스를 생성합니다. AWS CloudFormation다음 2가지의 샘플 블루프린트를 사용할 수 있습니다.

  1. 단일 인스턴스 브로커의 메시 네트워크

  2. 활성/대기 브로커의 메시 네트워크

샘플 배포

Create brokers(브로커 생성) 페이지에서 샘플 블루프린트 중 하나를 선택하고 다음을 선택합니다. 리소스가 생성되면 Amazon MQ 콘솔에서 생성된 브로커 및 해당 구성을 검토합니다.

브로커를 생성하고 브로커 구성에서 다른 networkConnector 요소를 구성하여 매우 다양한 토폴로지로 브로커 네트워크를 생성할 수 있습니다. 브로커 네트워크 구성에 대한 자세한 내용은 ActiveMQ 설명서의 브로커 네트워크를 참조하세요.

브로커 네트워크 토폴로지

브로커를 배포한 후 각 구성에서 networkConnector 항목을 구성하여 서로 다른 토폴로지를 사용하는 브로커 네트워크를 구축할 수 있습니다. 네트워크 커넥터는 연결된 브로커 사이에서 온디맨드 메시지 전달을 제공합니다. 연결은 브로커 사이에서 양방향으로 메시지가 전달되는 전이중, 또는 메시지가 특정 브로커에서 다른 브로커로만 전달되는 비 전이중으로 구성할 수 있습니다. 예를 들어 Broker1Broker2 사이에 전이중 연결이 설정되었다면 소비자가 있을 경우 메시지가 어느 한 브로커에서 다른 브로커로 전달됩니다.

전이중 커넥터

전이중 네트워크 커넥터를 사용하면 메시지가 어느 한 브로커에서 다른 브로커로 전달됩니다. 메시지는 온디맨드로 전달됩니다. Broker2Broker1의 메시지에 대한 소비자가 있을 경우 메시지가 전달됩니다. 마찬가지로, Broker1Broker2의 메시지에 대한 소비자가 있을 경우에도 메시지가 전달됩니다.

비 전이중 연결에서는 메시지가 특정 브로커에서 다른 브로커로만 전달됩니다. 이 예제에서 Broker2Broker1의 메시지에 대한 소비자가 있을 경우 메시지가 전달됩니다. 하지만 메시지가 Broker2에서 Broker1로는 전달되지 않습니다.

단방향 커넥터

전이중 및 비 전이중 네트워크 커넥터를 모두 사용하면 어떤 네트워크 토폴로지로도 브로커 네트워크를 구축할 수 있습니다.

참고

각 네트워크 토폴로지 예제에서 networkConnector 요소는 브로커가 연결되는 엔트포인트를 참조합니다. uri 속성의 엔드포인트 항목을 브로커의 엔드포인트로 바꿉니다. Listing brokers and viewing broker details 단원을 참조하세요.

메시 토폴로지

메시 토폴로지는 모두 서로 연결되는 다중 브로커를 제공합니다. 이 간단한 예제는 3개의 단일 인스턴스 브로커를 연결하지만, 더 많은 브로커를 메시로 연결할 수 있습니다.

메시 토폴로지

이 토폴로지, 그리고 활성/대기 브로커 쌍을 포함하는 토폴로지는 Amazon MQ 콘솔에서 샘플 블루프린트를 사용하여 생성할 수 있습니다. 이들 샘플 블루프린트 배포를 생성하여 작동하는 브로커 네트워크를 보고 어떻게 구성되었는지 검토할 수 있습니다.

Broker2Broker3 모두에 대한 이중 연결 및 Broker2Broker3 간의 단일 이중 연결을 만드는 네트워크 커넥터를 Broker1에 추가하여 이와 같이 세 개의 브로커 메시 네트워크를 구성할 수 있습니다

Broker1용 네트워크 커넥터:

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_1_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Broker2용 네트워크 커넥터:

<networkConnectors> <networkConnector name="connector_2_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Broker1Broker2의 구성에 위 커넥터를 추가하여 모든 브로커 사이에서 온디맨드로 메시지를 전달하는 메시를 이들 세 브로커 사이에서 생성할 수 있습니다. 자세한 정보는 Amazon MQ Broker Configuration Parameters을 참조하세요.

허브 앤 스포크 토폴로지

허브 앤 스포크 토폴로지에서는 스포크의 한 브로커에서 중단이 있을 경우 메시지가 보존됩니다. 메시지는 전체적으로 전달되고, 중추적 Broker1만 네트워크 작동에 중요합니다.

허브 앤 스포크 토폴로지

이 예제에서 브로커의 허브 앤 스포크 네트워크를 구성하려면 Broker1 구성에서 스포크의 각 브로커에 networkConnector를 추가할 수 있습니다.

<networkConnectors> <networkConnector name="connector_hub_and_spoke_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_4" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_5" userName="myCommonUser" duplex="true" uri="static:(ssl://b-62a7fb31-d51c-466a-a873-905cd660b553-4.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

집선기 토폴로지

이 예제 토폴로지에서는 하단의 세 브로커가 다수의 연결을 처리할 수 있으며 메시지가 Broker1Broker2에 집중됩니다. 다른 각 브로커는 더 많은 중추적 브로커과 비 전이중 연결을 갖습니다. 이 토폴로지의 용량을 확대하려면 메시지를 수신하고 Broker1Broker2에서 메시지를 집중하는 추가 브로커를 추가할 수 있습니다.

집선기 토폴로지

이 토폴로지를 구성하려면 하단의 각 브로커에 이들이 메시지를 집중시키는 각 브로커에 대한 네트워크 커넥터를 포함되어야 합니다.

Broker3용 네트워크 커넥터:

<networkConnectors> <networkConnector name="3_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="3_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Broker4용 네트워크 커넥터:

<networkConnectors> <networkConnector name="4_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="4_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Broker5용 네트워크 커넥터:

<networkConnectors> <networkConnector name="5_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="5_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

교차 리전

여러 AWS 지역을 아우르는 브로커 네트워크를 구성하려면 해당 지역에 브로커를 배포하고 해당 브로커의 엔드포인트에 대한 네트워크 커넥터를 구성하십시오.

교차 리전 메시 토폴로지

이 예제와 같은 브로커 네트워크를 구성하려면 브로커의 와이어 레벨 끝점을 참조하는 networkConnectors 항목을 Broker1Broker4의 구성에 추가할 수 있습니다.

Broker1용 네트워크 커넥터:

<networkConnectors> <networkConnector name="1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="1_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="1_to_4" userName="myCommonUser" duplex="true" uri="static:(ssl://b-62a7fb31-d51c-466a-a873-905cd660b553-4.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Broker2용 네트워크 커넥터:

<networkConnectors> <networkConnector name="2_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Broker4용 네트워크 커넥터:

<networkConnectors> <networkConnector name="4_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="4_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

전송 커넥터를 사용한 동적 장애 조치

networkConnector 요소를 구성하는 것 외에도 브로커 transportConnector 옵션을 구성하여 동적 장애 조치를 활성화하고 네트워크에서 브로커를 추가하거나 제거할 때 연결을 리밸런싱할 수 있습니다.

<transportConnectors> <transportConnector name="openwire" updateClusterClients="true" rebalanceClusterClients="true" updateClusterClientsOnRemove="true"/> </transportConnectors>

이 예제에서는 updateClusterClientsrebalanceClusterClients를 모두 true로 설정합니다. 이 경우 클라이언트는 네트워크의 브로커 목록을 제공받으며 새 브로커가 참여하면 브로커에 리밸런싱하도록 요청합니다.

사용 가능한 옵션:

  • updateClusterClients: 브로커 토폴로지 네트워크의 변경 사항에 대한 정보를 클라이언트에 전달합니다.

  • rebalanceClusterClients: 브로커 네트워크에 새 브로커가 추가될 때 클라이언트가 브로커 간에 리밸런싱하도록 합니다.

  • updateClusterClientsOnRemove: 브로커가 브로커 네트워크를 나가면 토폴로지 정보로 클라이언트를 업데이트합니다.

updateClusterClients를 true로 설정하면 브로커 네트워크의 단일 브로커에 연결하도록 클라이언트를 구성할 수 있습니다.

failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)

새 브로커가 연결되면 네트워크에 있는 모든 브로커 URIs 목록을 받게 됩니다. 브로커 연결에 실패하면 클라이언트는 연결될 때 제공되는 브로커 중 하나로 동적으로 전환할 수 있습니다.

장애 조치에 대한 자세한 내용은 Active MQ 설명서에서 장애 조치를 위한 브로커 측 옵션을 참조하세요.