RabbitMQ용 Amazon MQ 브로커 기본값
RabbitMQ용 Amazon MQ 브로커를 생성할 때 Amazon MQ는 브로커 성능을 최적화하기 위해 기본 집합의 브로커 정책 및 vhost 제한을 적용합니다. Amazon MQ는 vhost 제한을 기본(/
) vhost에만 적용합니다. Amazon MQ는 새로 생성된 vhost에 대해 기본 정책을 적용하지 않습니다. 새 브로커와 기존 브로커 모두에 대해 이러한 기본값을 유지하는 것이 좋습니다. 하지만 언제든 이러한 기본값을 수정, 재정의 또는 삭제할 수 있습니다.
Amazon MQ는 브로커를 생성할 때 선택하는 인스턴스 유형 및 브로커 배포 모드에 따라 정책과 제한을 생성합니다. 기본 정책은 다음과 같이 배포 모드에 따라 이름이 지정됩니다.
-
단일 인스턴스 –
AWS-DEFAULT-POLICY-SINGLE-INSTANCE
-
클러스터 배포 –
AWS-DEFAULT-POLICY-CLUSTER-MULTI-AZ
단일 인스턴스 브로커의 경우 Amazon MQ는 정책 우선 순위 값을 0
으로 설정합니다. 기본 우선 순위 값을 재정의하려면 높은 우선 순위 값으로 사용자 지정 정책을 직접 생성할 수 있습니다. 클러스터 배포의 경우 Amazon MQ는 브로커 기본값의 우선 순위 값을 1
로 설정합니다. 클러스터의 고유한 사용자 지정 정책을 생성하려면 1
보다 큰 우선 순위 값을 할당합니다.
참고
클러스터 배포에서 ha-mode
및 ha-sync-mode
브로커 정책은 클래식 미러링 및 고가용성(HA)에 필요합니다.
기본 AWS-DEFAULT-POLICY-CLUSTER-MULTI-AZ
정책을 삭제하면 Amazon MQ는 우선 순위 값이 0
인 ha-all-AWS-OWNED-DO-NOT-DELETE
정책을 사용합니다. 그러면 필수 ha-mode
및 ha-sync-mode
정책이 계속 적용됩니다. 고유한 사용자 지정 정책을 생성하는 경우 Amazon MQ는 정책 정의에 ha-mode
및 ha-sync-mode
를 자동으로 추가합니다.
정책 및 제한 설명
다음 목록에서는 Amazon MQ가 새로 생성되는 브로커에 적용하는 기본 정책 및 제한에 대해 설명합니다. max-length
, max-queues
및 max-connections
의 값은 브로커의 인스턴스 유형 및 배포 모드에 따라 다릅니다. 해당 값은 권장 기본값 단원에 나와 있습니다.
-
queue-mode: lazy
(정책) - 지연 대기열을 활성화합니다. 기본적으로 대기열은 메시지의 인 메모리 캐시를 유지하여 브로커가 메시지를 소비자에게 가능한 한 빨리 전달할 수 있도록 합니다. 이로 인해 브로커의 메모리가 부족해지고 고용량 메모리 경보가 발생할 수 있습니다. 지연 대기열은 가능한 쉽게 메시지를 디스크로 이동하려고 합니다. 따라서 정상 작동 조건에서 메모리에 유지되는 메시지 수가 줄어듭니다. 지연 대기열을 사용하면 RabbitMQ용 Amazon MQ에서 더 큰 메시징 로드와 더 긴 대기열을 지원할 수 있습니다. 특정 사용 사례에서는 지연 대기열을 사용하는 브로커의 성능이 약간 느려질 수 있습니다. 이는 인 메모리 캐시에서 메시지를 전달하는 것이 아니라 메시지가 디스크에서 브로커로 이동되기 때문입니다.배포 모드
단일 인스턴스, 클러스터
-
max-length:
(정책) - 대기열의 메시지 수에 대한 제한을 설정합니다. 클러스터 배포에서 이 제한은 브로커 재부팅과 같은 경우에나 유지 관리 기간 이후에 대기열 동기화 일시 중지를 방지합니다.number-of-messages
배포 모드
클러스터
-
overflow: reject-publish
(정책) -max-length
정책을 사용하는 대기열에서 대기열의 메시지 수가max-length
값에 도달한 후 새 메시지를 거부하도록 합니다. 대기열이 오버플로 상태이더라도 메시지가 손실되지 않도록 하가 위해 브로커에 메시지를 게시하는 클라이언트 애플리케이션은 게시자 확인을 구현해야 합니다. 게시자 확인을 구현하는 방법에 대한 자세한 내용은 RabbitMQ 웹 사이트에서 게시자 확인을 참조하세요. 배포 모드
클러스터
-
max-queues:
(vhost 제한) - 브로커의 대기열 수에 대한 제한을 설정합니다.number-of-queues-per-vhost
max-length
정책 정의와 마찬가지로 클러스터 배포에서 대기열 수를 제한하면 브로커 재부팅이나 유지 관리 기간 이후에 대기열 동기화 일시 중지가 방지됩니다. 대기열을 제한하면 대기열을 유지하기 위해 과도한 양의 CPU가 사용되는 것도 방지됩니다.배포 모드
단일 인스턴스, 클러스터
-
max-connections:
(vhost 제한) - 브로커에 대한 클라이언트 연결 수의 제한을 설정합니다. 권장 값에 따라 연결 수를 제한하면 과도한 브로커 메모리 사용으로 브로커에서 고용량 메모리 경보가 발생하고 작동이 일시 중지될 수 있는 문제가 방지됩니다.number-of-connections-per-vhost
배포 모드
단일 인스턴스, 클러스터
권장 기본값
참고
max-length
및 max-queue
기본 제한은 평균 메시지 크기 5kB를 기준으로 테스트 및 평가됩니다. 메시지가 5kB보다 훨씬 큰 경우 max-length
및 max-queue
제한을 조정하고 줄여야 합니다.
다음 표에는 새로 생성된 브로커의 기본 제한 값이 나와 있습니다. Amazon MQ는 브로커의 인스턴스 유형 및 배포 모드에 따라 이러한 값을 적용합니다.
인스턴스 유형 | Deployment mode(배포 모드) | max-length |
max-queues |
max-connections |
---|---|---|---|---|
t3.micro | 단일 인스턴스 | N/A | 500 | 500 |
m5.large | 단일 인스턴스 | N/A | 20,000건 | 4,000 |
클러스터 | 8,000,000 | 4,000 | 15,000 | |
m5.xlarge | 단일 인스턴스 | N/A | 30,000개 | 8,000 |
클러스터 | 9,000,000 | 5,000 | 20,000건 | |
m5.2xlarge | 단일 인스턴스 | N/A | 60,000 | 15,000 |
클러스터 | 10,000,000 | 6,000 | 40,000 | |
m5.4xlarge | 단일 인스턴스 | N/A | 150,000 | 30,000개 |
클러스터 | 12,000,000 | 10,000 | 100,000건 |