Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Shiny-Severあれこれ
2013/12/07
Japan.R 2013@ヤフー株式会社
和田 計也
サイバー系
サイバー系

はじめに

※この発表は個人の見
解であり、所属する組
織の公式見解ではあり
ません。
2013/12/07

2
サイバー系

自己紹介
u 和田 計也(@wdkz)
u 静岡県袋井市出身

u サイバー系企業でデータマイニングエンジニア職
u 最近はPCオーディオのベストソリューションを模索しています

u 長いことバイオ業界にいた
u バイ...
サイバー系

いきなりですが

u皆さん、Shiny使ってますか??
u プチBIツールとして
u BIツールで描画できないものとか

2013/12/07

4
サイバー系

Shinyとは?
u

Rのコーディングだけでブラウザ上で動く、まるで
javascriptで作ったような動的なアプリ(webページ)が
作れます!

u

実際に分析してる人ならこれがいかにキラーアプリかわか
ると思います。...
サイバー系

Shinyアプリの配布について
u

(後述する)Shiny-Serverを利用してサーバーにデプロイ

u

@hoxo_mさん作成のOpenShinyを利用してユーザに上手
いことShinyアプリを配布
u.Netで作ら...
サイバー系

Shiny-Server

uShiny-Server使ってますか??
u拠点が離れてたり
uユーザ多かったり
 すると配布が困りますよね...

2013/12/07

7
サイバー系

Shiny-Serverとは?
u

Shinyのサーバ版(ほぼnode.js)

u

Shinyアプリをサーバにデプロイしておけば、ユーザは
ブラウザから該当のurlにアクセスすれば使える

u

アプリ配布の問題解消し...
サイバー系

Shiny-Serverの憂鬱

uところが、複数ユーザ
の同時接続にめっちゃ
弱いという致命的な何
かがある
今やるの?
バカでしょ!!

2013/12/07

9
サイバー系

作者もわかってる
(Shiny-Mailing Listより)

テキスト

↓ここは大丈夫
Node.js
(Shiny-server)

R

↑ここがネック
2013/12/07

10
サイバー系

作者もわかってる・和訳
①Shiny-Server+Rを(複数のサーバで)プロセス起動
させて、その前にロードバランサーを立てて負荷分散する
Node.js

R

(Shiny-server)

Node.js

R

