AI連携のDiscord Bot(ClaudeやChatGPTのAPIを呼び出すチャットボット)を自分のPCではなく24時間稼働させたい。でも無料ホスティングはスリープや実行時間の制限が多く、VPSはどのプランを選べば費用と安定性が釣り合うのか判断できず契約に踏み切れない——この記事では、discord.pyで組んだBotをコンテナ上で常駐させて測ったメモリ使用量と、強制終了からの自動復旧秒数をもとに、その判断材料を提供します。なお本記事では実際のDiscordトークンでの接続やVPS実機での契約は行わず、同等条件のローカル環境で計測した参考値をもとにしています。

そもそも無料ホスティングでは何が足りないのか(実行時間制限・スリープ)

先に結論だけ知りたい方へ: 個人のシンプルなAI連携Discord Botなら、月500円を切る価格帯のVPSで常時稼働に十分です(アイドル時の実測メモリは約46MB)。向かない人や理由は次の見出し「迷ったらこれ」で説明します。まずは無料ホスティングで何が足りないのかを見ていきましょう。

個人のAI Discord Botでまず検討されるのは無料のホスティングサービスです。しかし2026年9月時点で確認すると、どれも「常時稼働」を前提にはしていません。

Railway・Render・fly.io・Koyebの無料枠スペックとスリープ条件の比較表
無料ホスティングはどれも一定時間の無通信や課金枠超過で止まり、常時接続が要るDiscord Botには向かないことが分かる
サービス無料枠スペックスリープ条件カード登録
RailwayRAM 0.5GB/1vCPUクレジット($1/月)を使い切ると停止Free移行後は不要、Hobby以上は必要
RenderRAM 512MB/0.1 CPU15分無通信でスピンダウン、復帰に約1分不要
fly.io―恒久無料枠なし(2時間 or 7日のトライアルのみ、以降は課金)トライアル終了後は必要
KoyebRAM 512MB/0.1vCPU1時間無通信でゼロにスケール(変更不可)サインアップ画面の確認が必要

(2026-09-09 各社公式ドキュメント確認)

Discord BotはDiscordのゲートウェイと常時接続を維持する必要があるため、この「スリープ」がそのまま「Botが反応しなくなる」に直結します。Renderなら15分、Koyebなら1時間メッセージが無いだけでBotは落ち、次の呼びかけへの応答は復帰後になります。

さらにKoyebはデプロイ可能なリージョンがフランクフルトとワシントンD.C.のみで、東京リージョンがありません。Render・Railway・国内VPS各社が東京や国内にリージョンを持つかどうかは、公式情報だけでは確認しきれず、本記事では検証していません。

Oracle Cloud Always Freeはスペック自体はVPSより余裕があります(Arm系で2 OCPU・12GBメモリ。2026年6月15日付で従来の半分に引き下げ済み)。ただし審査基準やカード登録の要否は公式ドキュメントに明記が無く、今回は確認できませんでした。

コードをpushするだけでデプロイが反映されるPaaS型のサービスに比べ、VPSは自分でサーバーにログインして初期設定する分、最初の手間は増えます。その代わりスリープや実行時間の制限を受けずに常時稼働できます。

迷ったらこれ:AI Discord Botに必要な最小VPSスペック

個人でシンプルなAI連携Discord Bot(discord.py+Claude/ChatGPT API呼び出し程度)を動かすなら、月々数百円ほどの最小メモリ帯(1GB程度)のVPSで常時稼働に十分です。

45.91MBから46.23MBへのメモリ推移と強制終了から1.408秒での復旧を示す流れ図
アイドルから応答処理中までメモリはほぼ変わらず、強制終了しても1.4秒ほどで復旧することが実測で分かった

根拠は実測したメモリ使用量です。1GB/1コアに相当する環境(--memory=1g --cpus=1に制限したローカルDocker)でdiscord.py製のBotを構築し、AI APIへの問い合わせを模した処理を実際に動かしてみると、アイドル時の常駐メモリは平均45.91MB、5件のメッセージを8ラウンド連続で処理している最中でも46.23MBでした。応答処理をしてもメモリの増加はわずか0.3MB程度で、discord.pyライブラリ自体の常駐分がほとんどを占めています。

