はじめてAWSでデプロイする方法⑤（EC2の環境構築、Ruby, MySQL）

## 前回までの記事
[はじめてAWSでデプロイする方法①（インスタンスの作成）](https://qiita.com/nousi/items/f0ab345402362e43db80)
[はじめてAWSでデプロイする方法②（Elastic IPの作成と紐付け）](https://qiita.com/nousi/items/0fe964f0be7e1cfa2ca1)
[はじめてAWSでデプロイする方法③（AWSセキュリティグループの設定）](https://qiita.com/nousi/items/cd2d937e9faf0c0c669c)
[はじめてAWSでデプロイする方法④（EC2インスンタンスにSSHログイン）](はじめてAWSでデプロイする方法④（EC2インスンタンスにSSHログイン）)

EC2インスタンス（サーバー）を作成し、パブリックIPをElastic IPで固定。
一般ユーザーがアクセスできるように、セキュリティグループの設定を追加（入り口を作成）
IDとPWを使って、EC2にログイン

ざっくり説明すると、こんなところです。

## 今回の内容
ssh接続でログインをして、環境構築をする。

```
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y update
```

```
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel
```

### Node.jsをインストール

```
[ec2-user@ip-172-31-25-189 ~]$ sudo curl -sL https://rpm.nodesource.com/setup_6.x | sudo bash -
```

※追記：下記の表示が出ますが、setup_6.xのサポートが終了したので、別のバージョンを推奨する表示となります。
[![Image from Gyazo](https://i.gyazo.com/a776ef458dbac283287b0c2f87f8c4af.png)](https://gyazo.com/a776ef458dbac283287b0c2f87f8c4af)

```
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install nodejs
```

### rbenvとruby-buildをインストール
```
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
```

```
[ec2-user@ip-172-31-25-189 ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
```

```
[ec2-user@ip-172-31-25-189 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
```

```
[ec2-user@ip-172-31-25-189 ~]$ source .bash_profile
```
上記をしないと　エラー『　-bash: rbenv: コマンドが見つかりません　』が表示

```
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
```

```
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash
```

### Rubyをインストール
```
[ec2-user@ip-172-31-25-189 ~]$ rbenv install 2.5.1
```
ここでエラー![スクリーンショット 2020-01-11 20.57.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455403/fb62d5e4-79c6-db98-adf7-d177adad6831.png)
「-bash: rbenv: コマンドが見つかりません」が表示された場合、

rbenvとruby-buildをインストールを見直してください。


![スクリーンショット 2020-01-11 20.55.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455403/fe95f4ff-1b91-d827-bd75-ed928b6ae797.png)
インストールには時間がかかります。
このまま待ちましょう


```
[ec2-user@ip-172-31-25-189 ~]$ rbenv global 2.5.1
```
```
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash
```
```
[ec2-user@ip-172-31-25-189 ~]$ ruby -v
```
バージョンが表示されれば、
![スクリーンショット 2020-01-11 21.00.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455403/fe912dcd-aba3-de66-d745-d069737532a3.png)

無事にインストールされています

### MySQLをインストール
```
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56
```
(mysql56は、MySQLのバージョン5.6をインストールすることを意味)
### MySQLを起動
```
[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld start
```

### MySQLの起動確認
```
[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld status
```
![スクリーンショット 2020-01-11 21.07.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455403/cff9ff21-6f82-43ea-85e8-560b6ab0d218.png)
runningが表示されていれば、稼働しています。

### MySQLのrootパスワードの設定

この操作はPW設定をします
＞PWを入力してから、コマンドを実行してください

```
[ec2-user@ip-172-31-25-189 ~]$ sudo /usr/libexec/mysql56/mysqladmin -u root password 'PWを入力'
```
下記の表示が出てきます。
[![Image from Gyazo](https://i.gyazo.com/074b4f7eb328fad32f4cfbe0b5d133f2.png)](https://gyazo.com/074b4f7eb328fad32f4cfbe0b5d133f2)

```
Warning: Using a password on the command line interface can be insecure.
```
翻訳「警告：コマンドラインインターフェイスでパスワードを使用することは安全ではありません。」
これに関しては下記の資料をご確認ください
[資料1](https://qiita.com/kiaidangoo/items/52f473bb02d00845abac)
[資料2](https://beyondjapan.com/blog/2016/08/mysql56-warning/)

ここでエラーが表示された場合
[EC2　MySQL 初期設定　root にパスワードの設定](https://qiita.com/TeamDowel/items/6b3d7b3828a2b28f16e3)

### MySQLに接続（ターミナルでコマンド操作可能）
```
[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p
```
ここでPWが要求されます。
＞登録したPWを入力してみて、無事に開かれるか確認しましょう！

下記が表示されたら、成功です
![スクリーンショット 2020-01-11 21.43.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455403/be66dad6-dfb0-8de3-fa78-71c06da1e88c.png)

PWが正しく登録できたことを確認できたので、

```
$ exit
```
でMySQLの接続を解除しましょう

## 次回の記事
[はじめてAWSでデプロイする方法⑥（EC2サーバーにAppをクローンしてアップロード）](https://qiita.com/mylevel/items/acd67707e195bb792c8a)