AWSへのRailsアプリのデプロイ その1

## はじめに
チームで開発したアプリを自分で建てたEC2に移行させたため記事に残しておきます。

6/3　続きを書きました。
<a href="https://qiita.com/ysda/items/246009da5aea8cc29666">AWSへのRailsアプリのデプロイ その2
</a>

## EC2インスタンスを作る
まず、アプリの移行先のインスタンスを作りましょう。

![スクリーンショット 2020-05-30 22.34.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/7f95f633-23f9-d34e-1959-89218f8c0c69.png)
ここは各個人で違うと思いますが、今回は「Amazon Linux AMI」を選択。
![スクリーンショット 2020-05-30 22.36.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/cb38664d-ac58-a321-0359-317eeb42dea2.png)

EC2インスタンスを起動させるとキーペアの作成画面が表示されます。
ここでは新しいキーペアの作成を選択し、キーペア名を入力した後、キーペアのダウンロードをしておきましょう。（キーは厳重に保管してください)
![スクリーンショット 2020-05-30 22.48.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/5ef35f1a-4956-fe5b-d7b8-fcd01cc0a20e.png)

## Elastic IPの紐付け
インスタンスにElastic IPを紐付けます。
![スクリーンショット 2020-05-30 22.56.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/cbe99253-a657-127a-37ef-f4d4538305ac.png)

「AmazonのIPv4アドレスプール」を選択肢て「割り当て」を押下。
これでElastic IPが割り当てられます。
![スクリーンショット 2020-05-30 22.59.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/49981287-63e6-68b6-5f6d-23fab0e2e190.png)

続いて、IPアドレスとEC2インスタンスを関連づけます。
EC2のインスタンスIDが分からないと関連付けできないので、確認しておきましょう
![スクリーンショット 2020-05-30 23.05.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/7a28ab97-ffeb-aaed-cfe6-d96e37cb989b.png)
Elastic IPの関連付けを選択します。
![スクリーンショット 2020-05-30 23.09.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/e5bc88d3-b909-d6bb-7ee5-1e86143b5dee.png)
インスタンスに、先ほど確認したインスタンスIDを入力して「関連付ける」を押下します。
![スクリーンショット 2020-05-30 23.11.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/6b4e0ee9-b79d-164b-1a03-3ffd07e89a5c.png)

## ポートを開く
現状のままだと、HTTPでの通信ができないため、ポートを開きます。
下記の画像の赤枠の部分をクリックしてください。
![スクリーンショット 2020-05-30 23.15.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/a35df9c8-3785-1b92-c887-94736a004ff2.png)

インバウンドルールの編集を行います。
![スクリーンショット 2020-05-31 14.47.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/ecea915b-36bf-f1d7-8e30-91d8447c87e9.png)


HTTPのルールを追加して保存します。
![スクリーンショット 2020-05-31 14.52.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429077/ea763f6f-4669-feb5-b7e7-4fb5e01521f0.png)

## ターミナルからEC2インスタンスへログインする。
先ほどダウンロードした秘密鍵を~/.sshフォルダに移動させます。

```
mv 秘密鍵のパス ~/.ssh
```

秘密鍵のパーミッションをいじってルートユーザーのみ読み書き可能にします。

```
chmod 600 ダウンロードした鍵の名前.pem
```

```
ssh -i 秘密鍵のパス ec2-user@EC2インスタンスと紐付けたElastic IP
```
成功したらターミナルにデカデカとEC2と表示されます。

```
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

```

## EC2の設定
EC2上で以下のコマンドを実行して、パッケージをアップデートしましょう。

```
sudo yum -y update
```
続いて、必要なパッケージをインストールします。

```
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 libcurl libcurl-devel curl
```

上記のパッケージをインストールしたらNode.jsをインストールしましょう。

```
sudo curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
```
```
sudo yum -y install nodejs
```

これでnode.jsのインストール完了です。ですが、まだまだインストールするものがあります。
続いてRuby関係のインストールです。まずコマンドでgitからrbenvをクローンしましょう。

```
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
```
以下の2つのコマンドでパスを通します。パスを通すことで、どのディレクトリにいてもアプリを呼び出せます。

```
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
```
```
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
```
~/.bash_profileの編集内容はログインし直さないと反映されないので、sourceコマンドで即時反映させます。

```
source .bash_profile
```
gitからruby-buildをクローンします。

```
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
```
rehashでgemのコマンドを使えるようにします。

```
rbenv rehash
```

ここからはRubyのインストールです。
使用しているRubyのバージョンを確認し、コマンドを各々で読み替えてください。

```
rbenv install x.x.x(バージョン)
```
EC2インスタンス内で使用するRubyのバージョンを決めます

```
rbenv global x.x.x(バージョン)
```
rehashしてRubyのインストールは終了です。

```
rbenv rehash
```

## 今回はここまで
続きはこちら→https://qiita.com/ysda/items/246009da5aea8cc29666