【2026年版】ConoHa VPSでDiscordボットを24時間稼働させる方法|systemd常駐とセキュリティ設定

conoha vps discord bot 24h 2026
🔧 インフラエンジニア歴12年
☁️ AWS実務2.5年・Azure経験あり
🖥️ Xserverでブログ運用中

Discordボットを24時間安定稼働させたいなら、ConoHa VPSの1GBプラン+systemd常駐+.env管理の組み合わせがコスパと安全性のバランスで最適です。本記事ではUbuntu 24.04環境でハマりやすい落とし穴も含めて解説します。

ConoHa VPSでDiscordボットを稼働させる※ 初期費用0円・時間課金対応・解約もWebで完結

「RailwayやReplitの無料枠が制限されて、ボットが頻繁にスリープしてしまう」「自宅PCでは電気代と再起動が辛い」――そんな悩みを抱えていませんか?

本記事を読むと、ConoHa VPSの契約からPython仮想環境構築、systemdによる24時間常駐化、トークン管理のセキュリティ設定まで一気通貫で理解できます。

目次

なぜDiscordボットはVPSで動かすべき?

無料ホスティング(Railway/Replit)はスリープ・実行時間制限・突然のプラン改定リスクが付きまといます。VPSなら月600〜700円で24時間常時稼働+自由なミドルウェア導入が可能で、長期運用に最適です。

特にConoHa VPSは時間課金対応で初期費用ゼロ、IPv4標準提供、東京リージョンの低レイテンシなど、個人開発ボットの要件を最小コストで満たします。

どのプランを選ぶべき?

プラン 月額(まとめトク) 用途
512MB 460円 非推奨。メモリ不足でクラッシュ
1GB 763円 最推奨。複数ボット同居も可
2GB 1,400円 DB併用・画像処理ボット向け

ConoHa VPSの初期設定はどう進める?

OSはUbuntu 24.04 LTSを選択。SSH接続後、まずSSH鍵認証への切り替え・UFWでの不要ポート閉鎖・fail2ban導入の3点を済ませてからボット環境構築に進みます。

1 ConoHaコンソールでサーバー作成

1GBプラン・Ubuntu 24.04・SSHキーを登録。作成完了後、IPアドレスを控える。

2 SSH接続とユーザー作成

ssh root@<IP>で接続し、adduser botで専用ユーザーを作成。usermod -aG sudo botでsudo権限付与。

3 セキュリティ強化

ufw allow 22 && ufw enableで必要ポートのみ開放。apt install fail2banでSSHブルートフォース対策を有効化。

Python環境とDiscord.pyはどう構築する?

Ubuntu 24.04以降はpipのシステム直接実行が原則禁止です。venv(仮想環境)の作成が必須で、ここを飛ばすと「externally-managed-environment」エラーで止まります。

sudo apt update && sudo apt install -y python3 python3-venv python3-pip
mkdir -p /opt/my-discord-bot && cd /opt/my-discord-bot
python3 -m venv venv
source venv/bin/activate
pip install discord.py python-dotenv

仮想環境の中でdiscord.pypython-dotenvをインストールすれば、システム側のpipを汚染せず安全にライブラリ管理ができます。

TOKENを安全に管理する.envファイル

ボットトークンをコードに直書きするのは厳禁です。GitHubに誤って公開した瞬間に乗っ取られる事故が後を絶ちません。.envファイルに分離し、.gitignoreで除外しましょう。

# .env
DISCORD_TOKEN=YOUR_BOT_TOKEN_HERE

# main.py
from dotenv import load_dotenv
import os
load_dotenv()
TOKEN = os.getenv("DISCORD_TOKEN")
ConoHa VPSの1GBプランを契約する※ 初期費用0円・時間課金で気軽にお試し可能

systemdで24時間常駐化する手順は?

screenやtmuxはセッション切断や再起動でボットも止まります。systemdサービス化+Restart=on-failureを使えば、サーバー再起動後も自動復旧する真の24時間稼働が実現します。

# /etc/systemd/system/discord-bot.service
[Unit]
Description=Discord Bot
After=network.target

[Service]
User=bot
WorkingDirectory=/opt/my-discord-bot
ExecStart=/opt/my-discord-bot/venv/bin/python main.py
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

ポイントはExecStartvenv内のpythonを絶対パスで指定すること。グローバルの/usr/bin/python3を指定するとModuleNotFoundErrorで起動しません。

1 サービス登録と起動

systemctl daemon-reload && systemctl enable --now discord-botで自動起動を有効化。

2 ステータス確認

systemctl status discord-botactive (running)を確認。エラー時はjournalctl -u discord-bot -fでログを追跡。

運用・トラブルシュートのコツは?

放置しているとjournaldのログが肥大化し、SSDを圧迫します。/etc/systemd/journald.confSystemMaxUse=500Mに上限設定し、UptimeRobotで外形監視を追加するのが運用の鉄則です。

コード更新はgit pull && systemctl restart discord-botの2コマンドで反映。Restart=alwaysではなくon-failureを選ぶことで、コードのバグで無限再起動ループに陥るのを防げます。

まとめ:ConoHa VPSなら月700円で堅牢な24時間稼働が実現

  • プランは1GBを選択。512MBはメモリ不足リスク
  • Ubuntu 24.04ではvenv必須。pip直接実行はエラー
  • トークンは.env+python-dotenvで分離管理する
  • systemdサービス化でOS再起動後も自動復旧を実現
  • journaldの上限設定と外形監視で長期運用に備える
ConoHa VPSでDiscordボットを始める※ 初期費用0円・最低利用期間なし・解約もWebで完結

FAQ

無料のRailwayやReplitではダメ?
短期検証なら問題ありませんが、無料枠の実行時間制限・スリープ・突然のプラン改定リスクがあります。長期運用なら月600〜700円のVPSの方が安定し、トータルでコスパが上回ります。
ModuleNotFoundErrorが出る原因は?
systemdのExecStartでvenv内のpython絶対パスではなく/usr/bin/python3を指定しているケースが大半です。venvのpythonバイナリを明示すれば解決します。
複数のDiscordボットを1台で動かせる?
1GBプランで2〜3個までは十分動きます。systemdサービスをdiscord-bot-a.servicediscord-bot-b.serviceと分け、ボット同士で監視・再起動の影響を受けない構成にしましょう。
バックアップはどう取る?
ConoHaのスナップショット機能で月1回のフルバックアップを推奨。コード本体はGitHubの非公開リポジトリで管理し、.envはローカルとパスワードマネージャーに別途保管します。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次