EC2にElixir環境構築

# Brightの対象
Webアプリ開発 Elixir > クラス1 > Elixir環境構築 > クラウド > EC2にElixir環境構築

# 前提
AWSのアカウント登録済みでログイン済みであること

# EC2構築
仮想マシンを起動を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/37991414-c943-67fc-12dc-327657bad3bc.png)

Launch an instanceで
・名前の入力
・クイックスタートでUbuntuを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/8ada4142-9223-a4d1-8c9b-715659b0c163.png)

新しいキーペアの作成をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/f02cd130-e5b4-9ac3-9378-3532caf79818.png)

キーペア名を入力
キーペア名を作成をクリック
　└キーを保存します（ssh接続で使います）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/91caa5ac-53eb-f00d-7545-06f5add8be24.png)

キーペア名が入力されていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/55e06893-f575-be34-5472-1bca078054e5.png)

インスタンスを起動をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/b8f9cc76-d84d-e71c-ec4a-76fb19f86808.png)

インスタンスを起動後に下記の画面が表示
・インスタンスに接続をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/81967f80-8956-62f5-bdad-35bd7ba28eaa.png)

下記の手順でssh接続する
（インスタンスごと違うのでこれは例です）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/b6ca1867-78b4-1d64-211d-8a418f737df9.png)

例ターミナル
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/f87595b5-f2f2-7234-d863-2fa634c74d4b.png)


# Elixirインストール
(自作スクリプトを使ってます）
http://github.com/t-yamanashi/install

```sh
$ git clone http://github.com/t-yamanashi/install
$ cd install/elixir_asdf_install
$ sh asdf.sh
$ source ~/.bashrc
$ sh elixir20.sh 
```

途中で聞かれるのでOKを選択（tabで移動できる）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/3942e612-ec02-6447-6a19-97f8f73bf495.png)

処理が終わるとこんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/6decd454-25ab-3631-01b6-c7c81e7314d9.png)

```sh
$ sh phxinstall.sh 
```

途中で聞かれるのでOKを選択（tabで移動できる）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/f948ceda-443e-47ba-a127-6d6f9eb7bf3d.png)

その後２回ほど[Yn]聞かれるのでY
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/9f764270-e398-581a-ab49-244bf740800a.png)

# Phoenixプロジェクト作成

```sh
$ cd 
$ mix phx.new hoge --no-ecto
```

[Yn]聞かれるのでY
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/e8876109-813d-0e02-6c1c-d0b2ab7eaf8c.png)

```sh
$ cd hoge
$ mix phx.server
```
[Yn]聞かれるのでY
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/90b46054-fab2-1eb1-87b4-8591ac8ffadb.png)

これでWebサーバが立ち上がった
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/8c0bdc89-955e-eedd-27ff-186b9d73f989.png)

# FWの設定
インスタンスIDをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/e4e2963f-50e0-55c6-975d-b0fe821fe097.png)

セキュリティのセキュリティグループをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/45d51bb2-f249-a496-3a96-8a2e7c44c2b3.png)

インバウンドのルールを編集クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/b786feb3-b3e9-8539-5865-c82cba1190a8.png)

ルールを追加クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/22c2d342-b130-d442-6bf9-e218dd149152.png)

ポート4000番を開放しルールを保存
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/fd7c564e-bfe2-4a82-91be-6b18a68a830d.png)

保存後この画面になる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/385233a5-b897-51ae-18ab-c810c07e2a27.png)

# Elixirの修正
```sh
$ vi config/dev.exs
```
httpの部分を0, 0, 0, 0に修正
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/a069a4ef-6825-6e47-6960-348331158071.png)

そしてphx.serveを再起動

# IPアドレスを調べて、ブラウザで表示
インスタンスをクリック
IPアドレスを調べる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/8d00318d-6577-2189-973f-5b33b8630045.png)


IPアドレス:4000でアクセス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/bbc64d51-19e6-cee8-0cae-f7560d0aee81.png)

表示できました

# インスタンスの削除方法
インスタンスをチェックしてインスタンスの状態からインスタンスの終了をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/b21481e8-0fd0-6fef-06a7-63e34f68f765.png)

終了をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/0040212f-2905-6c41-90f4-efb1e722af10.png)

正常に終了しましたと表示します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295814/a8943fca-d757-8fd7-5893-12e92d3ed6c3.png)

# 問題点
mix phx.serverの起動方法だとsshを閉じたときに落ちしまいます
今回はEC2にElixir環境構築がメインなので
気が向いたら調べます