본문 바로가기

Technology

[RabbitMQ] EC2에 RabbitMQ 서버 만들기

728x90
반응형

RabbitMQ Logo

 

Django 서버에서 인공지능 추론을 하기 위해 Auto Scaling을 설정하였습니다.

Celery Broker를 별도로 셋팅하여야 하기 때문에 EC2 인스턴스로 분리하였습니다.

Celery Broker는 일반적으로 RabbitMQ를 기본값으로 하기 때문에 RabbitMQ를 선택하였습니다.

 

Django & Celery Logo

 

Creating EC2 Instance of AWS

AWS에서 EC2를 Ubuntu 기반으로 생성합니다. 프리티어인 t2.micro 사이즈로 생성합니다.

보안그룹 설정 단계에서 22, 5672, 15672 포트를 위치 무관으로 열어줍니다.

  • 22: SSH Port
  • 5672: AMQP Port
  • 15672: RabbitMQ Manage Console Port

 

Installing RabbitMQ

다음 명령어로 SSH로 EC2에 접근합니다.

ssh -i $(keypair) ubuntu@ec2-ip

SSH에 접속하였으면 다음 명령으로 RabbitMQ를 설치합니다. 

sudo apt-get -y update

sudo apt-get install -y rabbitmq-server

 

Creating Admin User

Remote Host(Celery)가 접근할 수 있도록 User를 새롭게 생성합니다.

sudo rabbitmqctl add_user <user> <password>

sudo rabbitmqctl set_user_tags <user> administrator

sudo rabbitmqctl set_permissions -p / <user> ".*" ".*" ".*"

기존 guest User는 삭제합니다. 그리고 다시 시작합니다.

sudo rabbitmqctl delete_user guest

sudo /etc/init.d/rabbitmq-server restart

이제, Remote User(Celery)는 user:password 정보를 사용하여 서버에 접속할 수 있습니다.

 

Activating RabbitMQ management plugin

rabbitmq-management Plugin은 RabbitMQ 서버 모니터링 및 관리 기능을 제공합니다.

sudo rabbitmq-plugins enable rabbitmq_management

sudo /etc/init.d/rabbitmq-server restart

위 명령어를 입력하시면 RabbitMQ 서버를 모니터링 하실 수 있습니다.

http://<ec2-public-dns>:15672 로 접속하시면 됩니다.

그러면 다음과 같은 페이지가 나타납니다.

RabbitMQ Management Console

 

Connecting Celery

Django settings.py에 BROKER_URL을 입력하면 RabbitMQ를 사용할 수 있습니다.

BROKER_URL = amqp://user:password@<ec2-public-dns>//

 

 

728x90
반응형