Amazon EC2のWindows Serverを使ってoTreeを動かすのは、実際にすでに紹介されている方がいたので、今回はGoogle Cloud Platformを使ってoTreeを動かす方法を紹介します。実際に実験環境でのテストを行っていないので、スケール(マシンのスペック)に関してはご自身の用途に合わせて変更してください。
これから下の話に関してはGoogle Cloud Platformのアカウントの作成が済んでいる前提で話を進めます。
目次
“本質情報”
- インスタンス(マシン)を作成
- インスタンスのポートを開放(外部からのアクセスを許可)
- PythonとoTreeのインストール
- 実験プログラムをインスタンスへ転送
- 実験実行(devserverなりrunprodserverで)
今回は主にoTreeを使って、大学外の一般人を対象に実験を行うのであれば、外部サーバーを用意した上で行う必要があります。上の設定の流れにおける”本質情報”を抑えておけば、Amazon EC2でもHerokuでも多分なんでもできます。
otree devserver (あなたの管理用PCのIPアドレス):8000
ちなみに、ローカルネットワーク内のみで使う前提、例えば大学の授業内で使う、クローズドな環境で大学生を集めて実験するといった用途であれば、管理用のパソコンと実験用のパソコンを数台用意して、ルーター(スマホのテザリングでも可)で接続するほうが圧倒的に楽です。
上記のコマンドで行えます。
GCPのメリット
- GCPとは:Googleのサーバーを使って、時間のかかる分析をしたり、アプリを公開したりできる
- 無料枠が200ドルある(かなり試せる)
- 日本中の人に実験を行ってもらえる
GCPでRStudio Serverを立ち上げたことのある人なら簡単です。
クラウドコンピューティングについて以前発表した資料公開します(内容古いかも)。
大学行けない実験心理の方々で統計勉強したいけど、分析環境なくて困っている方、GCP(AWS)導入してあそんでみてください。
うまくやれば実験も公開できます
資料https://t.co/u4Bla1HU1x
コードhttps://t.co/q1XsE9BD1x— Daiki Hojo (@dastatis) April 7, 2020
GCPの設定
ファイアウォールルールの設定
左のメニューから、「VPCネットワーク」→「ファイアーウォールルール」を選択。
新たに、ファイアーウォールルールを設定します。
名前とターゲットタグに「allow-otree」と入力、ソースIPの範囲は「0.0.0.0/0」、プロトコルとポートの指定したプロトコルはTCPを選択し「8000」と入力します。
マシンの設定
次にCompute EngineからVMインスタンスを選択します。表示された先で「インスタンスを作成」を選択。
設定する項目は主に3つ。名前は自由に決めてください。今回は「otree-test」としています。マシンスペックに関しては、今回はCPUが2コアでメモリが7.5GB。これだと大体月間24時間回し続けたとして予測が51.95ドル(約5,659円)。 1時間あたりは0.071ドル(約7.73円)。ダウンロードなどに通信費がかかりますが、しばらくは全然無料枠で利用できるでしょう。
そのあたりの設定が終わったら、ブートディスクを変更します。
今回に関してはUbuntuでやりたかったため、上記のような設定にしていますが、Pythonが動けばなんでも大丈夫です(多分)。「SSD永続ディスク」でないとHDDになることがあるので、これがおすすめ。
あとはHTTPとHTTPSのトラフィックを許可して、「作成」をクリック。
マシンの作成が完了したが、VMインスタンスのページにマシンが表示されます。起動する前に最後の準備があるので、「otree-test」をクリックし、編集をします。
ネットワークタグに「allow-otree」と入力し、一番下の保存をクリックすれば前準備は完了です。
マシンを選択し、開始をおします。起動したら、SSHの「ブラウザ ウィンドウで開く」をクリック。
画像はぼかしてはいますが、ターミナルが起動し、あとはここで作業を行っていきます。
ターミナルで設定を行う
Pythonのインストール
ターミナルが起動したら上記のサイトを参考にAnacondaをインストールして行きます。pipができれば良いので
https://pcl.solima.net/pyblog/archives/57上のサイトを参考に、pipだけインストールしても構いません。
oTreeをインストール
# oTreeをインストールします pip install -U otree # startprojectでプロジェクト作成(サンプルはなくても良いので"n"で構いません。) otree startproject oTree
これはmacOSやWindowsにoTreeをインストールするのと同じ手順になります。
oTreeのデータの準備とアップロード
自分のパソコン上で作成したoTreeフォルダーの中身を圧縮します。
作成したzipファイルを適当にotreetest.zipの様に名前を変更した上で、Dropboxにアップロード。共有リンクを取得します。
ダウンロードと解凍
$cd oTree $ wget (DropBoxのリンク。例:http://hogehohe.....)
今度はまたGCP上のターミナルの画面に戻り、cdコマンドでoTreedフォルダーへ移動した上で、先程コピーしたリンクを”wget”以下のに貼り付けファイルをダウンロードします。
$ mv (ダウンロードしたファイル名) otree.zip $ unzip otree.zip
wget後に、ダウンロードしたファイル名が表示されるので、まずはファイル名の変更を行います。その後、圧縮の方法にもよりますが、特にフォルダーにもいれていなかった場合、解凍するとoTreeフォルダーに展開されるはずです。(ターミナル上で質問が表示されたらすべて上書き保存してください)
サーバーの起動
otree runprodserver 8000
あとは、上記のコマンドを実行し、表示されるリンクを実験を行いたいパソコンで入力すれば、外部からのアクセスが可能になります。
Session wideリンクでも、Room wideリンクなどをクラウドワークスなどに共有すれば一般人を対象にした実験も行えるはず。です。