はじめよう実験計画

実験を早く終わらせるための技術

R ShinyのwebアプリをHerokuでデプロイする方法

 

f:id:Sturgeon:20211113123244p:plain

以前、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アプリをデプロイする

この人が説明しています。まずは一回見てみましょう。

www.youtube.com

 

動画の内容をまとめると、

  1. ui.Rおよびserver.RをPCの適当な場所に作る。
  2. Githubにて新しいレポジトリを作成し、1をアップロードする。
  3. Herokuで新しいアプリを作成※stackをheroku-18に指定する必要がある
  4. HerokuのDeployタブで2で作ったGithubのレポジトリと接続する。
  5. HerokuのSettingタブのAdd Buildpackをクリックし、https://github.com/virtualstaticvoid/heroku-buildpack-r.gitを入力
  6. HerokuのDeployタブに戻り、Manual deployのdeploy branchをクリック

以下で、詳しくそれぞれの手順を説明します。

 

 

 

1. ui.Rおよびserver.RをPCの適当な場所に作る。

お試しに、上のyoutubeで紹介されていた以下のファイルを自分のPCの適当な場所にダウンロードします。ui.Rとserver.Rとその他のファイルが入っています。

github.com

 

2.Githubに新しいレポジトリを作成し、1のファイルをアップロード

f:id:Sturgeon:20211113114817p:plain

GithubにR shinyおui.Rとsever.Rをアップロード

 

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マークをクリックし、

f:id:Sturgeon:20211113115113p:plain

HerokuのDeployタブにてGithubのマークをクリック


手順2で作成したGithubのレポジトリ名を入力し"Connect"をクリックします。

f:id:Sturgeon:20211113115351p:plain

HerokuのDepoyタブにて、Githubと接続

 

5. HerokuのSettingタブのAdd BuildpackからR専用のBuildpackを設定する

ここに公開されているR専用のBuildpackのリンク

https://github.com/virtualstaticvoid/heroku-buildpack-r.git 

をHerokuのSettingタブにあるAdd Buildpackをクリックしたら出てくる、Enter Buildpck URLというボックスに貼り付け、Save changesを押します。

f:id:Sturgeon:20211113115810p:plain

HerokuのSettingタブにてAdd Buildpackをクリックし、R専用のBuildpackのリンクを貼る

 

 

6. HerokuのDeployタブに戻り、Manual deployのdeploy branchをクリック

deploy branchをクリックします。

f:id:Sturgeon:20211113122535p:plain

HerokuのDeployタブ>Manual deploy> deploy branch


しばらく待つとdeployが完了し、R shinyアプリケーションが公開されます。アプリケーションのURLはSettingタブのDomainにあります。今回作ったテストアプリのURLはこちら。ちゃんと動いてます!

f:id:Sturgeon:20211113122811p:plain

Heroku SettingタブのDomainに公開先のURLが載っている