SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Shiny-Severあれこれ
2013/12/07
Japan.R 2013@ヤフー株式会社
和田 計也
サイバー系
サイバー系

はじめに

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

2
サイバー系

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

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

u 長いことバイオ業界にいた
u バイオマーカ探索してたり
u 枯草菌の研究してたり

2013/12/07

3
サイバー系

いきなりですが

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

2013/12/07

4
サイバー系

Shinyとは?
u

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

u

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

詳細はここら辺
参考にして下さい

2013/12/07

5
サイバー系

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

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

u

@hoxo_mさん作成のOpenShinyを利用してユーザに上手
いことShinyアプリを配布
u.Netで作られてるのでWindowsマシン限定→弊社は断念
u(Mono使ってMacOSXでも動くといいなぁ)

2013/12/07

6
サイバー系

Shiny-Server

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

2013/12/07

7
サイバー系

Shiny-Serverとは?
u

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

u

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

u

アプリ配布の問題解消したね!!

2013/12/07

8
サイバー系

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

(Shiny-server)

ロードバランサー

Node.js

R

(Shiny-server)

②Shiny-Serverの後ろに複数Rプロセス起動させる
R
Node.js
(Shiny-server)

R

R
2013/12/07

11
サイバー系

孫さん風

やりま
しょう
2013/12/07

12
サイバー系

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

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

u

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

R
Node.js
(Shiny-server)

R

R

この人

2013/12/07

13
サイバー系

①ロードバランサー的なの使う場合
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
サイバー系

①ロードバランサー的な
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
サイバー系

①ロードバランサー的な
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
サイバー系

できた
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
サイバー系

ついでに(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
サイバー系

ついでに(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
サイバー系

その後
u

commercial versionだってー!!

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

2013/12/07

20
サイバー系

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

で、いくらなの?

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

2013/12/07

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

その後のその後のその後(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プロセスのCPU使用率がこ
れ(x100)以上になったら、新
規にRプロセス起動するよ

2013/12/07

24

Weitere ähnliche Inhalte

Was ist angesagt?

傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
takehikoihayashi
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
Shuyo Nakatani
 

Was ist angesagt? (20)

質的変数の相関・因子分析
質的変数の相関・因子分析質的変数の相関・因子分析
質的変数の相関・因子分析
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
 
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 
因果探索: 観察データから 因果仮説を探索する
因果探索: 観察データから因果仮説を探索する因果探索: 観察データから因果仮説を探索する
因果探索: 観察データから 因果仮説を探索する
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
生存時間分析数理の基礎
生存時間分析数理の基礎生存時間分析数理の基礎
生存時間分析数理の基礎
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
 
Sift特徴量について
Sift特徴量についてSift特徴量について
Sift特徴量について
 
正準相関分析
正準相関分析正準相関分析
正準相関分析
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
 
SEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデルSEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデル
 

Ähnlich wie Shiny-Serverあれこれ

よちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさよちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさ
bonbon0605
 
よちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさよちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさ
shinyaogasawara
 
AndroidとSVG (ABC 2013 Spring LT)
AndroidとSVG (ABC 2013 Spring LT)AndroidとSVG (ABC 2013 Spring LT)
AndroidとSVG (ABC 2013 Spring LT)
Satoshi Watanabe
 

Ähnlich wie Shiny-Serverあれこれ (20)

データサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkzデータサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkz
 
元ソフトウェアエンジニアが語る、ものづくりスタートアップのリアル【Garage Channel】
元ソフトウェアエンジニアが語る、ものづくりスタートアップのリアル【Garage Channel】元ソフトウェアエンジニアが語る、ものづくりスタートアップのリアル【Garage Channel】
元ソフトウェアエンジニアが語る、ものづくりスタートアップのリアル【Garage Channel】
 
Wakayama.rbが目指すもの
Wakayama.rbが目指すものWakayama.rbが目指すもの
Wakayama.rbが目指すもの
 
Riot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディングRiot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディング
 
よちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさよちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさ
 
よちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさよちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさ
 
はじめてのShiny
はじめてのShinyはじめてのShiny
はじめてのShiny
 
AndroidとSVG (ABC 2013 Spring LT)
AndroidとSVG (ABC 2013 Spring LT)AndroidとSVG (ABC 2013 Spring LT)
AndroidとSVG (ABC 2013 Spring LT)
 
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
 
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
 
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
 
Creative as Software Engineering for GenAI LT
Creative as Software Engineering for GenAI LTCreative as Software Engineering for GenAI LT
Creative as Software Engineering for GenAI LT
 
R-3.0.0でGLM
R-3.0.0でGLMR-3.0.0でGLM
R-3.0.0でGLM
 
クラウド移住で地方に住むということ
クラウド移住で地方に住むということクラウド移住で地方に住むということ
クラウド移住で地方に住むということ
 
情報のオープン化 (OSO2013懇親会LT資料Web版)
情報のオープン化 (OSO2013懇親会LT資料Web版)情報のオープン化 (OSO2013懇親会LT資料Web版)
情報のオープン化 (OSO2013懇親会LT資料Web版)
 
2015 07-23 Tokyo Realm Meetup
2015 07-23 Tokyo Realm Meetup2015 07-23 Tokyo Realm Meetup
2015 07-23 Tokyo Realm Meetup
 
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方
 
Jaws niigata#8
Jaws niigata#8Jaws niigata#8
Jaws niigata#8
 
アジャイルを「ふりかえる」
アジャイルを「ふりかえる」アジャイルを「ふりかえる」
アジャイルを「ふりかえる」
 
Ruby関西勉強会発表資料
Ruby関西勉強会発表資料Ruby関西勉強会発表資料
Ruby関西勉強会発表資料
 

Mehr von Kazuya Wada

RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみたRのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
Kazuya Wada
 

Mehr von Kazuya Wada (14)

オンラインTVサービスの分析事例
オンラインTVサービスの分析事例オンラインTVサービスの分析事例
オンラインTVサービスの分析事例
 
DeployR使ってみた話
DeployR使ってみた話DeployR使ってみた話
DeployR使ってみた話
 
道玄坂Lt#2 wdkz
道玄坂Lt#2 wdkz道玄坂Lt#2 wdkz
道玄坂Lt#2 wdkz
 
ハイレゾの話
ハイレゾの話ハイレゾの話
ハイレゾの話
 
JuliaでGLM
JuliaでGLMJuliaでGLM
JuliaでGLM
 
Rで触れる日本経済~RでVAR編~
Rで触れる日本経済~RでVAR編~Rで触れる日本経済~RでVAR編~
Rで触れる日本経済~RでVAR編~
 
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
 
Rでウォーリを探してみた
Rでウォーリを探してみたRでウォーリを探してみた
Rでウォーリを探してみた
 
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
 
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみたRのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみた
 
Tokyo.R#16 wdkz
Tokyo.R#16 wdkzTokyo.R#16 wdkz
Tokyo.R#16 wdkz
 

Kürzlich hochgeladen

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Kürzlich hochgeladen (7)

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

Shiny-Serverあれこれ