※ これは実際のVPS実機や本物のDiscordゲートウェイに接続したBotではなく、ローカルDocker上でBotオブジェクトを構築しメッセージ処理のコードパスを動かした参考値です。実運用時のメモリはこれより増える可能性がありますが、1GBプラン(OS込みで数百MBの余裕が確保できる帯)であれば吸収できる差と考えられます。

最初の5分でやること: 契約するVPSを1台決め、SSHで接続できることを確認する。Botのコード一式(requirements.txt含む)を手元に用意しておけば、次の「最短手順」にそのまま進めます。

向かない人もいます。複数サーバーで大量メッセージを捌く大規模Botや、画像生成・音声処理などメモリを食う処理を同一プロセスで行う場合は、1GB帯では不足します。その場合は次の比較表の2GB以上のプランを検討してください。

VPSプラン比較:メモリ帯別の月額と余裕度

プランメモリ/CPU料金特徴
シンVPS 1GBプラン1GB/1コア・NVMe 30GB月額451円〜(36ヶ月契約)/730円(3ヶ月契約)最低利用期間3ヶ月、初期費用0円
KAGOYA CLOUD VPS 1GBプラン1GB/1コア・SSD 100GB日額20円・月額上限550円日割り課金で短期の試験稼働もしやすい

(2026-09-09 各社公式サイト確認)

シンVPS公式料金表で1GBプラン月額451円の欄を丸印で示した画像
シンVPSの料金表では1GBプランが月額451円(36ヶ月契約)で、実測したメモリ使用量に対して十分な余裕がある価格帯だと分かる

無料ホスティングと違い、どちらのプランもスリープや実行時間の制限がなく、契約している限り常時稼働します。KAGOYAは日額課金のため、「まず1日だけ動かして様子を見る」といった短期の試験運用にも向いています。実質20円程度で丸1日の稼働を試せる計算です。継続利用が決まっているなら、契約期間が長いほど月額が下がるプランで総額を抑える方法もあります。

いずれのケースでも、今回実測したメモリ使用量(アイドル時45.91MB・応答時46.23MB)は最小メモリ帯(1GB程度)のVPSで十分に収まる水準でした。契約先を探すなら、まずはシンVPSの料金プラン一覧で、この条件に見合う最小構成の料金を確認してみてください。

シンVPS公式サイトで確認した1GBプランは、36ヶ月契約なら月額451円〜で、比較したKAGOYA(月額上限550円)より安い水準でした(2026-09-09確認)。

シンVPS 1GBプランは月額451円〜。比較したKAGOYA(月額上限550円)より安い水準でした(公式サイト確認)

シンVPS の料金プランを確認する(公式)

最短手順:Botを落とさず常時稼働させる(プロセス管理・自動起動)

VPSを契約したら、次の5ステップでBotを常時稼働の状態にします。

kill -9から1秒待機、READY再起動までのターミナルログ
監視ループがkill -9で強制終了したBotプロセスを1秒待って再起動し、READYログが出るまでの一連の流れが実測ログで確認できる
  1. Botのコードを配置する:SSHでVPSに接続し、git cloneまたはscpでコード一式を転送。pip install -r requirements.txtで依存パッケージを入れます。
  2. systemdでプロセスを常駐化する:/etc/systemd/system/discordbot.serviceにBot起動コマンドを書いたユニットファイルを作成します。ここでRestart=on-failureを指定しておくと、Botが異常終了した際に自動で再起動します。
  3. サーバー再起動後も自動起動する設定にする:systemctl enable discordbotを実行しておけば、VPS自体を再起動してもBotが自動的に立ち上がります。
  4. 外形監視を入れる:無料の死活監視サービス(UptimeRobot等)でBotが応答するAPIエンドポイントを定期的に叩くか、systemctl statusを定期チェックする仕組みを用意します。
  5. ログの見方を確認する:journalctl -u discordbot -fでBotの標準出力をリアルタイムに確認できます。エラー時にまずここを見る習慣をつけておくと復旧が早くなります。

自動復旧の速さも実測しています。Restart=on-failure相当の監視ループの下でBotプロセスをkill -9で強制終了したところ、次にBotが起動完了するまで平均1.408秒でした(3回計測:1.412秒/1.403秒/1.410秒)。

