【Rails AWS Docker】既存Ruby on Rails + MySQLアプリをDockerで構築し、AWSにデプロイする(5)

ポートフォリをとして作ったRuby on RailsアプリをDockerコンテナ化し本番環境をAWSで構築するまでの道のりです。
ポートフォリオ自体はこちらとなります。
[【ポートフォリオ】転職活動時に作成したポートフォリオの概要（テッ◯キャンプ）]
(https://qiita.com/sho_U/items/058e590325ee6833abb0)

かなり苦しめられたので、どなたかのお役に立てれば。

|  | タイトル |
|:-:|:--|
| 1  |  [ローカル環境のRailsアプリをDockerコンテナ化](https://qiita.com/sho_U/items/a1b5e4ddf13f3c42a722) |
| 2  | [AWSにVPCを作成する。パブリックサブネットを作成する](https://qiita.com/sho_U/items/9cdd37fd8c34c677d042)|
| 3 | [プライベートサブネットを作成する](https://qiita.com/sho_U/items/95c25df53a7e1fd20efd)  |
| 4 | [EC2インスタンスを作成する](https://qiita.com/sho_U/items/cb268b774f60cb01c226) |
| 5  | RDSを作成する |
|  6 | [DockerコンテナをAWSにアップロードする](https://qiita.com/sho_U/items/5ef6693f7ae8f1c27bb7) |

#RDSを作成します。

　既存Ruby on Rails + MySQLアプリをDockerで構築し、AWSにデプロイする(１)においてデーターベースコンテナを作成しました。

　実はプライベートサブネット内にEC2インスタンスを配置して、その中にデーターベースコンテナを配置してもいいのですが、AWSにはRDSというサービスがあります。
ざっくりいうと、RDSとはデーターベース用のインスタンスで、自動的に可用性や耐障害性を高めた構成にしてくれます。

　また、異なるアベイラビリティーゾーンにバックアップ用のデーターベースを配置することにより、災害等により一箇所のデーターベースで障害が生じた際にも、問題なく稼働できる様になっています。プライベートサブネットを二つ作った理由はこれです。


今回は、このRDSを用いてデーターベースインスタンスを作成します。

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

まずは、プライベートサブネット2つをまとめた、サブネットグループを作成します。

RDSダッシュボードに入り、サブネットグループを選択し、「DBサブネットグループを作成」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/66d25226-a32e-a8df-f5f9-4f45aed04fde.png)

サブネットに先ほど、作成した二つのプライベートサブネットを追加します。

今、下記のような異なるアベイラビリティーゾーンを持つサブネットグループが作成されました。

![IMG_5121AE56F9A4-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/ec74d5db-f3e8-5163-b038-57dd7b77516d.jpeg)

##パラメーターグループの設定

RDSでは直接データベースの設定を触れないので、パラメーターグループで設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/2fcaa6d2-2f69-aa31-389f-1170812d0832.png)

パラメーターグループファミリーは、開発環境のバージョンに合わせます。

##オプショングループの設定

RDSダッシュボードに入り、オブショングループを選択し、「グループを作成」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/be453eb1-6b4b-2551-d1b6-c9874169f8cd.png)

開発環境に合わせてエンジンとメジャーエンジンバージョンを設定します。

##RDSを作成する。

RDSダッシュボードに入り、データベースを選択し、「データーベースの作成」をクリックします。
下記は設定例です。ご自身の運用に合わせて設定してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/01efe3e1-804b-518c-2c1c-d8e57e86ed93.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/ed5e9922-9053-55d5-7dcf-dd43058fbfce.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/71388556-5479-f8a4-8137-ae48a8a504ed.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/e078bbb1-4ed2-6468-8424-abdb057b8240.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/810393eb-f5d4-a3ae-5e7f-9e74169a8192.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/e074e825-6208-4625-84da-2e94681ac275.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/4291b0d0-5ce7-4cb0-c7a4-7a650a70dd2a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/645fc30b-45ea-db75-cf2a-7dc7a44a94be.png)

 「データーベースの作成」クリック

少し分かりずらいですが、下記の様にRDSがサブネットグループとdb用セキュリティーグループと結びつけることにより、
![IMG_5255B692BA7F-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/8c84ed64-7d74-8767-2f0d-024f39cf6f8d.jpeg)

結果として下記の構成となります。

![IMG_9352B52CF97B-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/b4955014-86a3-2e65-f232-fe28e750cc2d.jpeg)

これでRDSインスタンスが作成できました。

次回(6)へ続く
[DockerコンテナをAWSにアップロードする](https://qiita.com/sho_U/items/5ef6693f7ae8f1c27bb7)