RabbitMQ 설치하기
서비스 간 비동기 메시지 전달이 필요한데, 로컬 macOS에서 빠르게 메시지 브로커를 띄우려면 어떻게 해야 할까요?
RabbitMQ 는 AMQP(Advanced Message Queuing Protocol) 기반의 오픈소스 메시지 브로커입니다. 작업 큐, 이벤트 브로드캐스트, 요청 버퍼링 등 다양한 비동기 메시징 패턴을 지원합니다.
설치 방법
1. Homebrew로 RabbitMQ 설치
brew install rabbitmq
2. 서비스 시작 및 종료
# RabbitMQ 서비스 시작
brew services start rabbitmq
# RabbitMQ 서비스 종료
brew services stop rabbitmq
3. 상태 확인
# brew 서비스 전체 상태 확인
brew services list
# RabbitMQ만 확인
brew services list | awk '/rabbitmq/ {print $2}'
기본 포트 구성
RabbitMQ는 용도에 따라 여러 포트를 사용합니다. 방화벽 설정이나 다른 서비스와의 충돌을 확인할 때 참고합니다.
| 포트 | 프로토콜 | 설명 |
|---|---|---|
| 5672 | AMQP | 클라이언트 애플리케이션이 메시지를 송수신할 때 사용하는 기본 포트 |
| 15672 | HTTP | 웹 기반 관리 콘솔(Management UI) 포트 |
| 5671 | AMQPS | TLS/SSL이 적용된 AMQP 포트 |
| 25672 | Erlang | 클러스터 노드 간 통신 포트 |
관리 콘솔(Management UI) 접속
브라우저에서 아래 주소로 접속하면 RabbitMQ의 상태, 큐, 익스체인지, 연결 현황 등을 모니터링할 수 있습니다.
http://localhost:15672
기본 계정 정보
| 항목 | 값 |
|---|---|
| ID | guest |
| Password | guest |
** 보안 주의 **:
guest계정은 기본적으로localhost에서만 접속할 수 있습니다. 운영 환경에서는 반드시 새 관리자 계정을 생성하고,guest계정을 비활성화하거나 비밀번호를 변경해야 합니다.
계정 생성
관리 콘솔에서 새 사용자를 추가합니다.
- Admin 탭 클릭
- Users 섹션에서 Add a user 클릭
- Username, Password를 입력하고 Tags 에
administrator를 지정 - Add user 클릭
CLI로도 생성할 수 있습니다.
# 사용자 생성
rabbitmqctl add_user <username> <password>
# 관리자 권한 부여
rabbitmqctl set_user_tags <username> administrator
Virtual Host 설정
Virtual Host(vhost) 는 RabbitMQ 내에서 큐, 익스체인지, 바인딩 등의 리소스를 논리적으로 격리하는 단위입니다. 프로젝트나 환경(개발/스테이징/운영)별로 vhost를 분리하면 리소스가 서로 영향을 주지 않습니다.
관리 콘솔에서 생성
- Admin 탭 클릭
- Virtual Hosts 섹션에서 Add a new virtual host 클릭
- Name을 입력하고 Add virtual host 클릭
사용자에게 vhost 권한 부여
vhost를 생성한 후에는 해당 vhost에 접근할 사용자에게 권한을 부여해야 합니다.
# 사용자에게 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 |