서비스 간 비동기 메시지 전달이 필요한데, 로컬 macOS에서 빠르게 메시지 브로커를 띄우려면 어떻게 해야 할까요?

RabbitMQ 는 AMQP(Advanced Message Queuing Protocol) 기반의 오픈소스 메시지 브로커입니다. 작업 큐, 이벤트 브로드캐스트, 요청 버퍼링 등 다양한 비동기 메시징 패턴을 지원합니다.


설치 방법

1. Homebrew로 RabbitMQ 설치

SHELL
brew install rabbitmq

2. 서비스 시작 및 종료

SHELL
# RabbitMQ 서비스 시작
brew services start rabbitmq

# RabbitMQ 서비스 종료
brew services stop rabbitmq

3. 상태 확인

SHELL
# brew 서비스 전체 상태 확인
brew services list

# RabbitMQ만 확인
brew services list | awk '/rabbitmq/ {print $2}'

기본 포트 구성

RabbitMQ는 용도에 따라 여러 포트를 사용합니다. 방화벽 설정이나 다른 서비스와의 충돌을 확인할 때 참고합니다.

포트프로토콜설명
5672AMQP클라이언트 애플리케이션이 메시지를 송수신할 때 사용하는 기본 포트
15672HTTP웹 기반 관리 콘솔(Management UI) 포트
5671AMQPSTLS/SSL이 적용된 AMQP 포트
25672Erlang클러스터 노드 간 통신 포트

관리 콘솔(Management UI) 접속

브라우저에서 아래 주소로 접속하면 RabbitMQ의 상태, 큐, 익스체인지, 연결 현황 등을 모니터링할 수 있습니다.

PLAINTEXT
http://localhost:15672

기본 계정 정보

항목
IDguest
Passwordguest

** 보안 주의 **: guest 계정은 기본적으로 localhost에서만 접속할 수 있습니다. 운영 환경에서는 반드시 새 관리자 계정을 생성하고, guest 계정을 비활성화하거나 비밀번호를 변경해야 합니다.


계정 생성

관리 콘솔에서 새 사용자를 추가합니다.

  1. Admin 탭 클릭
  2. Users 섹션에서 Add a user 클릭
  3. Username, Password를 입력하고 Tags 에 administrator를 지정
  4. Add user 클릭

CLI로도 생성할 수 있습니다.

SHELL
# 사용자 생성
rabbitmqctl add_user <username> <password>

# 관리자 권한 부여
rabbitmqctl set_user_tags <username> administrator

Virtual Host 설정

Virtual Host(vhost) 는 RabbitMQ 내에서 큐, 익스체인지, 바인딩 등의 리소스를 논리적으로 격리하는 단위입니다. 프로젝트나 환경(개발/스테이징/운영)별로 vhost를 분리하면 리소스가 서로 영향을 주지 않습니다.

관리 콘솔에서 생성

  1. Admin 탭 클릭
  2. Virtual Hosts 섹션에서 Add a new virtual host 클릭
  3. Name을 입력하고 Add virtual host 클릭

사용자에게 vhost 권한 부여

vhost를 생성한 후에는 해당 vhost에 접근할 사용자에게 권한을 부여해야 합니다.

SHELL
# 사용자에게 vhost 전체 권한 부여 (configure, write, read)
rabbitmqctl set_permissions -p <vhost명> <username> ".*" ".*" ".*"

주의할 점

guest 계정은 localhost에서만 접속 가능

guest/guest 기본 계정은 보안상 localhost에서만 접속할 수 있습니다. 외부에서 관리 콘솔에 접속하려면 별도의 관리자 계정을 생성해야 합니다.

vhost 권한 미부여

vhost를 생성한 후 사용자에게 권한을 부여하지 않으면, 해당 vhost에 메시지를 발행하거나 소비할 수 없습니다. set_permissions 명령을 잊지 않도록 합니다.


정리

항목설명
설치brew install rabbitmq
서비스 관리brew services start/stop rabbitmq
관리 콘솔http://localhost:15672 (guest / guest)
AMQP 포트5672 (클라이언트 연결)
계정 생성rabbitmqctl add_user + set_user_tags administrator
vhost 설정관리 콘솔 또는 rabbitmqctl set_permissions
댓글 로딩 중...