横国休講BOTのアーキテクチャ

休講bot

前記事でメモした、最初の横国休講botを作成してからもうすぐ2年が経つ。

twitter.com

最初は一枚のpythonファイルとpickleによるキャッシュシステムがWindowsのラップトップ上で動いていて、まともなお知らせすらままならなかったこの休講botも、自分の経験に合わせてアップデートされ、ある程度まともにユーザーが定着してくれて2年目を迎えようとしていることは、なんだか感慨深い。

そろそろ自分の卒業が迫ってきて、運営することが難しくなってしまうので、公式化や引き継ぎに向けて動き出している。 今回はそのような時期でキリのいいタイミングであるので、現時点(2017/5/18)での構成を後々の振り返りや、引き継ぎのための資料としてメモしておこうと思う。

アーキテクチャ

www.slideshare.net

メモ

アーキテクチャや工夫した点は上記のスライドの通りであるが、少し補足を残しておこうと思う。

Nginxが存在する理由

休講botの機能としては基本的に休講情報をツイートしたり、ユーザーのDMに自動応答したりするものなので、基本的にhtmlファイルを取り扱うことはない。 それなのにNginxを使用している理由は、DMシステムの「使い方」ページにのみhtmlファイルを使用しているのと、djangoの管理画面を使用していることからである。

※使い方ページ https://goo.gl/bt2Fu1

無料を意識した

最初からマネタイズすることは考えていなかったので、とにかく無料で運用することにこだわった。 AWSのt2.microは一年間の無料枠が使えるので、それをフルに活用して、全てをEC2の1インスタンスに納める構成にした。

振り返り

せっかくなので休講botに関して、軽く振り返ってみようと思う。

フォロワーの意見も聞いてみたりした

初期の頃(フォロワーが1000人もいないころ)、ツイッターのアンケート機能を使って「今日の休講情報だけ欲しいか」という質問をしたことがある。 その結果3割程度の生徒が欲しいとのことだったので、その意見を取り入れて「横国今日の休講bot」を作った。 twitter.com

いろいろなことを試した

Twitter Analyticsではエンゲージメント率(コンバージョン率みたいなもの)を見ることができるが、それをあげるためにそういうのが得意な友人といろいろ工夫した。ツイートに絵文字をつけてみてt検定でエンゲージメント率に有意差があるのかとかをやった思い出がある。懐かしい。

休講botの宿の変遷

前述のように、休講botの構成は様々な変遷を経てきた。 具体的には Windows ラップトップ→ラズベリーパイAWS のように宿を変えてきた。 今後は無料で運営する限りはAWSから離れることはないかなと思う。

総じて

楽しかった。最初にこのbotを作った時はフォロワーが集まらなくて、「使われるわけない」と言われていたが、なぜか自分的には使われる自信があった。 その後友達にツイートをリツイートしてもらうと瞬く間にフォロワーが300人以上集まってきたあの時の感動は今でも忘れられない。 横国という狭く閉じた世界ではあるが、一時でも生徒に使ってもらえたことはとても嬉しいことで、そんな経験をさせてくれたユーザーや休講bot、アドバイスしてくれた友人にはとても感謝している。 今後もその感謝の気持ちを忘れずに、次はもっと大きな規模を目指して、物を作っていきたいと強く思う。

今後

とはいえまだ稀ではあるがバグが見つかったりはするので、修正していく。 Githubのプライベートリポジトリで管理しているので、公式化できなかった場合、引き継ぎ先の人と一緒に開発していくのは楽しそうだなと思う。 また、オープンソース化して横国生の後輩みんなで運用していくという選択肢もあるのかなと思う。