【要約】WebクローラーをDiscord Botに仕立ててConoHa VPSに常駐させるまで【discord.py・systemd】 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が、Webクローラーの結果をDiscordで常時確認したいと考えた際、以下の課題に直面した。
- ・PaaSの無料枠では、一定時間のアイドル後にスリープし、Botが停止する。
- ・BotとWebアプリを別々のPaaSで運用すると、月額コストが累積する。
- ・ローカル環境では、PCの電源を切るとBotの稼働が継続できない。
// Approach
開発者は、自由度とコストのバランスを重視し、VPSを用いた常時稼働環境を構築した。
- ・ConoHa VPSを採用し、Ubuntu 22.04上で実行環境を構築。
- ・SSH鍵認証とrootログイン禁止設定により、サーバーのセキュリティを強化。
- ・GitHubのDeploy Keyを使用し、VPSからリポジトリへの読み取り専用アクセスを実現。
- ・systemdのユニットファイルを作成し、プロセスの自動起動と異常時の自動再起動を設定。
// Result
開発者は、月額約900円という低コストで、24時間稼働するDiscord Bot環境を実現した。
- ・
defer()の活用により、重いクローラー処理でもDiscordのタイムアウトを回避。 - ・systemdによる管理で、プロセス停止時の運用負荷を大幅に軽減。
- ・Deploy KeyとSSH設定により、セキュアなデプロイフローを確立。
Senior Engineer Insight
> 小規模運用において、コストと自由度のバランスが極めて高い構成だ。特に、PaaSの「スリープ問題」をVPSで回避する判断は実戦的である。ただし、単一サーバー構成は単一障害点(SPOF)となる。商用環境への適用には、監視の自動化やOSの脆弱性管理、バックアップ戦略の追加が不可欠だ。