以前、R shinyでwebアプリを作ってHerokuでデプロイしたので、その手順を書き残しておきます。
Rのwebアプリ作成
まずは、Rでwebアプリを作りましょう。
Rでwebアプリを作成するには、Shinyというパッケージを使います。Shinyでwebアプリを作る方法については、『RとShinyで作るWebアプリケーション』という本を参考にしました↓
この本にはshinyapps.ioでアプリを公開する方法と、AWSにShiny Serverを導入して公開する方法が紹介されています。しかし、前者では標準的なライブラリしかサポートしていないらしく、私のアプリは動かなかったのと、後者は何やらお金がかかりそうだったので、以前使ったことのあるHerokuで公開する方法を探しました。
Herokuの登録
herokuの登録。そもそもherokuって何なのかよくわかってない。誰か教えてほしい... でも、登録は誰でもできる(笑)
HerokuでR shinyアプリをデプロイする
この人が説明しています。まずは一回見てみましょう。
動画の内容をまとめると、
- ui.Rおよびserver.RをPCの適当な場所に作る。
- Githubにて新しいレポジトリを作成し、1をアップロードする。
- Herokuで新しいアプリを作成※stackをheroku-18に指定する必要がある
- HerokuのDeployタブで2で作ったGithubのレポジトリと接続する。
- HerokuのSettingタブのAdd Buildpackをクリックし、
https://github.com/virtualstaticvoid/heroku-buildpack-r.git
を入力 - HerokuのDeployタブに戻り、Manual deployのdeploy branchをクリック
以下で、詳しくそれぞれの手順を説明します。
1. ui.Rおよびserver.RをPCの適当な場所に作る。
お試しに、上のyoutubeで紹介されていた以下のファイルを自分のPCの適当な場所にダウンロードします。ui.Rとserver.Rとその他のファイルが入っています。
2.Githubに新しいレポジトリを作成し、1のファイルをアップロード
3. Stackを指定してHerokuで新しいアプリを作成する
Herokuのwebページで新しいアプリを作成すると、自動で最新のstack (version)になってしまいます。しかし、後で説明するR専用のBuildpackであるhttps://github.com/virtualstaticvoid/heroku-buildpack-r.git
がサポートているのはheroku-16またはheroku-18というstackのため、stackを指定してアプリを作成する必要があります。このためには、まずHerokuのCLIをここからダウンロードし、その後、コマンドプロンプトで
heroku create --stack heroku-18
と入力し、新しいアプリを作成します。これで、HerokuのWebサイトに戻るとstackがheroku-18で新しいアプリが作成されています。
4. HerokuでGithubと接続する
新しいアプリを作成したらDeployタブのGithubマークをクリックし、
手順2で作成したGithubのレポジトリ名を入力し"Connect"をクリックします。
5. HerokuのSettingタブのAdd BuildpackからR専用のBuildpackを設定する
ここに公開されているR専用のBuildpackのリンク
をHerokuのSettingタブにあるAdd Buildpackをクリックしたら出てくる、Enter Buildpck URLというボックスに貼り付け、Save changesを押します。
6. HerokuのDeployタブに戻り、Manual deployのdeploy branchをクリック
deploy branchをクリックします。
しばらく待つとdeployが完了し、R shinyアプリケーションが公開されます。アプリケーションのURLはSettingタブのDomainにあります。今回作ったテストアプリのURLはこちら。ちゃんと動いてます!