はじめに
こんにちは、OhaGiです。
上記の記事で作成したdiscord botをデプロイして24時間使えるようにしたかったので、GCPの Compute Engine を使って実装してみました。
GCPの無料枠で完結するようにデプロイをしていますが、現時点で 請求額がいくらになるか未確認 です。
請求額が確定したら追記いたしますのでご了承願います。
想定読者層
- 作成したdiscord botをデプロイして24時間起動させたい方
- Git,Githubを使用してコードを管理している方
デプロイまでの手順
1.discord botを作る
discord bot作成については省略します。
Githubにリポジトリを作ってコードをあげて公開しておきましょう。
.gitignoreに.env(discord botのトークンが書いてあるファイル)を
記載することを忘れずに!
2.GCPアカウント作成
ここも省略します。
クレジットカードを登録しないと先に進めない点にだけ注意
3.プロジェクト作成とVMインスタンスの準備
3-1.プロジェクトの作成
GCPのコンソール画面に移動して、"プロジェクトを選択"から"新しいプロジェクト"をクリックします。
プロジェクト名を入力して作成をクリックします。
3-2.VMインスタンスを作成
プロジェクトを選択の表示が任意のプロジェクト名になっていることを確認して、少しスクロールした先にある"VMの作成"をクリックします。
Compute Engine APIの画面で有効にするをクリックします。
4.VMインスタンスのセットアップ
4-1.インスタンスの設定
"インスタンスを作成"画面に遷移するのでなるべく料金が安くなるように設定していきます。
4-2.マシンの構成
項目名 | 設定 | 補足 |
---|---|---|
リージョン | us-central1 (アイオワ) | |
ゾーン | us-central1-a | |
マシンタイプ | e2-micro (2 個の vCPU, 1 GB メモリ) | ラジオボタンで"e2"を選択してから下部で"e2-micro"を選択 |
4-3.OSとストレージ
オペレーティング システムとストレージの変更ボタンから変更します。
項目名 | 設定 | 補足 |
---|---|---|
オペレーティングシステム | Ubuntu | |
バージョン | Ubuntu 22.04 LTS Minimal | 2025/07/24現在の安定版 |
ブートディスクの種類 | 標準永続ディスク | |
サイズ | 10GB |
以上を設定したら"作成"をクリックしてVMインスタンスを作成しましょう。
5.VMへbotを導入する
5-1.ターミナルへ移動
左のリストからVMインスタンスを選択し、作成したインスタンスの接続"SSH"をクリックしてターミナルに移動します。
AuthorizeをクリックしてSSH接続をします。
5-2.gitのインストールとリポジトリのクローン
ターミナルが開くので、gitのインストールとリポジトリのクローンを行います。
sudo apt update
sudo apt install git -y
git clone {リポジトリのURL}
5-3.nanoのインストール
.envファイルや後述の自動起動設定に使うファイルを追加・編集するためエディタツールであるnanoを使用します。
また、python3やpipのインストールも行います。
sudo apt install nano -y
sudo apt install git nano python3 python3-pip -y
5-4..envファイルの編集
プロジェクトのフォルダに入って.envファイルを作成します。(discord botのトークンが書いてある.envファイルはgitの追跡対象外のため)
cd {リポジトリ名}
nano .env
エディタで.envを編集します。
DISCORD_TOKEN={discord botのトークン}
ctrl+O→Enter→ctrl+Xで保存して終了できます。
5-5.依存パッケージのインストール
requerements.txtなどで依存パッケージを管理している場合は下記コマンドでインストールしましょう。
pip3 install -r requirements.txt
5-6.discord botを動作させる
python3 {Botの起動スクリプト}
ここまで出来たらdiscord上で、discord botの動作確認をしましょう
6.discord botの自動起動・常時稼働設定
6-1.systemdについて
今回、discord botの自動起動・常時稼働にはsystemdというサービスを使用します。
6-2.systemd サービス作成
sudo nano /etc/systemd/system/{bot名等の任意の名前}.service
エディタ上で編集します
[Unit]
Description={このサービスの名前}
After=network.target
[Service]
Type=simple
User={自分のLinuxユーザー名}
WorkingDirectory=/home/{ユーザー名}/{プロジェクトフォルダ名}
ExecStart=/usr/bin/python3 {botの起動スクリプト}
EnvironmentFile=/home/{ユーザー名}/{プロジェクトフォルダ名}/.env
Restart=always
[Install]
WantedBy=multi-user.target
6-3.systemd コマンドで起動&自動化
sudo systemctl daemon-reload
sudo systemctl enable {bot名等の任意の名前}.service
sudo systemctl start {bot名等の任意の名前}.service
6-4.ステータス確認する
sudo systemctl status {bot名等の任意の名前}.service
これでdiscord botの自動起動と常時稼働が完成しました!お疲れ様でした!
参考記事