Discord BotをEC2 Amazon Linuxにデプロイする

close up photo of programming of codes

Pythonで作ったDiscordサーバーを永続化するための手順をまとめました。

ステップ1: サービスファイルの作成

  • /etc/systemd/system/ディレクトリ内にサービスファイル(例: discordbot.service)を作成
sudo vim /etc/systemd/system/discordbot.service
  • 以下の内容をファイルに追加。User, Group, WorkingDirectory, ExecStartを各自の環境に合わせて適宜変更が必要
[Unit] Description=Discord Bot After=network.target [Service] User=ec2-user Group=ec2-user WorkingDirectory=/path/to/your/discord_bot ExecStart=/usr/bin/python3 /path/to/your/discord_bot/bot.py Restart=always # その他のオプション: # Environment="VARIABLE=VALUE" # EnvironmentFile=-/path/to/environment/variable/file [Install] WantedBy=multi-user.target

補足

  • UserGroupは、ボットを実行するユーザーとグループ
  • WorkingDirectoryはボットのスクリプトがあるディレクトリへのパス
  • ExecStartはボットを起動するコマンド
  • 環境変数が必要な場合は、EnvironmentEnvironmentFileを使用して指定します。

ステップ2: サービスの有効化と起動

  • 新しく作成したサービスをリロードし、システムが認識できるようにします。
sudo systemctl daemon-reload
  • サービスを有効化し、システム起動時に自動的に起動するように設定
sudo systemctl enable discordbot.service
  • サービスを起動
sudo systemctl start discordbot.service
  • サービスの状態を確認して、正しく起動していることを確認
sudo systemctl status discordbot.service

ステップ3: ログの確認

  • サービスのログはjournalctlコマンドを使用して確認できる。
sudo journalctl -u discordbot.service
  • 特定の期間のログを見るには、--sinceオプションを使用
sudo journalctl -u discordbot.service --since "2023-01-01" --until "2023-01-02"
,