お知らせVPS(専有IPv4・ルート権限つき)の受付は2026年10月13日からです。ご相談はDiscordまでどうぞ。

ホーム Discord Bot の常時稼働

Discord Bot を、
24時間動かす。

パソコンを閉じたらBotが落ちる。その悩みは、置き場所を移せば終わります。必要なスペックの目安から、実際に動かすまでの手順、よくあるつまずきまでまとめました。

最終更新 2026年9月16日

パソコンで動かすと、なぜ止まるのか

Discord Bot は、書き終えたら終わりではありません。誰かがコマンドを打つ瞬間に、プログラムが動いている必要があります。つまり、24時間ずっと起動したままでなければいけません。

手元のパソコンで動かしていると、次のようなことで止まります。

  • パソコンを閉じた、スリープに入った、シャットダウンした
  • Windows の更新で、夜のあいだに勝手に再起動した
  • 回線が切れた、ルーターが再起動した
  • エラーで落ちたが、寝ていて気づかなかった

どれも「気をつければ防げる」ものではありません。パソコンは人が使うための機械で、動かし続けるための機械ではないからです。電気代も無視できません。ノートパソコンを1台つけっぱなしにすると、月に数百円から千円ほどかかります。月30円のサーバーのほうが安く済む、という逆転が起きます。

「無料のクラウドで動かせないか」と考える方も多いと思います。無料の枠は、一定時間アクセスが無いと停止する、毎月の稼働時間に上限がある、といった制限が付いているのが普通です。常駐が前提の Discord Bot とは相性がよくありません。

Bot に必要なスペックの目安

Discord Bot は、思っているより軽いプログラムです。判断の基準になるのはメモリで、CPU はよほど重い処理をしなければ問題になりません。

Botの規模メモリの目安向いている構成
コマンドに応答するだけ〜128MBミニ(256MB)
数サーバーで常用・簡単なDBあり128〜300MBベーシック(512MB)
数十サーバー・音楽再生・画像生成300MB〜1GBプラス(1GB)以上
大量のデータを抱えたまま処理する1GB〜大容量メモリプラン

迷ったら、まず小さい構成で始めてください。足りなくなってから上げれば済みます。最初から大きい構成を借りても、使い切れなければ無駄になるだけです。

音楽Botだけは少し注意

音声を流すBotは、ほかの用途よりCPUとメモリを使います。音声の変換(エンコード)が常に走るためです。1〜2サーバーで使うならプラス、人数が増えるならプロ以上を見ておくと安心です。

料金の目安

ASHIKA Network の料金は定額です。使った分だけの後払いはないので、チャージした残高を超える請求は起きません

プランメモリCPU容量月額
ミニ256MB20%512MB30円
ベーシック512MB50%2048MB50円
プラス1024MB100%5120MB110円
プロ2048MB150%10240MB230円

3ヶ月分をまとめて払うと、1ヶ月あたりはもう少し安くなります。すべての構成は料金のページで見比べられます。

置き場所を用意して、動かすまで

難しい設定は挟みません。順番はこうです。

  1. 残高を入れる。クレジットカード・PayPay・銀行振込・Apple Pay・Google Pay が使えます。100円から入れられます。
  2. 構成と期間を選んで購入する。買った時点で接続先が出るので、待ち時間はありません。
  3. ファイルを置く。ブラウザからアップロードするか、その場で編集できます。SSH を繋ぐ必要はありません。
  4. 起動する。ログはブラウザの画面にそのまま流れます。

ここまでで、早ければ数分です。用意するのは Bot のトークンとソースコードだけで、手元の端末に何かを入れる必要はありません。

discord.py(Python)の場合

Python で書いた Bot は、そのまま置けます。requirements.txt を一緒に置いておくと、必要なライブラリがまとめて入ります。

discord.py
python-dotenv

トークンはコードに直接書かず、環境変数から読んでください。ソースを誰かに見せたときに、うっかり漏らさずに済みます。

import os
import discord

client = discord.Client(intents=discord.Intents.default())

@client.event
async def on_ready():
    print(f"{client.user} で接続しました")

client.run(os.environ["DISCORD_TOKEN"])

Intents について。メッセージの本文を読む Bot や、参加・退出を知りたい Bot は、Discord の開発者ページで「特権インテント」を有効にしないと動きません。手元では動いていたのにサーバーに置いたら動かない、という場合、ここが原因のことがあります。

discord.js(Node.js)の場合

Node.js も同じです。package.json を置いておけば、必要なパッケージが入ります。

const { Client, GatewayIntentBits } = require("discord.js");

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once("ready", () => {
  console.log(`${client.user.tag} で接続しました`);
});

client.login(process.env.DISCORD_TOKEN);

起動するコマンドは、パネルから指定できます。node index.js のように、いつも手元で打っているものをそのまま入れてください。

落ちても、勝手に立ち上がります

どれだけ気をつけて書いても、プログラムは落ちるときがあります。Discord 側の一時的な不具合や、想定していなかった入力、メモリ不足などが原因です。

ASHIKA Network では、異常終了を検知すると自動で立ち上げ直します。夜中に落ちても、翌朝には動いています。自分で見張る必要はありません。

ただし、落ちる理由そのものは残ります。ログはブラウザから追えるので、同じ落ち方を繰り返しているときは中身を見て直してください。

よくあるつまずき

手元では動くのに、置いたら動かない

ほとんどは次の3つです。

  • ライブラリが入っていないrequirements.txtpackage.json を一緒に置いてください。
  • 環境変数が入っていない … トークンなどはパネルから設定します。
  • 特権インテントが無効 … Discord の開発者ページで有効にしてください。

しばらく動いて、そのうち落ちる

メモリ不足を疑ってください。使っていないデータを抱えたままにしていると、少しずつ増えて上限に当たります。構成を1つ上げるか、コードを見直すかのどちらかです。

トークンが無効になった

トークンをうっかり公開してしまうと、Discord が自動で無効にします。GitHub に上げたコードの中に残っていた、というのがよくある例です。発行し直して、環境変数から読む形に変えてください。

無料で動かす方法はあるのか

あります。ただし、どれも何かを引き換えにしています。無料の枠は「一定時間で停止する」「月あたりの稼働時間に上限がある」「予告なく終了する」ことが多く、動かし続けることが目的の Bot とは噛み合いません

止まるたびに手を入れる時間を考えると、月30円のほうが結果的に安いことがほとんどです。缶ジュース1本より安い金額で、見張らなくてよくなります。