デプロイと注意点

Bot は常時稼働が前提。デプロイ先の選び方と、本番運用で気をつけるポイントまとめ。

デプロイ先の選び方

サービス向き不向き料金感
RailwayGitHub 連携で簡単。常時稼働 OK$5/月~
Fly.io軽量 VM。グローバルリージョン無料枠あり
Renderヒロク風。Background Worker サービス$7/月~
VPS(さくら/Vultr/Hetzner)自由度最大。systemd で管理$5/月~
Cloudflare WorkersHTTP Interactions のみ。Gateway Bot は不可無料枠厚い
Heroku(無料廃止)選ばない

音声 bot: VPS / Railway / Fly。サーバレスは UDP/WebSocket の制約で動かない。
軽量コマンド bot: Cloudflare Workers + HTTP Interactions が無料枠で運用可能。

環境変数の管理

プロセスマネージャ

VPS の場合 — systemd

/etc/systemd/system/mybot.service
[Unit]
Description=Discord Bot
After=network.target

[Service]
Type=simple
User=mybot
WorkingDirectory=/home/mybot/app
EnvironmentFile=/home/mybot/app/.env
ExecStart=/usr/bin/node dist/index.js
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl enable mybot
sudo systemctl start mybot
sudo journalctl -u mybot -f

PM2(Node.js プロセスマネージャ)

npm install -g pm2
pm2 start dist/index.js --name mybot
pm2 save
pm2 startup       # OS 再起動時に自動起動

ロギング

レート制限と再接続

データベース

小規模: SQLite(better-sqlite3
中〜大規模: PostgreSQL + Prisma / Drizzle ORM

Discord の ID はBigInt(snowflake)。文字列で扱うのが安全。

テスト

Bot は外部依存が大きいのでテストが難しい。

セキュリティ

大規模 bot で気をつけること

よくある落とし穴

運用チェックリスト