Bot Tips 開発ログ

🛠️開発記録#196(2025/4/24)開発ログ「botと開発と稼働を両立させる」

2025年4月24日

1. そもそも Docker + Kubernetes は「個人 botter」に最適か?

比較軸Docker 単体 / Docker Compose軽量 K8s(k3s / micro-k8s)フル K8s(EKS / GKE / self-host)
起動までdocker compose up だけ1 ノードで即起動 (k3sup, snap)クラスター構築~ネットワーク設計が必須
可用性restart policy, watchtower 程度Pod 自動再起動、Helm で複数 botHPA, ローリング更新、Secret 管理まで網羅
運用コストほぼゼロ (自宅 PC / 安価 VPS)VPS 1 台(月¥1–3k)マネージド: 1 クラスタ ¥5–15k/月+ノード課金
学習コスト既に Docker を使うなら低2–3 日で把握可能ネットワーク/RBAC など覚えることが急増
スケール制約bot 3–5 本で CPU ボトルネックbot 10 本+Prom/Grafana でも余裕リージョン横断や GPU も自由

結論

  • 当面 10 本以内 の bot を同サーバーで回すなら k3s 1 ノードクラスタ が最もコスパと可用性のバランスが良い。
  • フル K8s は「昼夜 20 本以上・負荷分散・自動水平スケールが欲しい」段階で初めて ROI がプラスになる。

2. インフラ・パターン別シナリオ

パターン構成月額目安強み弱み
A. ローカル 2PC(開発/運用分離)PC-① (開発) ➜ VSCode、Docker Desktop
PC-② (運用) ➜ k3s + bot Stack
¥0低コスト、物理分離で安心停電・回線断で即ダウン
バックアップ自力
B. VPS 1 台 + CI/CDSakura VPS / ConoHa / Hetzner
k3s + ArgoCD、Prometheus
¥2k–4k24h 通信安定、IP ホワイトリスト可CPU/メモリ上限が早めにくる
C. VPS 2 台 (冗長)Bot 用 / モニタリング用 分散¥4k–8kGrafana・DB を分離し負荷緩和コスト 2×、管理 2×
D. マネージド K8sEKS / GKE / Civo¥8k–15kHPA, IAM, Secret Manager小規模だとアンダー利用に

私の状況(PC 2 台+費用抑制)なら ↓

推奨ルート: まず A → B の二段ロケット
1️⃣ 低性能 PC に k3s を入れ、helm upgrade だけで bot を再デプロイできる形を固める。
2️⃣ 流量が増えたら同じ k3s マニフェストを 国内 VPS にそのまま載せ替え。コンテナレジストリは GH Packages で共通化。


3. 具体ステップ(90 日プラン)

マイルストーン主要コマンド or ツール
1開発 PC:docker compose で bot ×2 を並行稼働docker compose up -d bot-mm bot-fr
2運用 PC に k3s インストール`curl -sfL https://get.k3s.io
3Helm Chart 化 (charts/bot/)helm create bot → values.yaml で env / secrets を外出し
4GitHub Actions : Push → Helm upgradekubectl rollout restart deployment bot-mm
6Prometheus + Grafana Stack を同ノードにhelm repo add prometheus-community ...
8Netdata Cloud or Grafana Cloud 無料枠へ外出し軽量化&スマホ通知
10VPS (¥2k) を契約 → k3sup でジョインk3sup join --ip <vps-ip>
12bot ロードを 70 % 超過したら HPA or 2 ノード化判断kubectl top pods → CPU/メモリ閾値を監視

4. コスト最適化 Tips

  1. ノードは 1 vCPU / 2 GB から
    • MMbot ×2 + P&D bot ×1 程度なら余裕。
  2. ログは 7 日で Loki に圧縮 → S3/Wasabi
    • Egress 圧縮でストレージ月¥100 未満。
  3. CI/CD ランナーは自宅 PC を使い、GitHub Hosted Runner の分を節約。
  4. Spot/VPS のミックス
    • 定常 bot: VPS、検証 bot: AWS Spot → terraform destroy で即削除。

5. 運用 & 開発を同時に回すワークフロー

graph LR
  A[VSCode Devcontainer] -->|git push| B[GitHub]
  B --> C[CI lint & test]
  C -->|helm package| D[GH Container Registry]
  D -->|Flux/ArgoCD sync| E[k3s Cluster]
  E --> F[Prom & Grafana Cloud]
  subgraph Local
    A
  end
  subgraph Cloud / VPS
    E
    F
  end
  • コード⇄実稼働 の往復を git push 1 回に統一。
  • 開発 PC でフルテスト → 運用ノードは自動ローリング更新。
  • 外部サーバーに切り替えても Flux/Argo の GitOps パターンを踏襲するので手順変更ゼロ。

最終ジャッジ

問い回答
Docker + K8s は最適?Yes, ただし k3s 1 ノードが現実的起点。 フル K8s は bot 数・負荷が倍増したら移行。
外部サーバーレンタルは妥当?妥当。 国内 VPS をミラー環境にして深夜回線断・停電リスクを回避。まずは月¥2–4k で十分。
2 台 PC の使い分け?開発:高性能 PC(VSCode Devcontainer)
運用:低性能 PC に k3s → 成熟後 VPS に置換

スタートはローコスト & シンプルに。
“k3s + GitOps” を骨格に据えておけば、bot 数が 3→10→30 と増えても マニフェスト再利用+ノード追加だけでスケールでき、開発スピードと運用安定の両方が犠牲にならない。

-Bot, Tips, 開発ログ