【Discord×AIチャット】Step 1:PCを解放!ラズパイで常時稼働Botサーバー構築
「Discord上でGoogleのGeminiとAnthropicのClaudeを呼び出して、いつでも開発相談や日常タスクを依頼できるコワーキング環境を作りたい!」
そう思い立ったときに、最初に立ちはだかったのが運用のインフラ(常時稼働マシン)をどうするかという問題でした。
Discord BotはDiscordサーバーとのリアルタイム接続(WebSocket)を常に維持する必要があるため、誰かがプログラムを24時間動かし続けなければいけません。
しかし、高消費電力で発熱もあるメインの開発PCを24時間つけっぱなしにするのは、電気代もファンの音も気になりますし、何より精神衛生上よろしくありません。
「自宅で静かに動いている既存マシンに、このBotの常時稼働をうまくオフロードできないか?」
今回は、自宅NASのHDD休止(スリープ)維持と手持ちラズパイたちの役割分担に頭を悩ませながら、最適な常時稼働インフラを選定してPythonの待機環境を整えるまでの試行錯誤メモをお届けします!
24時間稼働の候補比較:自宅NAS vs 4台の手持ちラズパイ
自宅で常時稼働させられるサーバー候補をリストアップし、それぞれのメリットと懸念点を徹底的に比較検討しました。
| 候補マシン | ストレージ / 環境 | 判定 | 検討結果と選定理由 |
|---|---|---|---|
| 自宅NAS (Synology/OMV等) | HDD 複数台 / Docker | ❌ 却下 | 最大の懸念は「HDDハイバネーション(スリープ)の阻害」。Botの常時通信ログやメモリキャッシュでHDDが頻繁にスピンアップしてしまい、静音・省電力・HDDの延命が台無しになるため |
| ラズパイA | SSD 120GB | ❌ 温存 | 将来の「開発中自動売買システム」用としてクリーンな環境をキープしておきたいため温存 |
| ラズパイB | microSD 32GB | ❌ 不可侵 | 別の「本番稼働中・自動売買システム」が24時間稼働中。ダウンタイムが許されない重要マシンのため同居不可 |
| ラズパイC | microSD のみ (未稼働) | ❌ 見送り | ゼロからのOSセットアップが面倒な上、microSDカードでの24時間365日常時稼働による「書き込み寿命・突然死リスク」が不安 |
| ラズパイD | SSD 1TB / アルミ冷却ケース | 🏆 採用! | バックグラウンドで動画管理・メディア処理がすでに安定稼働中。1TBの大容量SSD搭載で寿命不安ゼロ、アルミケースで放熱性も抜群! |
NASのDockerを使わなかった決定的な理由
手軽さだけで言えば、自宅NASのDockerコンテナ上でBotを動かすのが一番簡単に見えます。
しかし、我が家では「使っていない時間帯はNASのハードディスクを完全にスリープ(スピンドル停止)させて静音化&省電力化する」という運用ルールを徹底しています。
もしNAS上でリアルタイム通信を行うDiscord Botを常駐させてしまうと、定期的なヘルスチェックやログの書き込みでハードディスクが頻繁に起きて(スピンアップして)しまいます。
HDDの頻繁な回転開始・停止はモーターの寿命を縮めますし、深夜のリビングにディスクの駆動音が響くのも避けたいところ。そのため、NASでの稼働は早々に却下としました。
金融系マシンは「聖域」として守る
手持ちのラズパイの中には、自動売買関連のプログラムが動いている個体もあります。
特に本番運用中の自動売買マシンは、数秒のネットワーク遅延やプロセスのハングアップが実害に直結する可能性があるため、余計な常駐プロセスを同居させない「聖域」として完全に分離しました。
結果として、バックグラウンドで日々の動画管理処理を淡々とこなしている「1TB SSD搭載ラズパイ」に白羽の矢が立ちました。
疑問:「CPUクロック制限」されたラズパイでAI Botは動くのか?
実は、今回採用したラズパイは、ケースファンの回転音を徹底的に抑えるためにCPU周波数をあえて低めに制限(アンダークロック設定)していました。
「こんな省電力・低スペックの状態で、最新の生成AIと連携するBotなんて快適に動くのだろうか……?」
と最初は少し不安になったのですが、結論から言うと「体感レスポンス・負荷ともに余裕で100%問題なし」でした!
sequenceDiagram
autonumber
actor User as 👤 ユーザー (Discord)
participant Rpi as 🍓 ラズパイ (Discord Bot)
participant CloudAI as ☁️ Gemini / Claude (Cloud API)
User->>Rpi: 「このコードのリファクタリング案を出して」
Note over Rpi: CPU負荷: 0.1%〜1%未満<br/>数KBのJSONを中継するだけ
Rpi->>CloudAI: APIリクエスト (HTTPS)
Note over CloudAI: 巨大データセンターで超高速推論!
CloudAI-->>Rpi: レスポンス返却 (Markdownテキスト)
Rpi-->>User: Discordチャンネルへ回答を投稿
なぜ低スペックでもサクサク動くのか?
- 重たい計算はすべてクラウド側: GeminiやClaudeの膨大なパラメータ計算や推論処理は、すべてGoogleやAnthropicの巨大なクラウドデータセンター側で実行されます。
- ラズパイの役目は「テキストの中継」だけ: ラズパイ側が行う処理は、Discordから受け取った数KBのテキストをAPIに投げ、返ってきた結果をDiscordに送り返すだけです。
実際に稼働中のCPU使用率を監視してみても、待機時(アイドル時)は0.0%、メッセージ送受信の瞬間でも0.1%〜1%未満。
CPU温度も50℃前後でピタッと安定しており、ファンが唸るような発熱は一切起きませんでした。
ラズパイ常時稼働のメリット
AI連携Botのホスト役として、ラズパイはまさにうってつけです。
重い推論を自前で行うわけではないため、Raspberry Pi 4や5はもちろん、省電力なエントリーモデルでも驚くほど軽快に常時待機してくれます。
Windows開発PCからラズパイへの展開環境づくり
サーバーが決まったら、Windowsの開発PCからラズパイ(ローカルIP: 192.168.1.xxx)へスムーズにコードを展開できるように環境を整えます。
1. ラズパイ上に専用ディレクトリと仮想環境(venv)を作成
OS標準のPython環境を汚さないよう、プロジェクト専用のPython仮想環境を作成します。
# プロジェクト用ディレクトリの作成
mkdir -p ~/ai-lounge-bot
cd ~/ai-lounge-bot
# Python 3 仮想環境の作成
python3 -m venv venv
# 仮想環境の有効化
source venv/bin/activate
2. 依存ライブラリのインストール
必要なライブラリをまとめた requirements.txt を用意し、インストールします。
discord.py>=2.3.0
google-genai>=0.1.0
anthropic>=0.40.0
python-dotenv>=1.0.0
pip install --upgrade pip
pip install -r requirements.txt
2026年現在のGoogle公式Gemini SDKは、従来の google-generativeai から新しい統合SDK google-genai への移行が進んでいます。最新モデルをフル活用するためにも、新しいSDKを指定しておくのがおすすめです。
まとめと次回予告
自宅の既存リソースを見渡し、NASのHDD休止を守りつつ、動画管理を行っている1TB SSDラズパイを常時稼働サーバーとして選定しました。
- メインPCの解放: 電気代と騒音を気にせず、いつでもPCをスリープ・シャットダウン可能に。
- 超省電力・低負荷: アンダークロック状態のラズパイでも、CPU負荷1%未満で余裕の待機。
- 安心の耐久性: 1TB SSD環境のため、microSDカードのような書き込み寿命の心配もなし。
土台となるハードウェアとインフラ環境が無事に整いました!
次回は、「【Discord×AIチャット】Step 2:Gemini&Claudeを招集!最新API連携と部屋作り」をお届けします。
既存の通知と混ざらないチャンネルの作り方や、API料金のリアル、そして開発現場で遭遇した最新モデル世代交代の罠について解説しますのでお楽しみに!
コメント
0 件のコメント :
コメントを投稿