この記事の内容
この記事は、Botを作りたいけど、何をしたらいいかわからない・何から始めたらいいかわからない。そんな方のために、まず、どういう選択肢があるのかをおつたえする記事です。
やり方は色々ありますが、自分にはどの方法が合うのか、なかなか判断しづらいかと思います。
それぞれの方法を比較し、選び方についてまとめてみました。
診断チャート
5つの方法について、診断チャートを作ってみました。ちょっと乱暴ですが、なんとなくの目安にはなるかと思います。
あなたにはどの環境が合いそうですか?
それぞれの結果の詳細については、次章移行をご確認ください。
Botに必要なもの
Botを作って運営するには、開発環境とプログラム実行環境が必要です。
この記事において、これらの言葉が何を指すかを説明します。
開発環境
開発環境とは、「プログラミングする場所」のことです。
難しいことはなく、たとえばメモ帳などのテキストエディタがあれば、それは立派な開発環境です。
プログラム実行環境
プログラム実行環境とは、「使用するBotを実際に動かす場所」のことです。
discord.pyでいうと、
- discord.pyに対応したバージョンのpythonが動く
- インターネット環境がある
- (必要なら)データベース等がある
などが揃っていれば、実行環境ということができます。
これらは必ず別のものなの?
いいえ。
開発環境には、基本的に動作確認用のプログラム実行環境を備えておくものです。
また、実際にBotを使うときに、その動作確認用のプログラム実行環境で動かしてもよいのです。
要するに、はじめに書いたとおり、「プログラムを書く方法(メモ帳など)」と、「プログラムを動かす場所(Pythonコマンド)」があればOKということです。
Bot開発運営方法 解説
5つの方法について、順番に見ていきましょう。
各方法の説明では、以下の項目について◎、◯、△、✕の4段階でそれぞれ評価していきます。
項目 | 意味 |
---|---|
予算 | どのくらいお金がかかるのか |
手軽さ | 扱いやすさ |
自由度 | できること、自由度 |
PC要件 | OSやスペックなど、PC本体によるの制約の大きさ |
連続起動 | Botを常に動かしておけるかどうか |
そのままPCで開発
イメージ
解説
項目 | 評価 | 備考 |
---|---|---|
予算 | ◎ | 0円 |
手軽さ | ◎ | いつもどおりの作業環境が使える |
自由度 | ✕ | Windowsだとサーバを立てたりに制限がある |
PC要件 | △ | WindowsOSだと難しい場合もあり(データベース等) |
連続起動 | ✕ | 自分のPCをBotのために起動しつづけないといけない |
自分のPCでやってしまう方法です。
実際に本格的にBotを運営するとなると、自分のPCなのに好きに再起動できない等の問題が発生しますが、「ちょっと開発をやってみる」という人にはぴったりの方法です。
Windows OSの場合、データベースやWebサーバなどを扱うのは難しいです。これらを使用するようなBotを開発したい場合、別の方法を検討しましょう。
ローカル仮想環境
イメージ
解説
項目 | 評価 | 備考 |
---|---|---|
予算 | ◎ | 0円 |
手軽さ | △ | 起動に時間が必要 |
自由度 | ◯ | 使うOSと設定によっては何でもできる |
PC要件 | ✕ | そこそこハイスペックなPCが必要 |
連続起動 | ✕ | 自分のPCをBotのために起動しつづけないといけない |
筆者が以前使っていた方法です。
Windows OSを使っていても、仮想化ソフトウェアを使えば、ひとつのソフトウェアとしてLinux等を扱えます。
サーバがインターネット上に公開されないため、VPS等と比較してセキュリティが堅牢です。
また、仮想化ソフトウェアは無償で使えるため、お金がかかりません。
しかし、Bot運営をするとなると、自分の端末を好きなときに再起動できない点が不便です。
また一般的に仮想マシンは動作が重く、起動にも少し時間を要するため、手軽さはイマイチです。
代表的な仮想化ソフトウェアには、VMWare、VirtualBox等があります。
※ MacOSの方や、もともとLinuxを使っている方には不要でしょう。
VPSレンタル
イメージ
解説
項目 | 評価 | 備考 |
---|---|---|
予算 | △ | 月額600円程度(GCE等、無料のものもあり) |
手軽さ | ◯ | SSHクライアントを起動するだけだが、環境構築は自分でやる必要あり |
自由度 | ◎ | OSを選択可能かつroot権限がもらえるため、自由度は高い |
PC要件 | ◎ | PC自体のスペックは一切不問 |
連続起動 | ◎ | 自分のPCを落としても、ずっと動かし続けられる |
現在の筆者の環境です。
月々数百円のお金はかかってきますが、Root権限つきなので、データベースやWebサーバ等、自由に必要なソフトウェアをインストールできるという魅力があります。
Linuxに慣れている人はもちろん、慣れていないから勉強したいという方にもおすすめです。
筆者はConoHaおよびカゴヤ・ジャパン
でBot開発と運営をしています。
クラウド開発環境
イメージ
解説
項目 | 評価 | 備考 |
---|---|---|
予算 | ◯ | 無料~月額1,000円程度 |
手軽さ | ◎ | ブラウザひとつでアクセスできる |
自由度 | △ | DBやWebサーバ等は規定のものから選ぶ |
PC要件 | ◎ | ブラウザが動けばスペックは不問 |
連続起動 | △ | 安価なプランだと制約あり |
ブラウザひとつでアクセスできる開発環境と実行環境のセットです。
データベースやWebサーバなど、開発に必要な周辺ソフトウェアが簡単に追加できるサービスが多く、開発を手軽に始めたいという方にはぴったりです。
Rootがもらえないので不便ともいえますが、逆にセキュリティ的に安心であるともいえます。
VPSとは以下のような違いがあります。
- ユーザのできることが絞られている
- SSHに加えて、ブラウザでもアクセスできる
AWS Cloud9、PaizaCloudが代表的なサービスです。
※AWS Cloud9には750時間の無料クーポンが発行されるため、上限までは無料で使うことができます。
ホスティングサービス
イメージ
解説
項目 | 評価 | 備考 |
---|---|---|
予算 | ◯ | 0円~月額1,000円程度 |
手軽さ | ◯ | セットアップには多少の知識が必要 |
自由度 | △ | DBやWebサーバ等は規定のものから選ぶ |
PC要件 | △ | 開発環境は自前で用意する必要がある |
連続起動 | △ | 無料プランの場合、常時起動には工夫が必要な場合がある |
プログラムの実行環境のみを提供するサービスです。
スペック等によっては0円から使うことができるのが魅力です。開発環境は別途自分で用意する必要があります。
データベースやWebサーバも規定のものから選んで追加可能なので、インスタントに実行環境を調達したい人にはぴったりの選択肢でしょう。
代表的なサービスはHerokuです。
まとめ
方法と評価の一覧
ここまでの説明を表にまとめてみました。評価はあくまでひとつの基準なので、◎が多いものが優れているというわけではありませんので、ご注意ください。
方法 | 予算 | 手軽 | 自由 | PC 要件 |
連続 起動 |
対象 |
---|---|---|---|---|---|---|
PCで開発 | ◎ | ◎ | ✕ | △ | ✕ | とにかく無料で手軽にはじめたい方 |
ローカル仮想環境 | ◎ | △ | ◯ | ✕ | ✕ | ↑に加え、スペックに余裕がある方 |
VPSレンタル | △ | ◯ | ◎ | ◎ | ◎ | オススメ! 本格的にBot運営したい方 |
クラウド開発環境 | ◯ | ◎ | △ | ◎ | △ | 有償でもいいから手軽にはじめたい方 |
ホスティングサービス | ◯ | ◯ | △ | △ | △ | 開発環境を自分で用意できる方 |
VPSでDiscord botを開発するチュートリアル記事
こちらのシリーズでは、VPSの契約からセキュリティ設定、Discord botの開発環境をととのえるまでの手順を紹介しています。よければそちらもぜひご覧ください。
おまけ:Bot開発にVPSを使うことにした経緯
筆者ははじめ、VirtualBoxを使ってWindows上でUbuntu14.04を動かし、Botを動作させていました。その環境に不満が出てきたため、VPSに移行することとしました。
移行後は大変満足しています。
とはいえ、はじめにVirtualBoxでUbuntuに親しんでいたからこそ、VPSに移行してからのトラブルに対応できたともいえます。
まずは仮想化ソフトウェアでLinuxに慣れて、それからVPSにチャレンジしてもいいかもしれません。
動機1:常時起動を強いられるのが嫌になった
再起動したいときや家を開けるためPCの電源を落としたい等のとき、Botに気を遣う必要がありました。
動機2:Linux OSを手軽に扱いたくなった
筆者のPCはそこそこのスペック(CPUはi7、メモリは32GB)ですが、それでもVirtualBoxは重いです。
一度仮想環境を落としてしまうと立ち上げるのがめんどうなため、開発に向かう腰が重くなっていました。
動機おまけ:ついでにMinecraftもサーバに載せたくなった
Minecraftをマルチで遊ぶときは、Windows上でMinecraftを起動し、Hamachiでネットワークを作っていました。
VPSがあれば、マルチサーバを常時起動にしておけると考えました。