今日 Amazon EC2 にアップデートがあって t2.nano インスタンス が使えるようになりました。オンデマンドインスタンスでも月 $7 くらいなので Heroku の Hobby プラン と価格帯が並んだことになります。
今まで EC2 で Hubot を動かそうとすると「 t2.micro でもスペック過剰だし高い」という感じだったので、新しい t2.nano は Hubot を動かすのに最適なのではないでしょうか。
というわけで「 t2.nano でも Hubot 動くかな?」と思って試してみたら普通に動いた、というだけの雑なネタです。所要時間 10 分くらいです。
インスタンスを立ててログインする
OS は Amazon Linux を選びました。
詳しい説明は割愛します。
はじめにやること
git が入ってないので入れます。
sudo yum update
sudo yum upgrade
sudo yum install git
Node.js をインストール
tagomoris/xbuild を使うと楽です。
git clone https://github.com/tagomoris/xbuild.git
xbuild/node-install v4.2.3 ~/local/node
echo 'export PATH=$HOME/local/node/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Redis をインストール
hubot-brain 使わないなら入れなくていいです。
sudo yum --enablerepo=epel install redis
sudo service redis start
sudo chkconfig redis on
新しい Hubot を作成
既に自分の Hubot がある場合は git clone
とかして落とすだけでいいです。
今回は Slack で動かしたかったので、Adapter は slack と入力して、Slack の設定画面から新しい Hubot Configuration を追加して TOKEN を生成しておきます。
npm install -g yo generator-hubot
mkdir hubot
cd hubot
yo hubot
echo "HUBOT_SLACK_TOKEN='xoxb-12345678-xxxxxxxxxxxxxxxx'" >> .env
動かしてみる
特に意味は無いですが今回は node-foreman を入れて動かしました。
npm install -g foreman
nf start
永続化 (Daemonize) する
foreman だけでは永続化出来ない?っぽいですね。
forever とか使うといいと思います。
まとめ
t2.nano でも普通に Hubot は動きました。
軽いノリで Hubot を動かしたいときは AWS でも Heroku でも好きなサービスを使うといいでしょう。