# oTreeをAmazon EC2で使ってみる

ホントはHeroku推奨のようですが，その他サーバを使ってたり，会計処理を一本化するためにAmazon EC2を利用してますよ，ってことでEC2へのインストール方法について．

実はそこまで情報ゴリゴリではない（サーバの扱いとか詳しくない）ので，スコまで明るくはないのですがログとして残しておくとこれからのためになるだろう，ってことで参考までに．

## EC2の設定

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO7eoTAqNpj2Em3jls%2F-LUO8HMDkPUgLbILW6Ty%2FEC2%20Management%20Console%202018-12-23%2012-38-57.png?alt=media\&token=1aceb363-066f-4ec2-b716-16cd324311e2)

新しいインスタンスを作ります．

その後，Windowsで検索をして，これを使います．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUO8uhmKrgmUe1_xOup%2FEC2%20Management%20Console%202018-12-23%2012-41-50.png?alt=media\&token=bb9dfd01-834c-419f-a722-19352937cc6d)

もっといいのがあるのかもしれないけど，とりあえずこれで．

このプランにします，というのもインストール作業がなかなか時間かかってイライラするので，ここだけ課金しまくり．

EC2のメリットはスケーラブルに動かせるので，必要な時に課金すればサクサク作業ができるのがありがたいです．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUO9V8M0f72ybHoAlb1%2FEC2%20Management%20Console%202018-12-23%2012-43-10.png?alt=media\&token=c012e7a4-619b-4b54-bf82-b808c317ce3b)

と，この調子で書き続けると流石にしんどいので詳しい人に任せておいて，

※こちらなどを参照．

あと，やらないとまずいのは以下のこと．

* Elastic IPの割り振り

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOGogaUgvWQx1XnfE5%2FEC2%20Management%20Console%202018-12-23%2013-16-05.png?alt=media\&token=54c9a7cf-e58d-4e5a-adbf-1911185bb43d)

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOH9RnENyqocPPD9hT%2FEC2%20Management%20Console%202018-12-23%2013-17-14.png?alt=media\&token=5a10dbdd-ea0b-4482-8298-e993f73be69d)

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOHGTUvF6Hv4b-ZuZn%2FEC2%20Management%20Console%202018-12-23%2013-18-13.png?alt=media\&token=bf443f43-ed07-4fa0-a027-42d532d1ca14)

* ポートの開放

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOI0_Cnmi05KnitJR8%2FEC2%20Management%20Console%202018-12-23%2013-21-38.png?alt=media\&token=33b47007-37db-495a-be84-3b8b5a929c2b)

HTTPを開けておかないと外部との通信ができない＝ブラウザでアクセスできません．

一気にサーバの設定から．

これからはAnacondaによるPythonのインストール，Postgresqlのインストール，redisのインストール，そしてoTreeのインストールへ．

## サーバ上の作業

### AnacondaによるPythonのインストール

基本的に新しいPython3シリーズが入ればよいのですが（今は6や7か）使い慣れているのがAnacondaなのでAnacondaにします．ただそれだけの理由なので，別に何でも良いと思うのですが．．．

ここから[ダウンロード](https://www.anaconda.com/download/)．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOBSz5TO1T39Z6iUBI%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2012-52-52.png?alt=media\&token=174709a6-b614-41b7-ad7d-85d65a33b216)

素直にダウンロード．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOBcmp5AOZ3ekxRvCx%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2012-53-41.png?alt=media\&token=703f4110-a127-43fb-a268-4b29432a09e8)

非推奨だけど，Pathを通しておいた方が良さげ．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUODl_uUGPHtDo9Ishw%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-02-59.png?alt=media\&token=8e4a8aab-b214-4962-87a9-355a50d5deaf)

インストールできたっぽいので次へ．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUODy6JpkbPw-7KCaVN%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-03-43.png?alt=media\&token=328d50aa-5696-4d0a-960b-d7d41508e3fb)

ついでにVisual Studio Codeを入れておいた方が楽なので入れておきましょう．

Windows上でコードを触ることはないのですが，一応入れておきます．

基本的には手元のMacでコードを書く→Dropboxで同期させる→実行するって環境を作っているのであまり実はそこまで困らなかったりします．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOEHS1cLRnhV5RvBWS%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-05-09.png?alt=media\&token=783eae54-cd69-45bc-b77f-6cee6facce51)

