MeteorをHerokuにデプロイする方法
Meteorアプリは、meteor.comにデプロイする場合はコマンド一つなので楽ですが、その他にデプロイしようとすると意外と大変です。Meteorを普通のnode.jsアプリに変換するツールとしてdemeteorizerやmeteor-upがありますが、今回はHerokuに限定した方法を紹介します。
Heroku custom buildpack
Herokuにはbuildpackというgit pushしたデータをコンパイルなどして環境を作る仕組みがあります。RubyやNode.jsなど標準的なものはDefault buildpacksとして提供されているのですが、APIが公開されていて第三者が作るThird-Party Buildpacksというものがあります。
Meteor Buildpack Horse
Meteor Buildpack HorseはHerokuのMeteor用buildpackです。類似buildpackが乱立していたようですが、今のところこれがメンテされているようです。
これを使うと拍子抜けするくらい簡単です。使い方を見てみましょう。
使い方
HerokuでMeteor以外のNode.jsアプリをデプロイしたことがある前提で説明します。
初めにHerokuでアプリを作成します。Webインタフェースでもできますが、CLIでは下記のようにすると思います。
heroku create myapp
Meteor Buildpack Horseを設定します。(アプリのowner権限が必要)
heroku buildpacks:set https://github.com/AdmitHub/meteor-buildpack-horse.git
MeteorはMongoDBを使うので、そのためのアドオンを追加します。Webインタフェースでもできます。
heroku addons:create mongolab
最後に一つだけ設定しなければいけない環境変数があります。
heroku config:set ROOT_URL=https://myapp.herokuapp.com
URLの中身は適切に変えましょう。これもWebインタフェースから設定できます。
さて、以上で設定は終わりであとは通常と同じくgit pushすればよいだけです。
git push heroku master
リモートリポジトリherokuの設定が正しくされている前提です。
感想
一度設定してしまえば、あとは普通のnode.jsアプリと何ら変わらないのでとても自然です。buildpacksすばらしい。ただ、Meteorの仕様が変わってうまく動かなくなる可能性はあるので注意は必要です。頻繁に最新情報をチェックするのがよいでしょう。