(Shi...
サイバー系

孫さん風

やりま
しょう
2013/12/07

12
サイバー系

②node.jsの後ろに複数Rプロセスの場合
u

Shiny-Serverのコード(Node.js)に手を入れる必要あり

u

近いうちに@mtknnktmさんがどこかできっと発表してくれます!

R
Node.js
(S...
サイバー系

①ロードバランサー的なの使う場合
u

nginxのリバースプロキシを使う
u

version1.3.13からwebsocketのリバースプロキシ対応
になったのでShiny-Serverでも使える
Node.js
(Shi...
サイバー系

①ロードバランサー的な
u

Shiny-ServerとRのサーバを用意(Ubuntuの場合)
#Rのインストール

これ

sudo apt-get update
sudo apt-get install r-base

No...
サイバー系

①ロードバランサー的な
u

nginxのリバースプロキシ用のサーバを用意(Ubuntuの場合)
これ

設定ファイルの中身

upstream app {
  server aaa.aaa.aaa.aaa:3838;
  se...
サイバー系

できた
Shiny-Server+Rを(複数のサーバで)プロセス起動さ
せて、その前にロードバランサーを立てて負荷分散する

Node.js
(Shiny-server)

Node.js
(Shiny-server)

Node...
サイバー系

ついでに(Basic)認証も
nginxのサーバに認証機能を持たせる
これ

設定ファイルの中身

upstream app {
  server aaa.aaa.aaa.aaa:3838;
  server bbb.bbb.bb...
サイバー系

ついでに(Basic)認証も_Shiny-Server側
Shiny-Server+Rのサーバは認証を通ったnginxから
のみアクセスを受け付けるようにする
これ

#Shiny-Serverの設定
sudo vi /etc/s...
サイバー系

その後
u

commercial versionだってー!!

node.jsの後ろに複数Rプロセス的な

2013/12/07

20
サイバー系

その後のその後
2013/11中旬にProのBetaサイトオープン

で、いくらなの?

なお、RStudio Server Proは1サーバ
あと数週間で価格出るって!!

2013/12/07

$9,995/yearの模様
...
サイバー系

その後のその後のその後(2013/12/04)
価格キター

同時接続10で $9,995/server/year
100で$24,995/server/year

2013/12/07

22
サイバー系

その後のその後のその後(2013/12/04)

認証

スケーリング

モニタリング

2013/12/07

23
サイバー系

最後にスケーリングの設定を紹介(Pro)
u

フリーのは1アプリ1Rプロセスなんだけど、
Proは1アプリ複数Rプロセス使える

1アプリあた
り利用するR
プロセス数の
MAX
1Rプロセスあたり接続する数
1RプロセスのC...
Upcoming SlideShare
Loading in …5
×

Shiny-Serverあれこれ

18,269 views

Published on

JapanR 2013での発表資料です。Shiny-Serverに関することとか

Published in: Education
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Shiny-Serverあれこれ

  1. 1. Shiny-Severあれこれ 2013/12/07 Japan.R 2013@ヤフー株式会社 和田 計也 サイバー系
  2. 2. サイバー系 はじめに ※この発表は個人の見 解であり、所属する組 織の公式見解ではあり ません。 2013/12/07 2
  3. 3. サイバー系 自己紹介 u 和田 計也(@wdkz) u 静岡県袋井市出身 u サイバー系企業でデータマイニングエンジニア職 u 最近はPCオーディオのベストソリューションを模索しています u 長いことバイオ業界にいた u バイオマーカ探索してたり u 枯草菌の研究してたり 2013/12/07 3
  4. 4. サイバー系 いきなりですが u皆さん、Shiny使ってますか?? u プチBIツールとして u BIツールで描画できないものとか 2013/12/07 4
  5. 5. サイバー系 Shinyとは? u Rのコーディングだけでブラウザ上で動く、まるで javascriptで作ったような動的なアプリ(webページ)が 作れます! u 実際に分析してる人ならこれがいかにキラーアプリかわか ると思います。 詳細はここら辺 参考にして下さい 2013/12/07 5
  6. 6. サイバー系 Shinyアプリの配布について u (後述する)Shiny-Serverを利用してサーバーにデプロイ u @hoxo_mさん作成のOpenShinyを利用してユーザに上手 いことShinyアプリを配布 u.Netで作られてるのでWindowsマシン限定→弊社は断念 u(Mono使ってMacOSXでも動くといいなぁ) 2013/12/07 6
  7. 7. サイバー系 Shiny-Server uShiny-Server使ってますか?? u拠点が離れてたり uユーザ多かったり  すると配布が困りますよね... 2013/12/07 7
  8. 8. サイバー系 Shiny-Serverとは? u Shinyのサーバ版(ほぼnode.js) u Shinyアプリをサーバにデプロイしておけば、ユーザは ブラウザから該当のurlにアクセスすれば使える u アプリ配布の問題解消したね!! 2013/12/07 8
  9. 9. サイバー系 Shiny-Serverの憂鬱 uところが、複数ユーザ の同時接続にめっちゃ 弱いという致命的な何 かがある 今やるの? バカでしょ!! 2013/12/07 9
  10. 10. サイバー系 作者もわかってる (Shiny-Mailing Listより) テキスト ↓ここは大丈夫 Node.js (Shiny-server) R ↑ここがネック 2013/12/07 10
  11. 11. サイバー系 作者もわかってる・和訳 ①Shiny-Server+Rを(複数のサーバで)プロセス起動 させて、その前にロードバランサーを立てて負荷分散する Node.js R (Shiny-server) Node.js R (Shiny-server) ロードバランサー Node.js R (Shiny-server) ②Shiny-Serverの後ろに複数Rプロセス起動させる R Node.js (Shiny-server) R R 2013/12/07 11
  12. 12. サイバー系 孫さん風 やりま しょう 2013/12/07 12
  13. 13. サイバー系 ②node.jsの後ろに複数Rプロセスの場合 u Shiny-Serverのコード(Node.js)に手を入れる必要あり u 近いうちに@mtknnktmさんがどこかできっと発表してくれます! R Node.js (Shiny-server) R R この人 2013/12/07 13
  14. 14. サイバー系 ①ロードバランサー的なの使う場合 u nginxのリバースプロキシを使う u version1.3.13からwebsocketのリバースプロキシ対応 になったのでShiny-Serverでも使える Node.js (Shiny-server) Node.js (Shiny-server) Node.js (Shiny-server) R R R ・処理性能 ・高い並行性 ・メモリ使用量の小ささ が特長のオープンソースのWebサーバ (Apache HTTP Serverみたいなの) 2013/12/07 14
  15. 15. サイバー系 ①ロードバランサー的な u Shiny-ServerとRのサーバを用意(Ubuntuの場合) #Rのインストール これ sudo apt-get update sudo apt-get install r-base Node.js (Shiny-server) #shinyライブラリのインストール R sudo su -         -c "R -e "install.packages('shiny', repos='http://cran.rstudio.com/')"" #shiny-serverのインストール sudo apt-get install gdebi-core wget http://download3.rstudio.org/ubuntu-12.04/x86_64/shiny-server-0.4.0.8amd64.deb sudo gdebi shiny-server-0.4.0.8-amd64.deb #ここに好きな名前でフォルダ作成してファイル(server.R, ui.R)を入れる /srv/shiny-server/ 今回の例だと、このShiny-Server+Rサーバを3台 用意する。AWSだったら環境構築後にAMIを保存 #confファイルはデフォルトのまま して、そのイメージを指定してインスタンス起動 すれば良いから楽 2013/12/07 15
  16. 16. サイバー系 ①ロードバランサー的な u nginxのリバースプロキシ用のサーバを用意(Ubuntuの場合) これ 設定ファイルの中身 upstream app {   server aaa.aaa.aaa.aaa:3838;   server bbb.bbb.bbb.bbb:3838; server ccc.ccc.ccc.ccc:3838; } #nginxのインストール server{ listen 80; sudo apt-get install nginx server_name yyy.yyy.yyy.yyy; #設定 location / { sudo vi /etc/nginx/conf.d/ virtual.conf proxy_pass http://app; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; #起動 proxy_set_header Connection "upgrade"; } sudo start nginx & } 2013/12/07 16
  17. 17. サイバー系 できた Shiny-Server+Rを(複数のサーバで)プロセス起動さ せて、その前にロードバランサーを立てて負荷分散する Node.js (Shiny-server) Node.js (Shiny-server) Node.js (Shiny-server) R http://aaa.aaa.aaa.aaa:3838/your_app_name R http://bbb.bbb.bbb.bbb:3838/your_app_name R http://ccc.ccc.ccc.ccc:3838/your_app_name http://yyy.yyy.yyy.yyy/your_app_name 2013/12/07 17
  18. 18. サイバー系 ついでに(Basic)認証も nginxのサーバに認証機能を持たせる これ 設定ファイルの中身 upstream app {   server aaa.aaa.aaa.aaa:3838;   server bbb.bbb.bbb.bbb:3838; server ccc.ccc.ccc.ccc:3838; } #設定 sudo vi /etc/nginx/conf.d/ virtual.conf server{ listen 80; server_name yyy.yyy.yyy.yyy; #Apache付属のhtpasswdコマンドで location / { #パスワードファイル作成 auth_basic "Restricted"; htpasswd -c /etc/nginx/.htpasswd wdkz New password:入力(不可視) auth_basic_user_file "/etc/nginx/.htpasswd"; Re-type new password:再入力(不可視) proxy_http_version 1.1; proxy_pass http://app; proxy_set_header Upgrade $http_upgrade; #起動 proxy_set_header Connection "upgrade"; } sudo start nginx & } 2013/12/07 18
  19. 19. サイバー系 ついでに(Basic)認証も_Shiny-Server側 Shiny-Server+Rのサーバは認証を通ったnginxから のみアクセスを受け付けるようにする これ #Shiny-Serverの設定 sudo vi /etc/shiny-server/shiny-server.conf Node.js (Shiny-server) #起動 R sudo shiny-server & run_as shiny; nginxのIP server {   listen 3838 yyy.yyy.yyy.yyy; 設定ファイルの中身 2013/12/07   location / {     site_dir /srv/shiny-server;     log_dir /var/log/shiny-server;     directory_index on;   } } 19
  20. 20. サイバー系 その後 u commercial versionだってー!! node.jsの後ろに複数Rプロセス的な 2013/12/07 20
  21. 21. サイバー系 その後のその後 2013/11中旬にProのBetaサイトオープン で、いくらなの? なお、RStudio Server Proは1サーバ あと数週間で価格出るって!! 2013/12/07 $9,995/yearの模様 21
  22. 22. サイバー系 その後のその後のその後(2013/12/04) 価格キター 同時接続10で $9,995/server/year 100で$24,995/server/year 2013/12/07 22
  23. 23. サイバー系 その後のその後のその後(2013/12/04) 認証 スケーリング モニタリング 2013/12/07 23
  24. 24. サイバー系 最後にスケーリングの設定を紹介(Pro) u フリーのは1アプリ1Rプロセスなんだけど、 Proは1アプリ複数Rプロセス使える 1アプリあた り利用するR プロセス数の MAX 1Rプロセスあたり接続する数 1RプロセスのCPU使用率がこ れ(x100)以上になったら、新 規にRプロセス起動するよ 2013/12/07 24

×