【　Ruby on Rails 6.0　】AWS + Nginx + Unicornでデプロイ②

# 始めに
前回の記事でEC2インスタンスを作成しサーバーを構築する工程まで完了しました。
今回は本番環境が動作するために必要設定ファイルをインストールしていこうと思います。

# 目次
|目次|内容|
|:--:|:--:|
|セクション1|[EC2インスタンス作成](https://qiita.com/anago1030/items/854252bc9b728fe90beb)|
|セクション2|**Linuxサーバーを構築**（今回の内容）|
|セクション3|[データベース設定](https://qiita.com/anago1030/items/79eebdc8474255b962b4)|
|セクション4|[EC2上でGemをインストールし環境変数を設定](https://qiita.com/anago1030/items/0a9a8937421f64f46a44)|
|セクション5|[Railsアプリを起動](https://qiita.com/anago1030/items/36d0da7e25c57d0e5780)|
|セクション6|[Nginxの導入](https://qiita.com/anago1030/items/c4c80a46a75ff306db8d)|
|セクション7|[自動デプロイ](https://qiita.com/anago1030/items/cb60c8e99d408dc4fd80)|
|セクション8|[独自ドメイン取得](https://qiita.com/anago1030/items/5e487ec48fd7c0be86bc)|

## Linuxサーバーを構築
最初に`yum`というコマンドを使ってこのサーバに元々あるプログラムをアップデートします。
こうしたプログラムを パッケージと呼びます。

### yumコマンド
Linuxにおけるソフトウェア管理の仕組みです。MacOSにとってのhomebrewと同じ役割 を果たします。yumコマンドを利用することで、yumの管理下にあるプログラムのバージ ョンを管理したり、一括でアップデートしたりできます。

```php:ターミナル
# SSHログイン実行
$ ssh -i ダウンロードした鍵の名前.pem ec2-user@Elastic IPアドレス

# パッケージをアップデート
[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をインストール
サーバーサイドで動くJavaScriptのパッケージです。今後のデプロイに向けた作業の中で、CSSや画像を圧縮する際に活用されます。

```php:ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo curl -sL https://rpm.nodesource.com/setup_6.x | sudo bash -
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install nodejs
```
確認画面が出てきた場合は、「y」→returnキーで確定してください。 これでNode.jsのインストールは完了です。

### Yarnをインストール
Railsに搭載されているJavaScriptのパッケージを管理するためのパッケージマネージャです。Rails6.0以降のバージョンではアプリケーションを動かすために必要です。

```php:ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install wget
[ec2-user@ip-172-31-25-189 ~]$ sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install yarn
```

### rbenvとruby-buildをインストール
次に、rbenvとruby-buildをインストールします。rbenvとruby-buildは、Rubyのバージョンを管理する際に組み合わせて使うツールになります。これらはRubyをインストールする前に、インストールする必要があります。 ruby-buildはrbenvのプラグインであり、ruby-buildによってRubyの様々なバージョン (2.6.5など)をインストールすることができます。 rbenvを使用することでrubyのバージョンを切り替えることできます。

```php:ターミナル
#rbenvのインストール
[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

#rbenvを呼び出すための記述
[ec2-user@ip-172-31-25-189 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

#.bash_profileの読み込み
[ec2-user@ip-172-31-25-189 ~]$ source .bash_profile

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

#rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash
```
### Rubyをインストール
以下で実行するコマンド群は、インストールするRubyのバージョン、自身のアプリケー ションで使っているRubyのバージョンによって適宜変更してください。 今回は、2.6.5をインストールしていきます。

```php:ターミナル
[ec2-user@ip-172-31-25-189 ~]$ rbenv install 2.6.5　#バージョンは都度確認すること
[ec2-user@ip-172-31-25-189 ~]$ rbenv global 2.6.5
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash
[ec2-user@ip-172-31-25-189 ~]$ ruby -v
```
1つ目のコマンドで、Rubyの2.6.5のバージョンをインストールしています。 
**Rubyのインストールには時間がかかります。**ターミナルに「Installing ruby-2.6.5...」といった表示が出たまま止まって見えますが、そのまま待ちましょう。
2つ目のコマンドは、EC2インスタンス内で使用するRubyのバージョンを決めるものになります。
3行目では再びRehashを行っています。
最後にruby -vコマンドを打ち込み、バージョンを確認しましょう。
![スクリーンショット 2021-02-24 20.06.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/772095/f8b09e44-c0d0-1384-9083-15a19cab5d98.png)
バージョンが確認できたらインストール成功です！

# 終わりに
次回はデータベースの設定を進めていきます。
僕自身この過程でエラーがいくつか発生して詰まった経験があるので、そこも含めてアウトプットしていきます。
お疲れさまでした。。。

次回
[データベース設定](https://qiita.com/anago1030/items/79eebdc8474255b962b4)