序章

Shiny は、ユーザーがRコードをインタラクティブなWebページに変換できるようにするRパッケージです。 Shinyサーバーは、RStudioが提供するサーバーであり、Web上でShinyアプリケーションをホストおよび管理するために使用できます。 Shiny Serverは、Shinyアプリケーションをホストする以外に、インタラクティブRマークダウンドキュメントをホストすることもできます。 シャイニーサーバーには、無料のオープンソースバージョンと、より多くの機能を備えた有料のプロフェッショナルバージョンの両方があります。

このガイドでは、Ubuntu14.04を実行しているDigitalOceanDropletにオープンソースのShinyServerをセットアップする方法を学習します。 ドロップレットが異なるバージョンのUbuntuまたは異なるLinuxディストリビューションを実行している場合でも、ほとんどの手順は適用されますが、特定のディストリビューションに一致するようにいくつかのコマンドを変更する必要がある場合があります。 このガイドを使用して、ShinyServerProfessionalをセットアップすることもできます。 このガイドに従って完了するには、約10〜15分かかります。

前提条件

このチュートリアルでは、次のものが必要になります。

  • 2GBのRAMを搭載したUbuntu14.04ドロップレット
  • ドロップレットにインストールされているRの最新バージョン( Ubuntu 14.04でRを設定する方法
  • sudo権限を持つroot以外のユーザー( Ubuntu 14.04 を使用した初期サーバーセットアップでは、これをセットアップする方法について説明しています。)

このチュートリアルのすべてのコマンドは、root以外のユーザーとして実行する必要があります。 コマンドにrootアクセスが必要な場合は、その前にsudoが付きます。 Ubuntu 14.04を使用したサーバーの初期設定では、ユーザーを追加してsudoアクセスを許可する方法について説明しています。

注:このガイドの残りの部分では、 your_server_ip が表示されたら、DropletのIPに置き換える必要があります。

ステップ1—Shinyをインストールする

Shiny Serverをインストールする前に、shinyRパッケージをインストールする必要があります。 サーバー上のすべてのユーザーが利用できるようにshinyをインストールします。

  1. sudo su - -c "R -e \"install.packages('shiny', repos='http://cran.rstudio.com/')\""

注: Rに精通している場合は、コマンドラインからではなくRから直接パッケージをインストールしたくなるかもしれません。 ここで使用するアプローチは、現在Rを実行しているユーザーだけでなく、すべてのユーザーにインストール済みパッケージを確実にインストールするための最も安全な方法です。

ステップ2—ShinyServerをインストールする

GDebiツールを使用してShinyServerをインストールするので、最初にインストールする必要があります。

  1. sudo apt-get install gdebi-core

これで、ShinyServerをダウンロードする準備が整いました。 ドロップレットが64ビットのUbuntuを実行していると仮定して、次のコマンドを使用してShinyServerをダウンロードします。

  1. wget -O shiny-server.deb http://download3.rstudio.org/ubuntu-12.04/x86_64/shiny-server-1.3.0.403-amd64.deb

これにより、この記事の執筆時点で最新のShinyServerであるShinyServerバージョン1.3.0.403がダウンロードされます。 最新バージョンをダウンロードしたい場合は、公式のShiny Serverダウンロードページを参照して最新バージョンを見つけ、それに応じてURLを変更してください。 32ビットオペレーティングシステムまたはUbuntu以外のディストリビューションを実行している場合、オペレーティングシステムの具体的な手順については、ShinyServerダウンロードページを参照する必要がある場合があります。

次に、 GDebi を使用して、ダウンロードしたファイルをインストールします。

  1. sudo gdebi shiny-server.deb

これで、ShinyServerがポート3838にインストールされて実行されているはずです。 http://your_server_ip:3838/にデフォルトのウェルカム画面が表示されるはずです。

Shiny Server default welcome page

http://your_server_ip:3838/sample-apps/hello/に移動すると、ShinyServerが正しく機能していることを確認できます。

ステップ3—インタラクティブなRマークダウンドキュメントをホストする

Shiny Serverは、Shinyアプリケーションをホストするだけでなく、インタラクティブなRマークダウンドキュメントをホストする場合にも役立ちます。 インタラクティブなRマークダウンドキュメントの詳細については、RStudioの公式Rmarkdownサイトをご覧ください。

この時点で、ShinyアプリケーションをホストできるShinyサーバーが機能しているはずですが、rmarkdown Rパッケージがインストールされていないため、インタラクティブなRマークダウンドキュメントをまだホストできません。 Shiny Serverには、http://your_server_ip:3838/sample-apps/rmd/で入手できるサンプルのインタラクティブドキュメントが付属しています。 今すぐそのURLにアクセスすると、エラーが表示されます。

rmarkdownパッケージをインストールして修正しましょう。

  1. sudo su - -c "R -e \"install.packages('rmarkdown', repos='http://cran.rstudio.com/')\""

これで、Shiny Serverは、インタラクティブなRマークダウンドキュメントとShinyアプリケーションを実行するように設定されました。 インタラクティブドキュメントが機能することを確認するには、http://your_server_ip:3838/sample-apps/rmd/に移動し、エラーがないことを確認します。

ステップ4— Shiny Server Professionalのインストール(オプション)

この手順は、Shiny Server Professionalライセンスを購入し、このサーバーでライセンスを使用する場合にのみ実行してください。

ライセンスを購入すると、RStudioからShinyServerProファイルのダウンロードに使用するURLが提供されます。 ShinyServerProファイルをダウンロードします。

  1. wget -O shiny-server-pro.deb Shiny_Server_Pro_URL

ShinyServerProをインストールします。

  1. sudo gdebi shiny-server-pro.deb

また、ShinyServerProをアクティブ化するために必要なプロダクトキーも提供されます。

  1. sudo /opt/shiny-server/bin/license-manager activate Product_Key

アクティベートされたバージョンが開始されるように、ShinyServerProを再起動します。

  1. sudo reload shiny-server

次のステップ

これで、ShinyアプリケーションまたはインタラクティブドキュメントをホストできるShinyサーバーが機能するようになりました。 シャイニーサーバーの設定ファイルは/etc/shiny-server/shiny-server.confにあります。 デフォルトでは、/srv/shiny-server/ディレクトリのアプリケーションにサービスを提供するように構成されています。 これは、/srv/shiny-server/app_nameに配置されたShinyアプリケーションがhttp://your_server_ip:3838/app_name/で一般に公開されることを意味します。

Shiny Server管理者ガイドを参照して、サーバーを正確なニーズに合わせてカスタマイズする方法とサーバーを管理する方法を学ぶことをお勧めします。

光沢のあるアプリケーションの作成について詳しくは、rstudio.comチュートリアルをご覧ください。

インタラクティブなRマークダウンドキュメントの作成について詳しくは、rstudio.comのRマークダウンページをご覧ください。

結論

このガイドでは、Ubuntu14.04ドロップレットにShinyServerをセットアップするために必要な手順を説明しました。 Shiny Serverをセットアップすることにより、一般の人々がアクセスできる方法で、ShinyアプリケーションとインタラクティブなRドキュメントをWeb上でホストすることができます。