[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 前編

# 説明書

[[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 中編](https://qiita.com/ren0826jam/items/69448469c060273ce1be)

[[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 後編](https://qiita.com/ren0826jam/items/2b7df26f7e02a12b2ff9)


# はじめに

ポートフォリオなどを作成し、初めて自分でデプロイしよう！ということで、調べながらデプロイするがエラーまみれで絶望した経験はあるんじゃないでしょうか、、？？
ネットに出回っている今の記事等は最初から最後まで丁寧に手順を解説してくれているものは少なく、情報が古かったりするので1人デプロイは苦手意識がつくものとなっております。。
そんな同じ悩みを持っている人がとても多いと思うので、自分が備忘録も兼ねて世界にお届けしたいなと思います！！
この手順にしたがってデプロイを行うことで、つまづく事なくデプロイ完了させることが出来ます！

## 前提条件
- master.keyは本番サーバーに直接設置

- データベースのパスワードなどの設定はcredentials.yml.encに記載

- Railsアプリのインストール先は/var/rails/配下、とする

- デプロイはCapistrano

- Ruby 2.7.2

- Rails 6.1.1

- Nginx + Puma(5.2.1)

- Node.js 14

- Yarn

- MySQL

## 注意点

- 手順の分かりやすさを重視しており、余計な情報を省いたため、細かい解説等が無いことをご了承ください。

## 手順

## AWS準備編

### 1.VPCの作成

1.VPCページに移動する

2.下記画像のように、設定を行いVPCを作成する。

```ruby

名前 : 任意(自分がわかりやすい名前)
IPv4 CIDRブロック : 10.0.0.0/16
# ※その他はデフォルトでOK
```

![スクリーンショット 2021-01-31 15.28.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/4409c8fc-99d4-daf0-7bd5-432378c9a733.png)

### 2.サブネットの作成

1.サブネットページに移動する

2.下記画像のように設定を行い、パブリックサブネットとプライベートサブネットを作成する。

- パブリックサブネット

```ruby

VPC : 任意のVPCを選択
名前 : 任意(自分がわかりやすい名前)
アベイラビリティーゾーン : ap-northeast-1a
IPv4 CIDRブロック : 10.0.0.0/24
```

![スクリーンショット 2021-01-30 15.08.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/652b685c-f9fa-f199-cb8e-fe7ac456fc16.png)
![スクリーンショット 2021-01-30 15.08.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/2bdb2024-cb13-4010-0c25-fdca9c1e0c04.png)

- プライベートサブネット

```ruby

VPC : 任意のVPCを選択
名前 : 任意(自分がわかりやすい名前)
アベイラビリティーゾーン : ap-northeast-1c
IPv4 CIDRブロック : 10.0.1.0/24
```

![スクリーンショット 2021-01-30 15.08.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/652b685c-f9fa-f199-cb8e-fe7ac456fc16.png)
![スクリーンショット 2021-01-31 15.44.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/eceac6af-b965-ac88-f653-086c447e1f93.png)

### 3.ルートテーブルの作成
こちらもパブリックサブネット用とプライベートサブネット用を作成します。

1.ルートテーブルページに移動する

2.「ルートテーブルの作成」をクリックする

3.下記画像のようにルートテーブルを作成する

```ruby

名前 : 任意(自分がわかりやすい名前)
VPC : 任意のVPCを選択
キー : Name
値 : 任意(おそらく名前タグが分かりやすい)
```

![スクリーンショット 2021-01-31 15.50.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/5d1d2d1d-36c8-56fa-a897-56c01aa42188.png)

4.ルートテーブル作成後、下の詳細メニューから、「ルート」→「ルートの編集」をクリックする

5.下記画像をようにルートを編集する

パブリックサブネット用

![スクリーンショット 2021-01-31 15.53.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/d5625af7-cf11-9ae1-c61f-ebdf92123b33.png)

プライベートサブネット用

![スクリーンショット 2021-01-31 15.53.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/fad35cef-e607-1d61-8e14-cfb63ff8728d.png)

6.「サブネットの関連付け」をクリック

7.それぞれのサブネットに作成したルートテーブルを関連付けさせる

### 4.EC2の作成

1.EC2ページに移動する

2.「インスタンスを起動」をクリック

3.下記画像のようにマシンイメージを選択する

```ruby

Amazon Linux 2 AMI　を選択する
```

![スクリーンショット 2021-01-30 14.51.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/e810300a-e142-75d9-f6db-0d9f183da40e.png)

4.下記画像のようにインスタンスタイプを選択する

```ruby

t2.micro　を選択する
```

![スクリーンショット 2021-01-30 14.52.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/4c55b727-f249-5514-1dbc-c8ec35c183f2.png)

5.下記画像のようにインスタンスの詳細設定を行う

```ruby

ネットワーク : 任意のVPC
サブネット : 任意のサブネット(EC2サーバーなのでパブリックサブネットで良いです)
自動割り当てパブリックIP : 有効
# ※その他はデフォルトでOK
```

![スクリーンショット 2021-01-31 16.10.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/70282735-d736-8a5f-43df-bb70156c6fa9.png)


6.下記画像のようにストレージの設定を行う

```ruby

# 全てデフォルトでOKだが、任意で変更しても良い
```

![スクリーンショット 2021-01-31 16.11.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/a2003985-c6e3-2edc-67e9-983f1101eb78.png)


7.下記画像のようにタグの設定を行う

```ruby

キー : Name
値 : 任意の名前(分かりやすい名前)
```

![スクリーンショット 2021-01-30 14.55.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/9910b8e6-f528-3392-52d1-dd2b7215007a.png)



8.下記画像のようにセキュリティグループの設定を行う

![スクリーンショット 2021-01-30 14.57.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/4c6044f0-b44d-7113-5d5d-508c4a0f6def.png)

9.確認と作成を行う
※キーペアを作成していない場合は作成し、ダウンロードする。(あれば、既存のものを使えば良い)

---------ここからは任意です---------

10.ElasticIPのページに移動する

11.「Elastic IP アドレスの割り当て」をクリック

12.デフォルト設定のまま、「割り当て」をクリック

13.「アクション」→「Elastic IP アドレスの関連付け」をクリック

14.下記画像のように、関連付けしたいインスタンスを選択して「関連付ける」をクリック

![スクリーンショット 2021-01-30 15.17.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/7a4e210b-e8dc-fbd3-5769-f3fb3e8dc1fa.png)


### 5.RDSの作成

1.RDSページに移動する

2.下記画像のように、データベース作成方法を設定する

![スクリーンショット 2021-01-30 15.26.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/6f99ca3f-4979-a6b1-c58c-477e56510c7e.png)

3.下記画像のように、エンジンを設定する
※今回はMySQLを選択しています

```ruby

エンジンタイプ : MySQL
バージョン : アプリケーションと同じバージョン
```

![スクリーンショット 2021-01-30 15.27.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/c6ef78d3-d7c4-d031-35d0-8cd2fac87949.png)

4.下記画像のように、テンプレートを設定する

![スクリーンショット 2021-01-30 15.36.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/1db2f00f-432e-8220-a452-fd40ac0ad0cf.png)

5.下記画像のように、詳細を設定する

```ruby

DBインスタンス識別子 : 任意(分かりやすい名前)
マスターユーザー名 : 任意(今回はrootとしてます)
マスターパスワード : 任意(分かりやすい名前)
```

![スクリーンショット 2021-01-30 15.38.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/f51ca89b-0316-a7c9-5933-65c35b9ddf00.png)

6.下記画像のように、DBインスタンスサイズを設定する

```ruby

DBインスタンスクラス : 任意(今回は、バースト可能クラス(db.t3.micro))
```

![スクリーンショット 2021-01-30 15.38.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/0daf18eb-2dea-5752-842d-8314a8b74f4e.png)

7.下記画像のように、ストレージを設定する

```ruby

ストレージタイプ : 汎用(SSD)
ストレージ割り当て : 20
ストレージの自動スケーリング : checkする
# ※その他はデフォルトでOK
```

![スクリーンショット 2021-01-30 15.39.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/1ec7a63a-bfba-f0b1-fccf-bfdc8735ef49.png)

8.下記画像のように、可用性と耐久性を設定する

![スクリーンショット 2021-01-30 15.42.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/534a1861-b207-f53e-9baf-9789561f9f29.png)

9.下記画像のように、接続を設定する

```ruby

VPC : 任意
パブリックアクセス可能 : なし
VPCセキュリティグループ : 新規作成
新しいVPCセキュリティグループ : 任意(分かりやすい名前)
```

![スクリーンショット 2021-01-30 15.42.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/2d92d1d7-da1c-2140-d9df-3a24ae9c1f17.png)
![スクリーンショット 2021-01-31 16.43.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/b2a70874-067b-8623-4ff0-cf42ad7ad128.png)

10.下記画像のように、データベース認証を設定する

![スクリーンショット 2021-01-30 15.45.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622448/0f2db9c8-f17b-b3e1-e7f3-b9a77e0903fc.png)

11.「作成」をクリック

## 前編終了！
お疲れ様です。ここまでで、必要なAWSサービスは準備出来ました。
次編からは、デプロイに入るので頑張りましょう！！！
[中編に続く...](https://qiita.com/ren0826jam/items/69448469c060273ce1be)