RailsアプリをAWSで自動デプロイ【ステップ２ DBの構築】

# はじめに

最近Rilsのアプリケーションをデプロイする機会がありましたので、その方法を忘れない内に書き込みます。
何記事に分けて説明してます。
この記事では、RDSの構築まで解説します。

現在のAWSの構成

![スクリーンショット 2021-02-18 10.59.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/70de46e8-2823-4581-edf6-86b00bd52e67.png)


# RDSの構築

RDSとは、AWSのフルマネージドなリレーショナルデータベースのサービスです。

![スクリーンショット 2021-02-25 11.45.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/3a8e9595-8c28-a033-5b17-914eb3170512.png)


### プライベートサブネットの作成

```
VPC：ステップ１で作成したVPCを指定します。
サブネット名：sample-privatesubnet-c
アベイラビリティーゾーン：アジアパシフィック (東京) / ap-northeast-1c
IPv4 CIDR ブロック：10.0.21.0/24
```

### セキュリティーグループ作成

```
セキュリティグループ名：sample-infra-db
説明：sample-infra-db
VPC：ステップ１で作成したVPCを指定します。
```

インバウンドルール

| タイプ | プロトコル | ポート範囲 | ソース | 説明 |
|:-----:|:--------:|:---------:|:-----:|:-----:|
| MYSQL/Aurora  |  TCP | 3306 | ステップ１で作成したセキュリティーグループを指定 | |


### DBサブネットグループの作成

以下のリンクに移動します。
https://console.aws.amazon.com/rds/

![スクリーンショット 2021-02-25 11.20.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/fdd9b016-4160-a71f-0fb5-903aae4cca2c.png)

![スクリーンショット 2021-02-25 11.21.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/9dac1b9b-b055-2aed-fd9e-0ff5f7eb8562.png)


```
名前：sample-infra-subnet-group
説明：sample-infra-subnet-group
VPC：ステップ１で作成したVPCを指定します。
```

ステップ１、２で作成したプライベートサブネットの追加を行います。

![スクリーンショット 2021-02-18 11.38.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/46003cd8-10c3-3fe2-bc1f-03959920161c.png)

### DBパラメーターグループの作成

DBパラメーターグループとは、DBのパラメーターの設定をテンプレートとして登録できるサービス

![スクリーンショット 2021-02-25 11.50.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/3ab39b09-eb21-163d-ffc2-e10cb9efc740.png)

![スクリーンショット 2021-02-25 11.21.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/a6b60fd5-8ead-f6ff-6a3e-2a201b085053.png)

```
パラメータグループファミリー：mysql8.0
グループ名：aws-infra-mysql80
説明：aws-infra-mysql80
```

### DBオプショングループの作成

オプショングループとは、DBの機能的部分を設定できるサービス

![スクリーンショット 2021-02-25 11.50.20のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/56c7327b-f631-c353-08f8-ca47ac92d5fe.png)

![スクリーンショット 2021-02-25 11.21.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/ccfc4ae2-6716-38ba-9e83-a28892621aef.png)


```
名前：aws-infra-mysql80
説明：aws-infra-mysql80
エンジン：mysql
メジャーエンジンバージョン：8.0
```

### RDSの作成

![スクリーンショット 2021-02-25 11.50.20のコピー2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/024d0503-3205-8040-8ff1-2cf2a23a9ec1.png)

![スクリーンショット 2021-02-25 11.22.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/1c4bd157-c0fe-abea-76f0-6a76c5243026.png)

**エンジンのオプション**

```
エンジンのタイプ：MySQL 
バージョン：MySQL8.0.21
```

**テンプレート**

```
開発テスト #今回はテスト用で作成するので、開発テスト用を選択しました。
```

**設定**

```
DB インスタンス識別子：sample-infra-web
認証情報の設定：
マスターユーザー名：root
パスワードの自動生成：✅
```

**DB インスタンスサイズ**

```
DB インスタンスクラス：バースト可能クラス
db.t3.micro
```

**ストレージ**

```
ストレージタイプ：汎用SSD
ストレージ割り当て：20
ストレージの自動スケーリング：無効
```

**可用性と耐久性**

```
マルチ AZ 配置：スタンバイインスタンスを作成しない
```

**接続**

```
Virtual Private Cloud (VPC)：VPCを指定
サブネットグループ：ステップ２で作成したものを指定
パブリックアクセス可能：なし
VPC セキュリティグループ：既存の選択
既存の VPC セキュリティグループ：ステップ２で作成したセキュリテーグループを指定
アベイラビリティーゾーン：ap-northeast-1a
追加の接続設定：
データベースポート：3306
```

**追加設定**

```
最初のデータベース名：
DB パラメータグループ：aws-infra-mysql80
オプショングループ情報：aws-infra-mysql80
自動バックアップの有効化：✅
バックアップ保持期間：30日

バックアップウィンドウ：選択ウィンドウ
開始時間：21:00　#日本時間の午前6時に開始
期間：0.5

スナップショットにタグをコピー：✅
暗号を有効化：✅
マイナーバージョン自動アップグレード：✅

メンテナンスウィンドウ：選択ウィンドウ
開始日：日曜日
開始時間：20:00 
期間：0.5

削除保護：✅

```

ここまで設定が完了しましたら、作成を行います！

# 最後に

本記事では、RDSの構築までを解説しました。
次回は、アプリをデプロイするところまで解説しようと思います。