心理学の研究室でGoogle Compute Engineを使ったRStudioサーバーを運用した感想

こちらは,ベイズ塾 Advent Calendar 2020 - Adventar24日目の記事です。

2020年度は,研究室でGoogle Compute Engine上にRStudioサーバーをおいて卒論などを書いてみました。その感想を書きます。この記事はGCE上でRStudioサーバーを使ってみた感想を書きますので,具体的な導入方法は,以下を参照ください。

Docker-composeを使ってGCE上の複数のサービス(Rstudio, Jupyter notebook, JATOS, elabFTW)をHTTPS化する方法

動機

RとRStudioを使えば,統計解析だけでなく,行動課題の作成(jsPsych),調査票の作成(SurveyJS),論文執筆(R Markdown)も可能なので,是非とも学生に使ってほしいと思っていましたが,その導入が結構大変でした。コロナ渦前は,ゼミ室に学生が使える用のパソコンを用意して,1つずつ私の方で設定をしていました(以前はjsPsychではなくPsychoPyを使っていました)。学生が慣れているWindows PCを用意するのですが,そのインストール作業が私にはなかなかの苦行でした・・・これをどうにか解決したいので,学生がブラウザからアクセスすれば,整備済みのRStudioが使えるようにできるといいなと思っており,クラウドサーバーの導入を2年位前から考えていました。そして,今年はコロナ渦となり,学生は自宅にいて卒論・修論に取り組むことになりました(なお,専修大学では後期からは対面が可能になりました)。学生の自宅のPC環境の設定をするのは至難の業なので,確実にクラウドサーバーの導入が必要に思いました。これが表向きの理由ですが,正直なところ,なんかRStudioサーバーを導入すると卒論指導の幅が広がって(新規な解析も試せるし,シミュレーションなどもできる),面白くなりそうと思ったのが大きいです。

導入してよかった点

導入して,2021年6月から2021年12月まで使ってみて感じたメリットは以下です。

  • R StudioサーバーとともにGitHubも導入したので,学生の進捗がとてもわかりやすくなった(プッシュ時にコミットメッセージが通知されるので,「結果のここまで書けたのか」とか分かる)。

  • R StudioサーバーとともにR Markdownによる卒論・修論執筆も導入したので(嫌な人は別に使わなくてもいい),フォーマットのチェックではなく中身や論文の論理構成に指導を集中できた。専修大学の場合,senshuRmdを使えば,中身をしっかり書けば,超美しい卒論原稿が出力され,それがそのまま卒論として受理されます。

  • 研究指導していて,楽しい。学生の頑張りがGitHubの通知として上がってくる感じがとてもよい。

  • 学生はChromeなどのブラウザに接続できればいいので,自前のノートパソコンで作業ができる。ノートパソコンをもってない学生のためにChromebookを研究室で用意したが,普通にWindows PCを用意することに比べるとかなりコストを下げることができた(コストは,4〜5分の1くらいです)。また,chromebookはログイン管理も楽だし,ソフトの管理も不要なので,管理コストが下がりました(学生が来る前に充電するくらい)。

  • Rが使えたので,心理学的ネットワーク分析やメタ分析のサブグループ解析など,これまで習ってきていない解析も簡単に実施できた。

  • 研究指導していて,楽しい。tidyverseを使いこなす学生を見ることがこれほど嬉しいとは。

  • 何度かR Markdownのトラブルやログインのトラブルがあったが,サーバー上の作業で完結するので対応も楽だった。

  • 今回はあまりそのメリットを感じれなかったが,CPUやメモリを柔軟に変更できるので,学生の作業負荷に応じて変更が簡単にできる。

  • 研究指導していて,楽しい。SPSSの出力は極力見たくない。長い文章をWordでは極力開きたくない。

  • 学部ゼミの前期では,演習課題として,jsPsychやRの基礎問題を解いてもらっている。以前は,研究室のパソコンにPsychoPyを設定してやってもらっていたが,パソコンごとに設定したり,たまに謎のエラーが出たりして苦労した。サーバーの設定だけで済むのは楽だった。

  • 学生指導だけでなく,自分が利用していてもRStudioサーバーは便利で,インターネットに接続できさえすれば,どこでも研究が再開できる(iPadからの利用もできる。別に利用しないけど...)。

導入して良くなかった点(コストや問題への解決策)

  • GCEを使うコストですが,最初はイキって4CPUにメモリもたくさん用意しました(13000円/月くらいだったかな)。ただ,Googleから「全然使ってないよ・・・お金の無駄・・・CPU減らしてごらん」とかメッセージが来たので,減らしました。さらに,CPUを減らしたら,メモリも減らしたらといわれて,最終的に1CPUに7.5GBのメモリに落ち着いて,5500円前後/月になりました。学部生が7名いて,同時に7名がアクセスして,作業していても特に問題はなかったです。常時動かしているので,研究室で年間7万弱のコストになります。こういうコストは増えましたが,学生のパソコンやchromebookでもブラウザさえあればよくなったので,ハード面でのコストは下がりました。この辺は研究室運営の考え方によって変わってくるかなと思います。また,今年はStanを回す人がいなかったので不要でしたが,場合によっては,一時的にCPUを追加するなどが必要かもしれません。

  • 教育上のデメリットとしては,学生が自分でRやRStudioなどのソフトウェアを導入する経験がなくなる点です。そこを飛ばせるので,かなり楽な面もありますが,自分でこういうことを設定してほしい気もします。ただ,こういう設定が本当に将来必要かも分からないので,そういうことよりも中身の行動課題の作成や統計解析や執筆に集中をしてほしいという私の考えを優先させました。この辺も先生方の教育理念によって変わってくるところかと思います。

  • デメリットではないかもしれませんが,サーバーを使うのでセキュリティにはかなり気を使う必要があります。サーバーの設定もそうですが,学生に周知する際には注意が必要です。また,データをサーバーに置く場合は,研究参加の同意時にそのような利用をする点を書くなどのデータ管理方法についても事前に決めておく必要があります(今年はメタ分析を実施したりして,新規のデータ収集が非常に少なかったのと,新規のデータ収集時にはその旨を説明して同意をとりました)。データ管理を適切に行うためにも,ローカルでの保管よりも,管理者による定期的なチェックが必要に思います。この辺は,少しクラウドサーバー利用ならではの負担かもしれません。

  • デメリットというよりは導入のハードルになるとおもうのが,管理者にサーバーの知識が求められるという点です。私も素人同然ですが,チョットだけ分かるので,なんとかやっている感じです。いきなり研究室に導入すると学生に迷惑をかけるので,教員が個人的に使ってみて慣れてきてから導入するのが良いかと思います(私は長期在外研究期間中に,同室の研究者が解析はサーバーを使っているのを教えてもらってから,半年くらい自分で使ってみてから,研究室に導入しました)。今年経験したトラブルは,学生がパッケージのインストールができない,学生がサーバーにログインできなくなる,サーバーが立ち上がってなかったがありました。学生のパッケージがインストールできない問題は,こちらにあるように,ユーザーをstaffグループにいれることで解決します。学生がサーバーにログインできなくなる問題は,結局よく全く分からず,最終的には,学生のアカウントを作り直して,ファイルを移動させることにしました。学生への影響は小さかったですが(ログイン名が変わったくらい),少しドキドキしました。サーバーが立ち上がってなかった問題は,私の単なるミスです。1回は誰も気がついてなかったので,こっそり立ち上げて,もう一回は学生から「アクセスできない」と問い合わせを受けて,立ち上げました。これ自体はボタンをクリックして立ち上げるだけなので,大したことではないです。

Enjoy!