Django 서버에서 인공지능 추론을 하기 위해 Auto Scaling을 설정하였습니다.
Celery Broker를 별도로 셋팅하여야 하기 때문에 EC2 인스턴스로 분리하였습니다.
Celery Broker는 일반적으로 RabbitMQ를 기본값으로 하기 때문에 RabbitMQ를 선택하였습니다.
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 로 접속하시면 됩니다.
그러면 다음과 같은 페이지가 나타납니다.
Connecting Celery
Django settings.py에 BROKER_URL을 입력하면 RabbitMQ를 사용할 수 있습니다.
BROKER_URL = amqp://user:password@<ec2-public-dns>//
'Technology' 카테고리의 다른 글
[Django] Gunicorn - Threads (0) | 2023.05.04 |
---|---|
[Ubuntu] pip2와 pip3 모두 설치하기 (0) | 2023.05.04 |
[Ubuntu] apt update && apt upgrade (0) | 2023.05.04 |
[SQL] 속성(Attribute)의 이해 (0) | 2023.05.04 |
[Docker] Nvidia-docker VS docker run --gpus all (0) | 2023.05.04 |