さて，インストールできました．

※実はoTreeはPython 3.7ではまだ調子がよろしくないらしい（正確には，otree\_utilsというパッケージが）．なので一度Anaconda 3でPython 3.7をインストールした後にバージョンを落とすという作業をしました．

Anacondaナビゲータを使えば簡単

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUORlr7HLaY-5fvwyEx%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2014-04-10.png?alt=media\&token=4cb7f079-3ad3-4f99-b8af-8c32779758fb)

．．．しかし時間がかかるなぁ．

しかし，otree\_utilsを使わなければ別にいらないコストなのですが．

### Postgresqlのインストール

oTreeはSQLiteが入っていてもともと使える感じなのですが，本気の実験するにはPostresqlとかを使ったほうが良いよと推奨されているのでPostgresqlを[ここから](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads)ダウンロード．

11シリーズでうまく進まなかったことがあるので，今回は確実な10シリーズでいってみようと思います．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOFBMDXwwt3XUF6fmp%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-09-10.png?alt=media\&token=b8ce981b-f2b9-4a63-bc9d-67e25272e8d9)

基本的にはPathも何もそのまま．

いろいろ全部インストールしておきます．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOFVOihGApE5b-VM1T%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-10-38.png?alt=media\&token=cf15c213-7559-48f8-ae4f-228bdec1fb8e)

ここのパスは忘れたらどうにもならないので覚えておきましょう．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOFghxe6xTmb3EfBnO%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-11-28.png?alt=media\&token=d5837dee-8327-4e90-8f58-d7ceaa8aa96b)

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOFoZUhJZ2e7TyChFy%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-11-52.png?alt=media\&token=67f8e00b-a312-4659-b4ab-2e31ac6168fb)

ポート番号はデフォルトで良さそう．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOG8OeW-10BAVOaA6r%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-13-19.png?alt=media\&token=1c47f4db-2d73-483f-8fc8-42fd308e10ba)

日本の設定を入れておこう．

そうすれば勝手に上手いことしておいてくれるでしょう．

あ，あと環境変数への追加を忘れてはいけません．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOMTCwvyMoF4TR5Iie%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-40-46.png?alt=media\&token=681c62ff-0969-43a5-8262-8b9957ef6630)

その先のこともやっておきましょう．

pgAdminを使って，`django_db`という名前のデータベースを作ります．

この画面に入る時にインストール時に設定したパスワードが求められます．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOa1aKdJQuUUDjhsem%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2014-44-33.png?alt=media\&token=cf3277a1-0597-4fec-8dd5-87ef19748e68)

### Redisのインストール

[ここ](https://github.com/MicrosoftArchive/redis/releases)からRedis for Windowsをインストールします．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOIOaBR9pkCHqK4CBL%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-23-10.png?alt=media\&token=13134740-e5bd-4e1c-8767-04d0f9269b4c)

Pathは通しておきます．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOIfgxgjJ-cmPGVDgD%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-23-58.png?alt=media\&token=895b8bb4-bbc6-443e-a041-c74ac15fe72f)

特にいじりません．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOIpBTXZ0bB5J1fWiM%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-24-50.png?alt=media\&token=39effa67-69f9-4650-8bcb-c2b6d6c5d41f)

### oTreeのインストール

&#x20;あとはPowershellで動かしていきます．

oTreeのインストールは「oTreeのインストールと起動」をご覧ください．

### psycopg2のインストール

### Firewallの設定

いかんせん，外部からアクセスするためにはサーバ内部のFirewallも設定が必要です．

Inbound Rulesを設定します．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOOX3i6bhwTVLxIThF%2Fexp%E7%A7%BB%E8%A1%8C%E5%85%88%202018-12-23%2013-50-04.png?alt=media\&token=ec38a76f-eefe-403e-9935-53855ddd18ea)

New Rulesで80番を開ければ大丈夫．

All ConnectionをAllowします．

これで無事にoTreeサーバとして機能し始めました．

![](https://2640871433-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LTuLp3NG2-gpLJA87Zt%2F-LUO8o4Tjt2t4vFP-nY4%2F-LUOax7G2BkJbrD03olr%2FDemo%202018-12-23%2014-48-35.png?alt=media\&token=024a9fd7-55ca-4f39-bd13-28c8f4724b57)

外部からアクセスしてます．
