Laravel Docker AWS EC2デプロイ②

前回のEC2デプロイ①に続き、今回はRDSの作成についてご紹介していきます！

https://qiita.com/yyy752/items/b9d7674fc349f669e801


##RDSを作成
1.サービス画面から「RDS」で検索し、RDSコンソール画面にアクセス。
2.左メニューバーの「データベース」にアクセス→「データベースを作成」で各項目入力。
※注意点は、バージョンをポートフォリオのバージョンに合わせることと、テンプレートを「無料利用枠」にすること。
![スクリーンショット 2021-12-03 2.01.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/14a4640a-2beb-e12a-7884-cbdb97e32b89.png)
![スクリーンショット 2021-12-03 2.02.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/bc91100d-3fea-bb49-bac0-3002f3459605.png)
![スクリーンショット 2021-12-03 1.53.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/b87a052f-fc74-85e7-67c7-a267edd70a5b.png)
![スクリーンショット 2021-12-03 1.54.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/e34706c1-43d9-aaf6-e9ba-c304e6fc67a2.png)
3.「接続」までスクロール→赤線枠の箇所を入力。
![スクリーンショット 2021-12-03 2.06.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/e30f38bb-fdd9-17dc-abc4-3fc113425688.png)

4.「追加設定」までスクロール→「最初のデータベース名」を入力→一番下までスクロールして「データベースを作成」
![スクリーンショット 2021-12-03 2.11.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/347254d4-4873-678f-56f2-3e05c4d55681.png)

5.数分したらDBが作成完了→作成したDB（database-1)をクリック
![スクリーンショット 2021-12-03 2.16.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/6fee9397-58bb-a567-0577-d3f476000f38.png)

6.作成された「VPCセキュリティグループ」をクリック。
![スクリーンショット 2021-12-03 2.20.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/f3c435ea-1532-3ac0-514c-fd8ae92e5ba4.png)

7.「セキュリティグループ」をクリック→「インバウンドのルールを編集」をクリック
![スクリーンショット 2021-12-03 2.23.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/22bb9607-4ad7-dd56-84a4-cbd165ff5c42.png)

![スクリーンショット 2021-12-03 2.25.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/033868fd-a4cf-453a-03ad-6cb2f6694d9b.png)

8.EC2インスタンス作成時に設定したセキュリティグループを選択。
![スクリーンショット 2021-12-03 2.27.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/450324b1-8852-8efc-acf4-a8c3c6cda6f1.png)

すると、赤字でエラーメッセージが出ます。
![スクリーンショット 2021-12-03 2.37.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/93492754-2b5f-67b6-30e7-b421f89c8d1a.png)

その対処として、一度ルールを削除してから再度ルールを追加します。
![スクリーンショット 2021-12-03 2.40.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/27a9779e-bdf4-1b78-ed24-7c4f96d958d2.png)


##接続
1.ターミナルからインスタンスに接続。

```
.ssh $ ssh -i "sample-key.pem" ec2-user@ec2-??-??-???-???.ap-northeast-1.compute.amazonaws.com
Last login: Thu Dec  2 13:52:30 2021 from p3014131-ipoe.ipoe.ocn.ne.jp

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

https://aws.amazon.com/amazon-linux-2/
```

2.パッケージのアップデート

```
[ec2-user@ip-172-31-45-44 ~]$ sudo yum update -y
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                  | 3.7 kB  00:00:00     
No packages marked for update
```

3.MySQL、Git、Apache、cURLをインストール

```
[ec2-user@ip-172-31-45-44 ~]$ sudo yum -y install mysql git httpd curl
・・・ #省力
完了しました!
```

4.nginx起動

```
[ec2-user@ip-172-31-45-44 ~]$ sudo systemctl start nginx.service #起動

[ec2-user@ip-172-31-45-44 ~]$ sudo systemctl status nginx.service #起動確認
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since 木 2021-12-02 12:38:54 UTC; 5h 22min ago
 Main PID: 1217 (nginx)
   CGroup: /system.slice/nginx.service
           ├─1217 nginx: master process /usr/sbin/nginx
           └─1218 nginx: worker process

12月 02 12:38:54 ip-172-31-45-44.ap-northeast-1.compute.internal systemd[1]: St...
12月 02 12:38:54 ip-172-31-45-44.ap-northeast-1.compute.internal nginx[1211]: n...
12月 02 12:38:54 ip-172-31-45-44.ap-northeast-1.compute.internal nginx[1211]: n...
12月 02 12:38:54 ip-172-31-45-44.ap-northeast-1.compute.internal systemd[1]: St...
Hint: Some lines were ellipsized, use -l to show in full.
```

5.MySQLに接続

```
#mysqlログインコマンド
$ mysql -h database-1.csqevja7nem5.ap-northeast-1.rds.amazonaws.com -P 3306 -u admin -p
```
「database-1.csqevja7nem5.ap-northeast-1.rds.amazonaws.com」の部分は、RDSコンソールで作成したDBをクリックすれば、エンドポイントから確認できます。

![スクリーンショット 2021-12-03 3.16.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601015/10e66ca3-b638-9566-a09d-9e1f6305a185.png)


また、ログインコマンド実行後にパスワードの入力を求められますが、そちらは自身で設定したマスターパスワードになります。
※[もしマスターパスワードを忘れた場合はこちらの手順で変更できます](https://aws.amazon.com/jp/premiumsupport/knowledge-center/reset-master-user-password-rds/)



```
[ec2-user@ip-172-31-45-44 ~]$ mysql -h database-1.csqevja7nem5.ap-northeast-1.rds.amazonaws.com -P 3306 -u admin -p

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 8.0.23 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases; #DB確認
+--------------------+
| Database           |
+--------------------+
| information_schema |
| laravel_zaiko      |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
```

show databases;で作成したDBを確認し、作成したDB（laravel_zaiko）が存在してれば問題ありません！
##続く
とりあえずここまででDBの作成と接続は完了です！
次回はLaravelの起動を行っていきます！

https://qiita.com/yyy752/items/9cec9c44e8a389cb9c18


##参考記事
https://noumenon-th.net/programming/2020/04/10/ec2-rds-laravel/

https://dev.classmethod.jp/articles/aws-you-may-not-specify-a-referenced-group-id-for/

https://aws.amazon.com/jp/premiumsupport/knowledge-center/reset-master-user-password-rds/