노트북의 Discord 봇은 뚜껑을 닫는 순간 죽습니다. 테스트에는 괜찮지만 — 서버가 실제로 의존하는 봇에는 쓸모없습니다. VPS로 옮기면 온라인을 유지합니다: wifi가 끊겨도 살아남고, 당신이 잘 때 멈추지 않으며, 스스로 Discord에 다시 연결합니다.
여기 전부 있습니다 — 최소한의 봇, 그것을 살려 두는 서비스, 그리고 신분증을 건네지 않고 결제하는 법.
왜 노트북이 아니라 VPS인가
Discord 봇에는 Discord 게이트웨이로의 안정적이고 상시적인 연결이 필요합니다. 노트북은 잠들고, 업데이트로 재부팅하고, 네트워크를 바꿉니다 — 그때마다 봇은 오프라인으로 떨어지고 멤버들이 알아챕니다. VPS는 밤낮없이 안정적인 하나의 연결을 유지합니다. 그것이 사람들이 봇을 개인 기기에서 옮기는 이유의 전부입니다.
어떤 크기 — 그리고 어떻게 결제하나
Discord 봇은 가볍습니다. websocket을 쥐고 이벤트에 반응하므로 박스는 대체로 기다립니다:
- 1 GB RAM, 1~2코어가 대부분의 봇을 커버합니다 — 꽤 바쁜 것도.
- 봇 자체가 무거운 일을 할 때만 올리세요: 이미지 생성, 로컬 모델, 많은 서버를 위한 오디오, 큰 데이터베이스.
실용적 판단 둘:
- NAT면 충분. 봇은 Discord로 아웃바운드 연결만 하므로 포트 포워딩된 SSH를 가진 NAT 요금제로 됩니다 — 전용 IP도, 열린 인바운드 포트도 불필요. 퍼블릭 IP는 웹 대시보드도 돌리거나 webhook을 받을 때만 더하세요.
- KYC 없음, 암호화폐로 결제. 이메일로 가입하고 Base나 Ethereum의 USDC나 USDT로 결제합니다 — 카드도 서류도 없이. 카드도 되지만 온램프에 ~$27 최소액이 있으니, 작은 잔액을 한 번 채우는 편이 싼 요금제에는 매끄럽습니다.
CPU 전용이고 독일의 단일 데이터센터에서 돌아갑니다 — 봇에는 완벽히 괜찮고, GPU나 특정 지역이 필요하면 알아둘 가치가 있습니다.
최소한의 봇
SSH로 들어가 Python을 설치하고, 작은 discord.py 봇을 넣으세요:
sudo apt update && sudo apt install -y python3-venv
mkdir ~/bot && cd ~/bot
python3 -m venv venv && source venv/bin/activate
pip install -U discord.py
# bot.py
import os, discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"online as {client.user}")
@client.event
async def on_message(m):
if m.author == client.user:
return
if m.content == "!ping":
await m.channel.send("pong")
client.run(os.environ["DISCORD_TOKEN"])
토큰은 Discord Developer Portal에서 얻고(당신의 application → Bot → Reset Token), 봇이 메시지를 읽는다면 거기서 Message Content 인텐트를 활성화하세요.
systemd로 살려 두기
SSH 세션에서 python bot.py를 돌리면 연결이 끊길 때 봇이 죽습니다. systemd 서비스가 그것을 고칩니다 — 크래시에 재시작하고 재부팅을 견딥니다:
# /etc/systemd/system/discordbot.service
[Unit]
Description=Discord bot
After=network-online.target
[Service]
User=botuser
WorkingDirectory=/home/botuser/bot
Environment=DISCORD_TOKEN=your-token-here
ExecStart=/home/botuser/bot/venv/bin/python bot.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
sudo journalctl -u discordbot -f # 로그 보기
그것이 "내가 실행하는 스크립트"와 "스스로 돌아가는 봇"의 차이입니다.
솔직한 주의점
- 토큰을 지키세요. 서비스 파일(root 전용)이나 env var에 보관하고, 비-root
botuser로 돌리고, 절대 커밋하지 마세요. 새면 Developer Portal에서 즉시 리셋하세요. - 음성은 더 무겁습니다. 많은 서버로 스트리밍하는 음악/음성 봇은 텍스트 봇보다 더 많은 CPU와 대역폭이 필요합니다 — 스케일하기 전에 크기를 올리고 테스트하세요.
- 호스트만이 아니라 봇이 무엇을 하는지 보세요. 호스팅은 쌉니다; 봇이 유료 API를 루프로 부르면 거기서 비용이 드러납니다.
그 안에서, 자신의 서버 위 Discord 봇은 그저 계속 돌아갑니다 — 그것이 전체 요점입니다. 요금제를 고르고, 암호화폐로 결제하고, 몇 분 만에 온라인으로. 다른 봇도 돌린다면, 같은 systemd 패턴이 어떤 프로세스든 살려 둡니다.
바로 쓸 수 있는 설정: Discord 봇용 VPS를 보세요 — 권장 요금제와 1분 암호화폐 배포.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.