スマートフォン・タブレットからインターネットサーバーオペレーション

APPW.jp
 
ConoHa VPS移設記/2GB・3コア → 4GB・4コア/Ubuntu 26.04 LTS

⑯ RabbitMQ

ここまでのMongoDB・vsftpdの回とは打って変わって、素直に入った回。標準リポジトリだけで完結し、 RAGシステムのconsumer.pyを実際に動かして締めくくった。

作業端末: iPad mini(Termius)

MIGRATION ROADMAP — 全17工程
  1. ① SSH、ユーザー追加
  2. ② IPv4/IPv6追加、netplan、ufw
  3. ③ Apache2
  4. ④ Let's Encrypt
  5. ⑤ PHP
  6. ⑥ MariaDB
  7. ⑦ WordPress
  8. ⑧ Dovecot、Postfix
  9. ⑨ Vsftpd
  10. ⑩ Python
  11. ⑪ llama.cpp、ChromaDB
  12. ⑫ Anaconda、Keras、TensorFlow
  13. ⑬ Node.js
  14. ⑭ MongoDB
  15. ⑮ Mosquitto
  16. ⑯ RabbitMQ
  17. ⑰ Supervisor

01標準リポジトリだけで完結

MongoDBの回ではUbuntu 26.04向けの公式リポジトリがまだなく回避策が必要だったが、RabbitMQとその依存であるErlangは、Ubuntu 26.04の標準リポジトリに最初から含まれていた。追加リポジトリの設定は不要。

login-user@新サーバー
$ sudo apt update $ sudo apt install erlang rabbitmq-server -y $ sudo systemctl enable rabbitmq-server $ sudo systemctl start rabbitmq-server $ sudo systemctl status rabbitmq-server Active: active (running)

02設定はデフォルトのまま

RabbitMQのデフォルトのguestアカウントは、セキュリティ上localhostからの接続のみに制限されている。 ⑩のPython(RabbitMQコンシューマー)、⑬のNode.js(amqplib)とも同じサーバー上で動く前提のため、この制約が障害にならず、設定変更なしで進められた。

03動作確認:RAGシステムのconsumer.pyを実行

RAGシステムの実際のコンシューマーを起動し、embeddingモデル(intfloat/multilingual-e5-small)のダウンロード、MongoDB接続、RabbitMQ接続、キューの購読まで一通り確認した。

login-user@新サーバー
$ python consumer.py 📦 [Consumer] モデルを読み込み中... (embeddingモデルのダウンロード) 📦 [Consumer] MongoDB に接続中... ✅ [Consumer] MongoDB 接続完了 ✅ [Consumer] 初期化完了 🐇 [Consumer] RabbitMQ に接続中: localhost:5672 ✅ [Consumer] 'rag_request' キューを購読中... 🚀 [Consumer] 稼働中 — Ctrl+C で終了 ✅ [Consumer] キャンセルキュー購読中
login-user@新サーバー
$ sudo rabbitmqctl list_queues name messages rag_request 0 rag_cancel 0 rag_reply 0
確認完了 RAGシステムが実際に必要とする3つのキュー(rag_request、rag_cancel、rag_reply)がすべて存在し、consumer.pyからの接続・購読が正常に完了。

04ここまでの状態

  • Erlang・RabbitMQとも標準リポジトリからインストール、追加リポジトリ不要
  • 設定はデフォルトのまま(guestアカウントのlocalhost限定という既定の制約と実運用が合致)
  • RAGシステムのconsumer.pyで実地確認、MongoDB・RabbitMQ両方への接続と3キューの購読を確認
← 前回: ⑮ Mosquitto 次回: ⑰ Supervisor →

『ConoHa VPS移設記 ⑯ RabbitMQ』を公開しました。