Help us understand the problem. What is going on with this article?

Shiny Serverの構築(Win+VirtualBox+Ubuntu)

More than 3 years have passed since last update.

1. はじめに

 Rで作ったShinyアプリを、社内など、同一LAN内で共有する方法について書いておきます。今回は、以下の手順でWindows PC(64bit)上にShiny Serverを準備します。他にも、AWS上に構築する、Dockerを利用するなどの方法があるようです。

  • Virtual Boxのインストール
  • Vitural BoxにUbuntuをインストール
  • UbuntuにShiny Server をインストール
  • 設定、アプリの設置など

2. VirtualBoxのインストール

2-1. VirtualBoxのダウンロード

OracleのサイトからVirtualBoxをダウンロードします。(今回はWindows版)
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp

2-2. VirtualBoxのインストール

手順に従ってインストールします。※1

  • タイプ:Linux
  • バージョン:Ubuntu(64-bit)
  • メモリーサイズ:1024 MB
  • ハードディスクのファイルタイプ:VDI(VirtualBox Disk Image)
  • 物理ハードディスクにあるストレージ:可変サイズ
  • ファイルの場所とサイズ:10 GB

3. Ubuntuのインストール

3-1. Ubuntuのダウンロード

続いて、Ubuntuをダウンロードします。(今回は16.04.2 LTS ※最新版は、17.04)
https://www.ubuntu.com/download/desktop

3-2. ドライブへのマウント

VBの設定 > ストレージ > 光学ドライブで、DLしたisoファイルを選択

3-3. インストール

  • 仮想マシンを起動して「Install Ubuntu」を選択(日本語を選択できます)
  • 「Ubuntuのインストール中にアップデーをダウンロードする」にチェック
  • 「ディスクを削除してUbuntuをインストール」にチェック
  • どこに住んでいますか?: Tokyo
  • キーボードレイアウト: 日本語/日本語

4. Ubuntuとのフォルダ共有設定

 ホスト(Windows)とゲスト(Ubuntu)の間でファイルをやり取りするために、フォルダを共有しておきます。※2

4-1. 共有設定(Windows側)

  • 共有したいフォルダを右クリックして、プロパティ→共有タブを選択
  • 詳細な共有 > 「このフォルダを共有する」にチェック
  • 「フルコントロール」、「変更」、「読み取り」にチェック

4-2. 共有設定(VirtualBox側)

  • 仮想マシンは停止しておく
  • VirtualBoxの設定 > 共有フォルダーからフォルダを追加
  • 自動マウントにチェック

4-3. 共有設定(Ubuntu側)

  • Ubuntuを起動
  • 「Ctl + Alt + T」で端末(ターミナル)を起動
    ※左側のメニュー上の端末のアイコンを右クリック > Launcherに登録しておくと便利です。
  • sudo apt-get install virtualbox-guest-dkms でGuest Additionsを追加 ※3
  • sudo gpasswd -a ユーザ名 vboxsf と入力し、権限を与える
  • Ubuntuを再起動
  • /media下の、"sf_フォルダ名"で共有される

5. ネットワーク設定

 ゲスト(Ubuntu側)のネットワークは、ホスト(Windows側)のネットワークとは別に割り当てられるようなので、例えばゲストOSをサーバにしてホストOS側のネットワークから確認する場合には、設定を追加する必要があります。※4

5-1. ポートフォワーディングの設定

  • 設定 > ネットワーク > 高度 > ポートフォワーディング
  • 新規ポートフォワーディングルールを追加
  • ホストポート「例) 8080」、ゲストポート「例)3838」を記入
    ※マイナーなポートにしてください。
    ※ホストポートは、Shinyアプリにアクセスする際に使います。http://localhost:8080/app_name/
    ※また、ゲストポートは、後で Shiny-server の設定の方で指定しますので覚えておいてください。

6. R のインストール

 UbuntuにRをインストールします。基本的に、Rstudioのサイトの手順通りに進めます。※5

6-1. R のインストール

  • ゲストOS(Ubuntu)で、「Ctl + Alt + T」でターミナルを起動
  • sudo apt-get install r-base と記入して、Rをインストール

6-2. Shiny パッケージのインストール

続いて、Shinyのパッケージも入れておきます。

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

7. Shiny-server のインストール

同様に、端末からShiny-serverをインストールします。

  • sudo apt-get install gdebi-core
  • wget https://download3.rstudio.org/ubuntu-12.04/x86_64/shiny-server-1.5.3.838-amd64.deb
  • sudo gdebi shiny-server-1.5.3.838-amd64.deb
  • 起動の確認
    ゲストOS側 http://localhost:3838
    ホストOS側 http://localhost:8080 
    LAN内の他の端末からのアクセスは、http://(ホスト端末のIPアドレス):8080
    ※「Welcome to Shiny Server!」 が見えていれば成功です。

8. Shiny-server のスタート、ストップ

 インストールに成功すると、自動でスタートしている様ですが、ここではマニュアルでのShinyサーバーのスタートとストップのコマンドを書いておきます。(詳細は※6)

  • スタート: sudo systemctl start shiny-server
  • ストップ: sudo systemctl stop shiny-server

9. Shiny-server の設定

 基本的に設定を変更する必要はありませんが、ポートの変更に関してのみ、メモしておきます。※7

  • /etc/shiny-server/shiny-server.conf を開いて、listen 3838 の数字を変更
    ※「5. ネットワーク設定」で指定したゲストポートと同じ数値を指定します。

10. アプリの設置

 ホスト(Windows側)で作成したアプリを、ゲスト(Ubuntu側)のShiny-serverへ設置をします。

  • ホスト側で、「4. Ubuntuとのフォルダ共有設定」で指定したフォルダにアプリをコピー
  • ゲスト側で、アプリをコピーし、/srv/shiny-server/ にペースト
  • /srv/shiny-server/test/ にアプリを設置した場合のアクセス先は、以下の通り
    ゲストOS側 http://localhost:3838/test/
    ホストOS側 http://localhost:8080/test/
    ※アクセスできない場合は、権限を与えてみて下さい。
    ex.) chmod 777 hoge.txt

11. マルチプロセス化

 運用上、同時に複数のアクセスができないと困るので、マルチプロセス化をしておきます。※8(有償であれば、マルチプロセスに対応しています。Dockerを利用した場合、マルチプロセスに対応しているイメージもあるみたいですね。)

参考

  1. 「VirtualBoxにUbuntu16.04をインストール」
    http://qiita.com/ykawakami/items/4bae371932110b2e25e3
  2. 「WindowsでVirtualBoxを使用してLinux(Ubuntu)を動作させる手順と設定」
    http://itmemo.net-luck.com/virtualbox-ubuntu/
  3. 「VirtualBoxを使おう - Hint & Tips」
    http://www.linuxmania.jp/virtualbox_02.html
  4. 「VirtualBox上のゲストOSにホストOSからNATでアクセスする」
    http://www.karakaram.com/virtualbox-port-fowarding
  5. 「Installing Shiny Server Open Source」
    https://www.rstudio.com/products/shiny/download-server/
  6. 「Shiny Server Professional v1.5.1 Administrator's Guide 1 Getting Started」
    http://docs.rstudio.com/shiny-server/#stopping-and-starting
  7. 「Shiny Server Professional v1.5.1 Administrator's Guide 2 Server Management」
    http://docs.rstudio.com/shiny-server/#default-configuration
  8. 「Shiny Serverあれこれ」
    https://www.slideshare.net/wdkz/japanr2013-wdkz
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away