※ これはsystemd本体ではなく、同じ再起動の仕組み(Restart=on-failure・RestartSec=1秒相当)をシェルの監視ループで再現した検証です。実機VPS上でsystemdを直接使う場合、RestartSecの既定値は1秒よりさらに短い100ミリ秒のため、実際の復旧はこの数値よりも短くなる見込みです。

よくある失敗トップ3(再起動で消える/メモリ不足でOOM Kill/APIキーの管理ミス)

①再起動で設定が消える:systemctl enableを忘れると、VPSを再起動したときにBotが起動しないままになります。契約直後の設定手順でセットにしておいてください。

再起動消失・OOM Kill・APIキー漏洩、3つの失敗と原因・対策の対応表
3つの失敗はどれも契約直後の設定漏れか事前見積り不足が原因で、対策は一手間で防げることが分かる

②メモリ不足でOOM Kill(メモリを使い切ったプロセスをOSが強制終了する仕組み):実測では常駐メモリは46MB程度でしたが、これはあくまでBotプロセス単体の数値です。同じVPSにn8nやデータベースなど他のプロセスを同居させると合計メモリが膨らみ、OSにプロセスを強制終了されることがあります。同居させる場合は合計のメモリ使用量を事前に見積もってください。

③APIキーの管理ミス:Claude/ChatGPTのAPIキーやDiscord Botトークンをコードに直接書き込んでGitにpushしてしまうミスです。環境変数か.envファイル(.gitignoreに追加)で管理し、リポジトリに含めない運用にしてください。

次の一歩:n8nやOllamaと同じVPSに同居させる場合の注意点

Bot単体1GBからn8n/Ollama同居時は2GB以上へ、というプラン移行の流れ図
Bot単体なら1GBで足りるが、n8nやOllamaを同居させるならメモリ消費が増えるため上位プランへの切り替えを検討する

同じVPSにn8nのワークフローエンジンやOllamaのローカル LLMを同居させたい場合は話が変わります。これらはBotよりずっとメモリを消費するため、1GBプランでは不足しがちです。同居を考えているなら、契約前に2GB以上のプランを検討するか、まずはBot単体で1GBプランの余裕を確認してから拡張を判断するのが安全です。

今日やるなら:まずシンVPSの料金プランを確認し、1GB程度のプランを1台契約してBotをsystemdで常時稼働させるところから始めてみてください。実測では常駐メモリが46MB程度で収まっていたので、最小構成のプランでも余裕を持って動かせます。

シンVPS公式サイトで確認した1GBプランは、36ヶ月契約なら月額451円〜で、比較したKAGOYA(月額上限550円)より安い水準でした(2026-09-09確認)。

シンVPS 1GBプランは月額451円〜。比較したKAGOYA(月額上限550円)より安い水準でした(公式サイト確認)

シンVPS の料金プランを確認する(公式)

もっと詳しく:料金プランの全体像とスケールする時の移行先

料金の全体像を整理すると、無料ホスティングは「今すぐカード登録なしで試したい」場合の選択肢、VPSは「月数百円を払ってでもスリープなく安定稼働させたい」場合の選択肢という住み分けになります。

シンVPSとKAGOYAの料金、上位プランへの移行目安をまとめたカード
契約期間で変わる月額と、メモリ使用率が7〜8割に近づいたら上位プランへ移行するという目安をまとめた

VPSの契約期間による割引も判断材料です。シンVPSは契約期間が長いほど月額が下がる仕組みで、最安は36ヶ月契約時の月額451円、3ヶ月契約では730円でした(いずれも2026-09-09時点の公式表示)。長期利用が決まっているなら長期契約の方が総額は抑えられますが、最初はまず3ヶ月程度の短い契約で運用を試し、問題なければ長期契約に切り替える、という進め方もできます。KAGOYAの日額20円プランを使えば、契約前に丸1日だけ試験稼働させて様子を見ることも可能です。

Botの規模が大きくなり、複数サーバーでの利用やメッセージ量の増加でメモリが1GBを超えてきた場合は、2GB・4GBといった上位プランへの移行を検討します。移行の目安は、journalctlやサーバー監視でメモリ使用量が契約プランの7〜8割に近づいてきたタイミングです。なお本記事の実測値はローカルDocker上の参考値であり、実際のVPS実機・実際のDiscordゲートウェイ接続での検証ではない点を最後に改めて記しておきます。