【AWS】RDS MySQL の作成（Part２）

[**【TOPへ戻る】**](https://qiita.com/ponponpoko/items/4e1304bf3d9901d1eaf0)
　[**Part１：RDS作成前の事前準備**](https://qiita.com/ponponpoko/items/4b57170e5617f3259300)
　[**Part２：RDS MySQLの作成**](https://qiita.com/ponponpoko/items/2187f2eef73135a18a59)
　[**Part３：WebサーバーからRDS MySQLに接続**](https://qiita.com/ponponpoko/items/af684509bc553986d1ac)
# Part２：RDS MySQLの作成
いよいよRDS MySQLの作成を始めていきます。
RDSのコンソールから「データベース」を選択し、遷移した画面から「データベースの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/48d187bd-a4b6-e721-4dfe-8a58f58a796c.png)
今回は自身で設定を行っていきたいので、「標準作成」を選択します。
「簡単に作成」を選択した場合、ベストプラクティスに沿って設定が自動的に行われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/aaf1b741-faac-4ee5-5ced-50034e5b43a3.png)
[DBエンジン](https://www.acrovision.jp/service/aws/?p=2979)は「MySQL」を選択し、バージョンは「8.0.31」を選択します。

<font color="LimeGreen">※ 緑枠は「[Multi-AZ Cluser](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html)」または「[Optimized Write](https://aws.amazon.com/jp/blogs/news/new-amazon-rds-optimized-reads-and-optimized-writes/)」が使用できるバージョンを
　フィルタし、表示させることができる。</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/da4bccfa-9b8a-8071-c520-459a272d9f6e.png)
テンプレートは無料枠範囲でRDSを作成したいので、「無料利用枠」を選択する。
<font color="Red">※「無料利用枠」を選択すると、有料部分が選択できなくなります。</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/ebc78aac-1f4a-5b11-02f9-9a4915329fa3.png)
DBインスタンスへのアクセス情報は、下記を設定しました。
- **DBインスタンス識別子：DBインスタンスを識別する一意の名前**
- **マスターユーザー名：DBインスタンスにログインするときに使用するユーザー名**
- **マスターパスワード：DBインスタンスにログインするときに使用するパスワード**

:::note info
AWS Secrets Manager については、下記のリンクが分かりやすい。
[AWS Secrets Managerを使おう！](https://qiita.com/mm-Genqiita/items/f93285a6058c64b39f23)
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/550763c3-27f8-1af5-7ec1-d7c616c915a3.png)
インスタンスとストレージの設定は、特に変更せずにデフォルトのまま使用します。
「[ストレージの自動スケーリング](https://dev.classmethod.jp/articles/rds-storage-auto-scaling/)」は、今回は容量が逼迫することはないので外します。

:::note info 
青枠の Amazon RDS Optimized Writes に関しては、下記が参考になるかも。
[[アップデート]RDS for MySQL で書き込みスループットが最大2倍になりました](https://dev.classmethod.jp/articles/update-rds-optimized-writes/)
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/caebada0-94c7-173e-a36f-f857803f0da1.png)
ここでは、DBインスタンスの接続設定（アクセス方法）を設定していきます。

- **コンピューティングリソース：EC2コンピューティングリソースに接続しない**
:::note info
**【 コンピューティングリソースについては、下記リンクをどうぞ 】**
ざっくり言うと、EC2インスタンスがRDSに接続するためのネットワーク設定を自動的にするかどうかを選ぶ項目となっております。
- [Amazon RDS が RDS データベースと EC2 コンピューティングインスタンス間のワンクリック接続セットアップをサポート](https://aws.amazon.com/jp/about-aws/whats-new/2022/08/amazon-rds-setting-up-connectivity-rds-database-ec2-compute-instance-1-click/)
- [Amazon RDS の作成ウィザード内で既存 EC2 インスタンスを選択して自動でネットワーク構成をセットアップするオプションが利用出来るようになりました](https://dev.classmethod.jp/articles/amazon-rds-wizard-network-configuration-option/)
:::
- **ネットワークタイプ：IPv4**
DBインスタンスと通信する方式を選択しています。
- **Virtual Private Cloud（VPC）：Webサーバーと同じVPCを選択**
DBインスタンスを作成するVPCを選択しています。
- **DBサブネットグループ：[**Part１**](https://qiita.com/ponponpoko/items/4b57170e5617f3259300)で作成したサブネットグループを選択**
DBインスタンスを作成するサブネットグループを選択しています。
- **パブリックアクセス：なし**
VPCの外からDBインスタンスにアクセスする場合は、「あり」に設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/0472754b-cfb7-4e39-f523-fc8ae842e13f.png)
DBインスタンスの接続設定（アクセス方法）を設定の続き

- **既存のVPCセキュリティグループ(ファイアウォール)：既存の選択**
**既存のVPCセキュリティグループ：[**Part１**](https://qiita.com/ponponpoko/items/4b57170e5617f3259300)で作成したセキュリティグループを選択**
DBインスタンスにアタッチするセキュリティグループを選択しています。
- **アベイラビリティゾーン：指定なし**
シングル-AZ構成の場合、DBインスタンスを作成するAZを指定できます。
:::note info
[RDSってなんでAZ(Availability Zone)を指定する項目がふたつあるの？](https://dev.classmethod.jp/articles/rds-has-two-configs-concerning-availability-zone/)
:::
- **RDS Proxy：なし**
- **認証機関：デフォルト**
:::note info
**【RDS proxy】について**
ざっくり言うと、DBインスタンスへのアクセスを管理し制御するもの
**・[Amazon RDS Proxy](https://aws.amazon.com/jp/rds/proxy/)**
**・[プロキシとは？主なメリットやデメリット](https://it-trend.jp/cyber_attack/article/442-0042)**

**【認証機関】について**
ざっくり言うと、DBインスタンスのデータを暗号化して送受信する為に必要なもの
**・[Amazon RDS で100年有効な新しいCAが利用可能になりました](https://dev.classmethod.jp/articles/rds-new-ca-2023-g1/)**
**・[SSL/TLS](https://www.infraexpert.com/study/security7.html)**
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/597221bf-dc5e-1284-1bcb-5201ac8ce608.png)
DBインスタンスにアクセスする際の認証方式を選択します。
今回は、「パスワード認証」を選択する。
モニタリングの拡張モニタリングは、お金が発生するので無効化する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/1e2fcfae-5bf3-f128-e3c4-a947c5c73b6f.png)
ここではパラメーターグループやバックアップ等のDBインスタンスの追加設定を行っていきます。

- **最初のデータベース名：任意**
指定しない場合はデータベースが作成されないが、後で作成することもできます。
- **DBパラメータグループ：[**Part１**](https://qiita.com/ponponpoko/items/4b57170e5617f3259300)で作成したパラメータグループを選択**
デフォルトのパラメータグループだと、DBエンジンの設定値が後で変更できない。
- **オプショングループ：[**Part１**](https://qiita.com/ponponpoko/items/4b57170e5617f3259300)で作成したオプショングループを選択**
デフォルトのオプショングループだと、DBの拡張機能が後で変更できない。
- **自動バックアップを有効にします：任意
バックアップ保存期間：任意
バックアップウィンドウ：任意
開始時間 / 期間：任意**
日次で行われるDBインスタンスの自動バックアップ開始時間が指定できます。
:::note info
**・[RDSのバックアップウィンドウ・メンテナンスウィンドウ とは](https://qiita.com/miyuki_samitani/items/2cdfb962347ebcbc21f7)**
**・開始時間は、UTC([協定世界時](https://wa3.i-3-i.info/word11831.html))軸の為、注意が必要【日本時間＋９】**
**・[開始時間 / 期間内にバックアップが終わらない場合、バックアップは継続される](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html)**
:::
:::note warn
期間とは、バックアップが開始される（かもしれない）時間帯のこと。
例えば、下記で設定したとする。

- 【開始時間】０：００
- 【期間】5

この設定値だとバックアップが開始される時間帯は、【０：００～５：００】となる。
なのでバックアップは、【０：００】からすぐに開始されるかもしれないし、
【４：５９】から開始される可能性だってある。
だからこそ、バックアップウィンドウ時間帯にバックアップが終わるとは限らない。
<font color="Red">**※ 期間は、決してバックアップにかける時間ではないので要注意**</font>
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/c9472eb0-3bf6-3034-0e6e-1fc3957d6f1c.png)
DBインスタンスの追加設定の続き
- **暗号化を有効化：任意**
DBインスタンスのデータを暗号化する場合は、チェックを入れる。
- **ログのエクスポート：任意**
CloudWatch Logに転送したい対象を選択する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/955d6ff3-b400-ebe9-fb1f-30fafc0d1584.png)
DBインスタンスの追加設定の続き
- **マイナーバージョン自動アップグレードの有効化：任意**
[DBエンジンのマイナーバージョン](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html)が提供されたら、アップグレードされます。
- **メンテナンスウィンドウ：任意
開始時間 / 期間：任意**
週次で行われるDBインスタンスのメンテナンス開始時間が指定できます。
指定しない場合は、AWSによってランダムに行われます。

:::note info
**・[Amazon RDS メンテナンスウィンドウについて](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance)**
**・開始時間は、UTC([協定世界時](https://wa3.i-3-i.info/word11831.html))軸の為、注意が必要
 　日本時間に合わせるには、UTC時間に＋９時間する必要がある。**
**・期間とは、メンテナンスが開始される時間帯のこと**
**・[期間内にメンテナンスが終わらない場合もある](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html)**
<font color="Red">**※ メンテナンス = OSバージョンアップ/セキュリティパッチ/システム変更など**</font>
:::

- **削除保護：任意**
データーベースが誤って削除されるのを防ぎます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/bc3cd701-bb28-4858-6478-72ef04db0336.png)
これで設定は完了です。
概算コストが問題なければ、「データベースの作成」をクリックしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/627ad487-4599-2f2a-4f25-5739f472e74b.png)
これで作成が完了です。
ステータスが「利用可能」になったら、使用することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/3d045a9a-c8a6-78ee-7e43-b55e097a4fb6.png)
[**Part３：WebサーバーからRDS MySQLに接続 に続く・・・・。**](https://qiita.com/ponponpoko/items/af684509bc553986d1ac)

<font color="Red">**-- 注意 --**</font>
- 作成したDBインスタンスに割り当てられている「セキュリティグループ」や「VPC」など適切でなければ、Webサーバーから接続ができません。
- DBインスタンスを停止しても7日経過すると自動起動します。
- バックアップを手動で取得した場合、DBインスタンスを削除してもバックアップは残ります。

# 備考
- [Amazon RDS インスタンスを 7 日以上停止する方法を教えて下さい。](https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-stop-seven-days/)
- [【5分で簡単！】Amazon EventBridge SchedulerでRDSの自動定期停止を実装してみた](https://dev.classmethod.jp/articles/amazon-eventbridge-scheduler-rds-stop/)

- [【AWS Black Belt Online Seminar】Amazon Relational Database Service (Amazon RDS)](https://pages.awscloud.com/rs/112-TZM-766/images/20180425_AWS-BlackBelt_RDS.pdf)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/8dc52669-d2c7-f528-ba09-975dc31c2930.png)